@import url(https://fonts.googleapis.com/css2?family=Raleway:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap);:root{--primary-teal:#009688;--primary-green:#157e5e;--primary-dark-green:#005f56;--secondary-dark-teal:#005f56;--secondary-green:#38945e;--secondary-blue:#216c9c;--secondary-light-gray:#e5e6e7;--secondary-teal-blue:#3a9489;--secondary-dark-blue:#1b5377;--secondary-aqua:#2ebab8;--secondary-teal-gray:#2d827e;--secondary-light-blue:#50a1ae;--accent-teal:#2bb690;--accent-lime:#a6dc2b;--text-heading:#005f56;--text-subheading:#157e5e;--text-body:#005f56;--text-white:#fff;--gradient-primary:linear-gradient(135deg,#216c9c,#38945e);--gradient-secondary:linear-gradient(135deg,#157e5e,#009688);--gradient-accent:linear-gradient(135deg,#005f56,#2ebab8);--gradient-hero:linear-gradient(135deg,#005f56,#3a9489 50%,#50a1ae)}*{box-sizing:border-box;padding:0}*,body{margin:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#f8fffe,#f0f9f8);color:#005f56;color:var(--text-body);font-family:Inter,sans-serif;font-size:16px;line-height:1.6}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}h1,h2,h3,h4,h5,h6{color:#005f56;color:var(--text-heading);font-family:Raleway,sans-serif;font-weight:600;line-height:1.2;margin-bottom:1rem}h1{font-size:2.5rem;font-weight:700}h2{font-size:2rem}h2,h3{font-weight:600}h3{font-size:1.5rem}h4{font-size:1.25rem;font-weight:500}div,p,span{color:#005f56;color:var(--text-body);font-family:Inter,sans-serif}.text-center{text-align:center}.text-white{color:#fff!important;color:var(--text-white)!important}.gradient-text{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#216c9c,#38945e);background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text}.loading{color:#009688;color:var(--primary-teal);font-family:Inter,sans-serif;font-size:1.2rem}.error,.loading{align-items:center;background:linear-gradient(135deg,#005f56,#3a9489 50%,#50a1ae);background:var(--gradient-hero);display:flex;height:100vh;justify-content:center}.error{flex-direction:column;padding:2rem;text-align:center}.error,.error h2{color:#fff;color:var(--text-white)}.error h2{margin-bottom:1rem}.error pre{background:#ffffff1a;border-radius:8px;color:#fff;color:var(--text-white);font-family:Inter,monospace;margin-top:1rem;padding:1rem}.app-container{background:var(--gradient-hero);display:flex;flex-direction:column;margin:0;min-height:100vh;overflow:hidden;padding:0;position:relative}.app-container:before{background:radial-gradient(circle at 20% 20%,#2ebab81a 0,#0000 50%),radial-gradient(circle at 80% 80%,#a7dc2b1a 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.app-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-bottom:1px solid #0096881a;box-shadow:0 2px 20px #005f5614;padding:1.25rem 2rem 1rem;position:relative;z-index:10}.app-header h1{-webkit-text-fill-color:#0000;background:var(--gradient-primary);-webkit-background-clip:text;background-clip:text;color:var(--text-heading);font-family:Raleway,sans-serif;font-size:2rem;font-weight:700;margin-bottom:.5rem;text-align:center}.app-tagline{color:var(--text-subheading);font-family:Inter,sans-serif;font-size:1rem;font-weight:400;margin-bottom:1.5rem;opacity:.9;text-align:center}.postcode-search{display:flex;justify-content:center;margin-bottom:0}.postcode-search form{align-items:center;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#fffffff2;border:1px solid #00968826;border-radius:50px;box-shadow:0 8px 32px #005f5626;display:flex;gap:1rem;padding:1rem 1.5rem;transition:all .3s ease}.postcode-search form:hover{box-shadow:0 12px 40px #005f562e;transform:translateY(-1px)}.postcode-search input{background:#ffffffe6;border:2px solid var(--secondary-light-gray);border-radius:25px;color:var(--text-body);font-family:Inter,sans-serif;font-size:1rem;font-weight:500;min-width:220px;padding:.75rem 1.25rem;transition:all .3s ease}.postcode-search input:focus{background:#fff;border-color:var(--primary-teal);box-shadow:0 0 0 3px #0096881a;outline:none}.postcode-search input.invalid{border-color:#e74c3c;box-shadow:0 0 0 3px #e74c3c1a}.postcode-search button{background:var(--gradient-secondary);border:none;border-radius:25px;box-shadow:0 4px 15px #0096884d;color:var(--text-white);cursor:pointer;font-family:Inter,sans-serif;font-size:1rem;font-weight:600;padding:.75rem 2rem;transition:all .3s ease}.postcode-search button:hover{box-shadow:0 6px 20px #00968866;transform:translateY(-2px)}.postcode-search button:active{transform:translateY(0)}.postcode-search button.loading{background:var(--secondary-light-gray);cursor:not-allowed;transform:none}.error-message{color:#e74c3c;font-family:Inter,sans-serif;font-size:.9rem;margin-top:.5rem;text-align:center}main{display:flex;flex-direction:column;flex-grow:1;line-height:1;margin:0;padding:0;position:relative;width:100%;z-index:5}main>div:last-child{height:80vh;width:100%}.map-loading-overlay{background:#ffffffe6;position:fixed}.status-indicator{border-radius:20px;font-family:Inter,sans-serif;font-size:.8rem;font-weight:600;letter-spacing:.5px;padding:.5rem 1rem;text-transform:uppercase;transition:all .3s ease}.status-indicator.pending{background:#e5e6e7cc;color:var(--text-body)}.status-indicator.loading{animation:pulse 2s infinite;background:#fffde7e6;color:#ff8f00}.status-indicator.success{background:#e8f5e9e6;color:var(--primary-green)}.status-indicator.failed{background:#fff8e1e6;color:#ff6f00}.status-indicator.error{background:#ffebeee6;color:#c62828}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.info-window{font-family:Inter,sans-serif;max-width:320px;padding:1rem}.info-window h3{color:var(--text-heading);font-family:Raleway,sans-serif;font-size:1.25rem;font-weight:600;margin-bottom:.75rem}.info-window p{color:var(--text-body);font-size:.9rem;line-height:1.4;margin:.5rem 0}.mobile-signal-info{border-top:2px solid var(--secondary-light-gray);margin-top:1.25rem;padding-top:1.25rem}.mobile-signal-info h4{color:var(--text-heading);font-family:Raleway,sans-serif;font-size:1.1rem;font-weight:600;margin-bottom:1rem}.operator{align-items:center;background:#0096880d;border-radius:8px;display:flex;margin-bottom:.75rem;padding:.5rem;transition:all .3s ease}.operator:hover{background:#0096881a}.operator-name{color:var(--text-heading);font-family:Inter,sans-serif;font-size:.9rem;font-weight:600;width:80px}.signal-bars{align-items:center;display:flex;margin:0 1rem}.bar{border-radius:2px;margin-right:3px;transition:all .3s ease;width:4px}.bar.filled{background:var(--gradient-secondary)}.bar.empty{background:var(--secondary-light-gray)}.bar:first-child{height:6px}.bar:nth-child(2){height:8px}.bar:nth-child(3){height:10px}.bar:nth-child(4){height:12px}.bar:nth-child(5){height:14px}.signal-bars span{color:var(--text-body);font-size:.85rem;font-weight:500;margin-left:.5rem}.signal-type{background:#0096881a;border-radius:12px;color:var(--primary-teal);font-size:.8rem;font-weight:600;margin-left:auto;padding:.25rem .5rem}.loading-signal{color:var(--secondary-teal-gray);font-size:.9rem;font-style:italic;padding:1rem;text-align:center}@media (max-width:768px){.app-header{padding:1.5rem 1rem}.app-header h1{font-size:2rem}main{padding:1rem}.postcode-search form{flex-direction:column;gap:.75rem;padding:1.25rem}.postcode-search input{min-width:auto;width:100%}.api-status{align-items:center;flex-direction:column}}.brand-indicator{display:flex;gap:.5rem;justify-content:center;margin-bottom:1rem}.brand-dot{animation:brandPulse 3s ease-in-out infinite;border-radius:50%;height:12px;width:12px}.brand-dot.primary{animation-delay:0s;background:var(--primary-teal)}.brand-dot.secondary{animation-delay:.5s;background:var(--primary-green)}.brand-dot.accent{animation-delay:1s;background:var(--accent-lime)}@keyframes brandPulse{0%,80%,to{opacity:.8;transform:scale(1)}40%{opacity:1;transform:scale(1.2)}}.app-subtitle{color:var(--text-subheading);font-family:Inter,sans-serif;font-size:1.1rem;font-weight:400;margin-bottom:2rem;opacity:.9;text-align:center}.loading-content{align-items:center;display:flex;gap:.5rem}.spinner{animation:spin 1s ease-in-out infinite;border:2px solid #ffffff4d;border-radius:50%;border-top:2px solid var(--text-white);height:16px;width:16px}@keyframes spin{to{transform:rotate(1turn)}}.map-loading-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffffa;border-radius:20px;bottom:0;box-shadow:0 10px 40px #005f561a;flex-direction:column;left:0;position:absolute;right:0;top:0;z-index:2000}.loading-spinner,.map-loading-overlay{align-items:center;display:flex;justify-content:center}.loading-spinner{height:80px;margin-bottom:2rem;position:relative;width:80px}.spinner-ring{animation:spinRing 2.5s ease-in-out infinite;border:4px solid #0000;border-radius:50%;height:100%;position:absolute;width:100%}.spinner-ring:first-child{animation-delay:0s;border-right-color:#0096884d;border-top-color:var(--primary-teal)}.spinner-ring:nth-child(2){animation-delay:.4s;border-right-color:#005f564d;border-top-color:var(--primary-green);height:75%;left:12.5%;top:12.5%;width:75%}.spinner-ring:nth-child(3){animation-delay:.8s;border-right-color:#a7dc2b4d;border-top-color:var(--accent-lime);height:50%;left:25%;top:25%;width:50%}@keyframes spinRing{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-text{animation:fadeInOut 2.5s ease-in-out infinite;color:var(--text-heading);font-family:Inter,sans-serif;font-size:1.2rem;font-weight:600;letter-spacing:.5px;margin:0}@keyframes fadeInOut{0%,to{opacity:.7}50%{opacity:1}}@media (min-width:1200px){.app-header{padding:3rem 3rem 2rem}.app-header h1{font-size:3rem}main{padding:2.5rem 3rem}}@media (min-width:1600px){.app-header{padding:3.5rem 4rem 2.5rem}.app-header h1{font-size:3.5rem}main{padding:3rem 4rem}}.map-container.loading>div:not(.map-loading-overlay){opacity:.3;pointer-events:none}
/*# sourceMappingURL=main.91c6b31e.css.map*/