*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:#f5f7fa;color:#2d3748}.skip-to-content{position:absolute;left:-9999px;top:0;z-index:10000;padding:8px 16px;background:#134e4a;color:#fff;font-weight:600;text-decoration:none;border-radius:0 0 4px 0}.skip-to-content:focus{left:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:3px solid #0d9488;outline-offset:2px}.map-page-wrapper{height:100vh;overflow:hidden;display:flex;flex-direction:column}.header{background:linear-gradient(135deg,#134e4a,#0d9488);color:white;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:1000;position:relative;flex-shrink:0}.header-brand{font-size:1.4rem;font-weight:700;letter-spacing:-.5px;white-space:nowrap;flex-shrink:0}.header-brand span{color:#5eead4;font-weight:400}.header-menu{display:flex;align-items:center;gap:4px;flex-shrink:0}.header-menu-link{color:rgba(255,255,255,.8);text-decoration:none;font-size:.85rem;font-weight:500;padding:6px 14px;border-radius:6px;transition:all .2s}.header-menu-link:hover,.header-menu-signin{color:white;background:rgba(255,255,255,.15)}.header-menu-signin:hover{background:rgba(255,255,255,.25)}.header-logo-mini{display:none;align-items:center;text-decoration:none;flex-shrink:0;margin-right:8px}.header-hamburger{display:none;flex-direction:column;justify-content:center;gap:4px;background:none;border:none;cursor:pointer;padding:6px;border-radius:6px;transition:background .2s}.header-hamburger:hover{background:rgba(255,255,255,.15)}.header-hamburger span{display:block;width:18px;height:2px;background:white;border-radius:1px}.header-mobile-menu{display:none;position:absolute;top:100%;right:12px;background:white;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.2);overflow:hidden;z-index:2000;min-width:160px}.header-mobile-menu.open{display:flex;flex-direction:column}.header-mobile-menu a{padding:12px 16px;color:#2d3748;text-decoration:none;font-size:.9rem;font-weight:500;transition:background .15s}.header-mobile-menu a:hover{background:#ccfbf1;color:#0d9488}.header-mobile-menu a+a{border-top:1px solid #e2e8f0}.postcode-history-header{padding:8px 14px 4px;font-size:.72rem;font-weight:600;color:#a0aec0;text-transform:uppercase;letter-spacing:.5px}.sidebar-search{display:flex;align-items:center;background:#f7fafc;border-bottom:1px solid #e2e8f0;padding:10px 16px;gap:8px}.sidebar-search-icon{color:#a0aec0;font-size:.9rem;flex-shrink:0}.sidebar-search input{background:transparent;border:none;outline:none;color:#2d3748;font-size:.85rem;width:100%}.sidebar-search input::placeholder{color:#a0aec0}.postcode-search{position:relative;display:flex;align-items:center;background:rgba(255,255,255,.15);border-radius:8px;padding:6px 14px;flex:1 1 auto;max-width:400px;transition:background .2s}.postcode-search:focus-within{background:rgba(255,255,255,.25)}.postcode-icon{color:rgba(255,255,255,.6);font-size:1rem}.postcode-search input{background:transparent;border:none;outline:none;color:white;font-size:.9rem;width:100%;padding:4px 8px}.postcode-search input::placeholder{color:rgba(255,255,255,.6)}.postcode-clear-btn{background:none;border:none;color:rgba(255,255,255,.5);font-size:1.3rem;cursor:pointer;padding:4px 8px;line-height:1;display:flex;align-items:center;flex-shrink:0;transition:color .15s}.postcode-clear-btn:hover{color:white}.postcode-gps-btn{background:none;color:rgba(255,255,255,.6);cursor:pointer;display:flex;align-items:center;flex-shrink:0;transition:color .15s;border:none;border-left:1px solid rgba(255,255,255,.15);margin-left:2px;padding:4px 4px 4px 8px}.postcode-gps-btn:hover{color:white}.postcode-gps-btn:disabled{opacity:.4;cursor:wait}.postcode-dropdown{display:none;position:absolute;top:100%;left:0;right:0;margin-top:4px;background:white;border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.2);z-index:2000;overflow:hidden}.postcode-dropdown.visible{display:block}.postcode-item{padding:10px 14px;font-size:.88rem;color:#2d3748;cursor:pointer;transition:background .15s}.postcode-item:hover{background:#ccfbf1;color:#0d9488}.search-result-label{font-weight:500}.search-result-sublabel{display:block;font-size:.78rem;color:#718096;margin-top:1px}.postcode-item:hover .search-result-sublabel{color:#0f766e}.layer-toggle-wrapper{flex-shrink:0;z-index:999;position:relative}.layer-toggle{border-bottom:1px solid #e2e8f0;padding:6px 24px;gap:8px}.layer-btn,.layer-toggle{display:flex;background:white}.layer-btn{padding:8px 20px;border:2px solid #e2e8f0;border-radius:8px;color:#4a5568;font-size:.88rem;font-weight:600;cursor:pointer;transition:all .2s;align-items:center;gap:6px}.layer-btn:hover:not(.disabled):not(.active){border-color:#0d9488;color:#0d9488;background:#ccfbf1}.layer-btn.active{background:#0d9488;color:white;border-color:#0d9488}.layer-btn.disabled{opacity:.4;cursor:not-allowed}.layer-btn.disabled:hover{border-color:#e2e8f0;color:#4a5568;background:white}.layer-category-bar .layer-btn[data-layer=schools]:not(.active){border-color:#38a169;color:#276749}.layer-category-bar .layer-btn.active[data-layer=schools]{background:#38a169;border-color:#38a169}.layer-category-bar .layer-btn[data-layer=overview]:hover:not(.disabled):not(.active){border-color:#0d9488;color:#0d9488;background:#ccfbf1}.layer-category-bar .layer-btn[data-layer=schools]:hover:not(.disabled):not(.active){border-color:#38a169;color:#22543d;background:#f0fff4}.layer-category-bar .layer-btn[data-layer=safety]:hover:not(.disabled):not(.active){border-color:#c53030;color:#c53030;background:#fff5f5}.layer-category-bar .layer-btn[data-layer=access]:hover:not(.disabled):not(.active){border-color:#5b21b6;color:#5b21b6;background:#f5f3ff}.layer-category-bar .layer-btn.active[data-layer=safety]{background:#c53030;border-color:#c53030}.layer-category-bar .layer-btn.active[data-layer=access]{background:#6d28d9;border-color:#6d28d9}.layer-sub-bar{background:#f7fafc;padding:4px 24px 6px;gap:8px;border-bottom:1px solid #e2e8f0}.layer-sub-btn{padding:6px 16px;font-size:.82rem;border-radius:6px;min-height:44px}.layer-sub-btn.active[data-layer=crime]{background:#c53030;border-color:#c53030}.layer-sub-btn.active[data-layer=gp]{background:#2f855a;border-color:#2f855a}.layer-sub-btn.active[data-layer=flood]{background:#3b82f6;border-color:#3b82f6}.layer-sub-btn.active[data-layer=transport]{background:#6b46c1;border-color:#6b46c1}.layer-sub-btn.active[data-layer=greenspace]{background:#38a169;border-color:#38a169}.layer-sub-btn.active[data-layer=noise]{background:#d97706;border-color:#d97706}.layer-sub-btn[data-layer=crime]:hover:not(.disabled):not(.active){border-color:#c53030;color:#c53030;background:#fff5f5}.layer-sub-btn[data-layer=flood]:hover:not(.disabled):not(.active){border-color:#3b82f6;color:#3b82f6;background:#eff6ff}.layer-sub-btn[data-layer=noise]:hover:not(.disabled):not(.active){border-color:#d97706;color:#d97706;background:#fffbeb}.layer-sub-btn[data-layer=gp]:hover:not(.disabled):not(.active){border-color:#2f855a;color:#2f855a;background:#f0fff4}.layer-sub-btn[data-layer=transport]:hover:not(.disabled):not(.active){border-color:#6b46c1;color:#6b46c1;background:#faf5ff}.layer-sub-btn[data-layer=greenspace]:hover:not(.disabled):not(.active){border-color:#38a169;color:#38a169;background:#f0fff4}.layer-sub-btn[data-layer=supermarket]:hover:not(.disabled):not(.active){border-color:#dd6b20;color:#dd6b20;background:#fffaf0}.layer-icon{font-size:1.1rem}.layer-sub-btn .layer-icon{font-size:1rem}.main-container{display:flex;flex:1 1;min-height:0}.sidebar{width:320px;min-width:320px;background:white;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:hidden}.filters{padding:16px;border-bottom:1px solid #e2e8f0;display:flex;gap:8px;flex-wrap:wrap}.filter-btn{padding:8px 14px;border:1px solid #e2e8f0;border-radius:6px;background:white;color:#4a5568;font-size:.85rem;cursor:pointer;transition:all .2s;min-height:36px}.filter-btn.active,.filter-btn:hover{border-color:#0d9488;color:#0d9488}.filter-btn.active{font-weight:600;background:#edf2f7}.filter-btn.colored{border-width:1.5px}.filter-btn.colored.active{border-width:2px}.crime-display-toggle{display:flex;padding:8px 16px;border-bottom:1px solid #e2e8f0;gap:0}.crime-display-btn{flex:1 1;padding:6px 14px;border:1px solid #e2e8f0;background:white;color:#4a5568;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .2s}.crime-display-btn:first-child{border-radius:6px 0 0 6px;border-right:none}.crime-display-btn:last-child{border-radius:0 6px 6px 0}.crime-display-btn:hover{background:#fff5f5;color:#c53030}.crime-display-btn.active{background:#c53030;color:white;border-color:#c53030}.custom-marker.crime-triangle{width:16px!important;height:14px!important;-webkit-clip-path:polygon(50% 0,0 100%,100% 100%);clip-path:polygon(50% 0,0 100%,100% 100%);border:none!important;border-radius:0!important;box-shadow:none!important;font-size:0;line-height:0;filter:drop-shadow(0 0 1.5px white) drop-shadow(0 0 1.5px white)}.crime-stats-panel{flex:1 1;display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.crime-radius-slider{padding:12px 16px;border-bottom:1px solid #e2e8f0}.crime-radius-label{display:block;font-size:.82rem;color:#4a5568;margin-bottom:8px}.crime-radius-label strong{color:#c53030}.crime-radius-input{width:100%;accent-color:#c53030;cursor:pointer}.crime-radius-ticks{display:flex;justify-content:space-between;font-size:.72rem;color:#a0aec0;margin-top:2px;padding:0 2px}.crime-radius-ticks span.active{color:#c53030;font-weight:600}.crime-no-postcode{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;text-align:center;color:#718096}.crime-no-postcode-icon{font-size:2.5rem;margin-bottom:12px;opacity:.6}.crime-no-postcode p{font-size:.92rem;font-weight:600;color:#4a5568;margin:0 0 8px}.crime-no-postcode-hint{font-size:.8rem!important;font-weight:400!important;color:#a0aec0!important}.crime-bar-chart{padding:12px 16px;flex:1 1;overflow-y:auto}.crime-bar-total{display:flex;align-items:baseline;gap:8px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e2e8f0}.crime-bar-total-count{font-size:2rem;font-weight:700;color:#134e4a;line-height:1}.crime-bar-total-label{font-size:.85rem;color:#718096}.crime-bar-empty{color:#a0aec0;font-size:.85rem;text-align:center;padding:20px 0}.crime-bar-row{display:flex;align-items:center;gap:8px;padding:6px 0;cursor:pointer;transition:opacity .2s}.crime-bar-row:hover{background:#f7fafc}.crime-bar-row.dimmed{opacity:.35}.crime-bar-label{width:110px;flex-shrink:0;font-size:.78rem;color:#4a5568;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crime-bar-track{flex:1 1;height:16px;background:#edf2f7;border-radius:4px;overflow:hidden}.crime-bar-fill{height:100%;border-radius:4px;transition:width .3s ease;min-width:2px}.crime-bar-count{width:36px;flex-shrink:0;text-align:right;font-size:.8rem;font-weight:600;color:#2d3748}.results-info{padding:10px 16px;font-size:.82rem;color:#718096;border-bottom:1px solid #e2e8f0}.school-list{flex:1 1;overflow-y:auto;padding:8px}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:200px 0}}.skeleton-card{display:flex;padding:12px;border-radius:10px;background:white;border:1px solid #e2e8f0;margin-bottom:6px;gap:10px}.skeleton-bar{width:4px;border-radius:4px;background:linear-gradient(90deg,#e2e8f0,#f1f5f9 50%,#e2e8f0);background-size:400px 100%;animation:shimmer 1.5s infinite;flex-shrink:0}.skeleton-content{flex:1 1;display:flex;flex-direction:column;gap:8px;padding:4px 0}.skeleton-line{border-radius:4px;background:linear-gradient(90deg,#e2e8f0,#f1f5f9 50%,#e2e8f0);background-size:400px 100%;animation:shimmer 1.5s infinite}.skeleton-line-title{height:14px;width:75%}.skeleton-line-meta{height:10px;width:50%}.skeleton-section-header{opacity:.6;pointer-events:none}.sidebar-empty-state{text-align:center;padding:40px 16px;color:#64748b}.sidebar-empty-icon{font-size:2rem;margin-bottom:8px;opacity:.5}.sidebar-empty-state p{font-size:.9rem;line-height:1.5;margin:0}.sidebar-empty-clear{margin-top:12px;background:none;border:1px solid #cbd5e1;border-radius:6px;padding:6px 16px;font-size:.82rem;color:#0d9488;cursor:pointer;transition:background .15s}.sidebar-empty-clear:hover{background:#f0fdfa}.item-card{padding:14px;border-radius:10px;cursor:pointer;transition:all .2s;border:1px solid transparent;margin-bottom:6px}.item-card:hover{background:#edf2f7;border-color:#e2e8f0}.item-card.active{background:#ccfbf1;border-color:#0d9488}.item-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px}.item-card h3{font-size:.95rem;font-weight:600;color:#134e4a;line-height:1.3;flex:1 1;margin-right:8px;text-transform:capitalize}.item-card-meta{display:flex;gap:12px;font-size:.8rem;color:#718096}.item-card-meta span,.item-card-stats{display:flex;align-items:center;gap:4px}.item-card-stats{margin-top:6px;font-size:.75rem;color:#4a5568;flex-wrap:wrap}.stat-sep{color:#cbd5e0;margin:0 2px}.school-card{display:flex;border-radius:10px;cursor:pointer;transition:all .2s;border:1px solid #e2e8f0;margin-bottom:6px;overflow:hidden;background:#fff}.school-card:hover{border-color:#94a3b8;box-shadow:0 1px 4px rgba(0,0,0,.06)}.school-card.active{border-color:#0d9488;background:#f0fdfa;box-shadow:0 0 0 1px #0d9488}.school-card-dist{font-size:.72rem;color:#0d9488;font-weight:500;padding:0 14px;margin-top:6px;margin-bottom:-4px}.school-ofsted-bar{width:5px;flex-shrink:0}.school-card-content{padding:10px 14px;flex:1 1;min-width:0}.school-card-row1{display:flex;align-items:baseline;gap:8px;margin-bottom:3px}.school-card-name{font-size:.92rem;font-weight:600;color:#0f172a;line-height:1.3;flex:1 1;min-width:0}.school-ofsted-label{font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:4px;white-space:nowrap;flex-shrink:0;border:1px solid}.school-card-row2{font-size:.78rem;color:#64748b;display:flex;align-items:center;gap:3px}.school-dist{color:#0d9488;font-weight:500}.school-phase-icon{font-size:.82rem;margin-right:1px}.school-phase-shape{display:inline-flex;align-items:center;margin-right:5px;flex-shrink:0}.school-phase-shape svg{display:block}.filter-icon{display:inline-flex;align-items:center;margin-right:4px}.filter-icon svg{display:block}.school-sep{color:#cbd5e1;margin:0 3px}.school-card-row3{margin-top:3px;font-size:.72rem;color:#94a3b8}.ov-school-row{display:flex;gap:8px}.ov-school-bar{width:3px;border-radius:2px;flex-shrink:0;align-self:stretch}.ov-school-info{flex:1 1;min-width:0}.ofsted-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.72rem;font-weight:600;white-space:nowrap}.ofsted-1{background:#dbeafe;color:#1e40af}.ofsted-2{background:#dcfce7;color:#166534}.ofsted-3{background:#fef3c7;color:#92400e}.ofsted-4{background:#fee2e2;color:#991b1b}.ofsted-dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle}.ofsted-dot.ofsted-1{background:#2563eb}.ofsted-dot.ofsted-2{background:#22c55e}.ofsted-dot.ofsted-3{background:#f59e0b}.ofsted-dot.ofsted-4{background:#ef4444}.popup-ofsted{margin:10px 0;padding:10px;background:#f7fafc;border-radius:8px;border:1px solid #e2e8f0}.popup-ofsted-header{font-size:.85rem;font-weight:600;color:#2d3748;margin-bottom:6px;display:flex;align-items:center;gap:6px}.ofsted-sub{display:flex;justify-content:space-between;align-items:center;padding:3px 0;font-size:.75rem;color:#718096}.ks4-stats{display:flex;gap:12px;margin:10px 0;padding:10px;background:#f7fafc;border-radius:8px;border:1px solid #e2e8f0}.ks4-stat{display:flex;flex-direction:column;align-items:center;flex:1 1}.ks4-val{font-size:1.1rem;font-weight:700;color:#134e4a}.ks4-val.ks4-pos{color:#22543d}.ks4-val.ks4-neg{color:#9b2c2c}.ks4-label{font-size:.68rem;color:#a0aec0;text-transform:uppercase;letter-spacing:.5px}.map-container{flex:1 1;position:relative}#map{width:100%;height:100%}.leaflet-popup-content-wrapper{border-radius:12px!important;box-shadow:0 4px 20px rgba(0,0,0,.15)!important;padding:0!important}.leaflet-popup-content{margin:0!important;min-width:280px}.popup-content{padding:16px}.popup-content h3{font-size:1rem;color:#134e4a;margin-bottom:8px;text-transform:capitalize}.popup-content .popup-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.popup-content .popup-tag{padding:2px 8px;background:#edf2f7;border-radius:4px;font-size:.75rem;color:#4a5568}.popup-phase-badge{padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:700;letter-spacing:.03em;background:#e2e8f0;color:#475569}.popup-phase-primary{background:#dcfce7;color:#166534}.popup-phase-secondary{background:#dbeafe;color:#1e40af}.popup-phase-sixth{background:#ede9fe;color:#5b21b6}.popup-phase-allthrough{background:#ffedd5;color:#9a3412}.popup-phase-nursery{background:#fef9c3;color:#854d0e}.popup-tag-crime{background:#fed7d7!important;color:#9b2c2c!important}.popup-tag-gp{background:#c6f6d5!important;color:#22543d!important}.popup-tag-flood,.popup-tag-hospital{background:#bee3f8!important;color:#2a4365!important}.popup-content .popup-description{font-size:.85rem;color:#718096;line-height:1.5;margin-bottom:10px}.popup-content .popup-address{font-size:.8rem;color:#a0aec0;margin-top:4px}.popup-expand-btn{display:block;width:100%;padding:6px 0;margin-top:6px;border:none;background:none;color:#0d9488;font-size:.78rem;font-weight:600;cursor:pointer;text-align:center}.popup-expand-btn:hover{color:#134e4a}.custom-marker{background:#0d9488;border:3px solid white;border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.3);line-height:32px;text-align:center;color:white;font-weight:700;font-size:11px}.custom-marker,.school-shield-marker{display:flex!important;align-items:center;justify-content:center}.school-shield-marker{background:transparent!important;border:none!important;box-shadow:none!important;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35));transition:transform .15s ease}.school-shield-marker:hover{transform:scale(1.15);z-index:1000!important}.school-shield-marker svg{width:100%;height:100%}.school-shield-bg{opacity:.35;filter:drop-shadow(0 1px 2px rgba(0,0,0,.15));pointer-events:auto;transition:opacity .2s ease,transform .15s ease}.school-shield-bg:hover{opacity:.85}.bg-schools-toggle{position:absolute;bottom:24px;right:12px;z-index:1000;display:flex;align-items:center;gap:6px;padding:6px 12px;border:2px solid #cbd5e1;border-radius:8px;background:#fff;color:#64748b;font-size:13px;font-weight:500;cursor:pointer;box-shadow:0 2px 6px rgba(0,0,0,.12);transition:border-color .2s,color .2s,background .2s;line-height:1}.bg-schools-toggle:hover{border-color:#94a3b8;color:#334155}.bg-schools-toggle.active{border-color:#38a169;color:#22543d;background:#f0fff4}.bg-schools-toggle-icon{font-size:15px;line-height:1}.bg-schools-toggle-label{letter-spacing:.01em}.custom-marker.primary{background:#38a169}.custom-marker.secondary{background:#0d9488}.custom-marker.sixth-form{background:#805ad5}.custom-marker.all-through{background:#dd6b20}.custom-marker.gp{background:#2f855a;position:relative}.custom-marker.gp:after,.custom-marker.gp:before{content:"";position:absolute;background:white;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:1px}.custom-marker.gp:before{width:12px;height:3px}.custom-marker.gp:after{width:3px;height:12px}.custom-marker.hospital{background:#0d9488;border-radius:5px!important;color:white;font-weight:700;font-size:14px}.custom-marker.crime-robbery,.custom-marker.crime-violent{background:#c53030}.custom-marker.crime-burglary,.custom-marker.crime-vehicle{background:#dd6b20}.custom-marker.crime-asb{background:#d69e2e}.custom-marker.crime-shoplifting{background:#805ad5}.custom-marker.crime-other{background:#e53e3e}.custom-marker.flood-river{background:#3b82f6}.custom-marker.flood-tidal{background:#319795}.custom-marker.flood-groundwater{background:#0987a0}.postcode-marker-pin{width:16px;height:16px;background:#e53e3e;border:3px solid white;border-radius:50%;box-shadow:0 0 0 2px #e53e3e,0 2px 8px rgba(0,0,0,.4)}.zoom-warning{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:800;opacity:0;transition:opacity .3s}.zoom-warning.visible{opacity:1}.zoom-warning-content{background:rgba(26,54,93,.9);color:white;padding:20px 32px;border-radius:12px;text-align:center;box-shadow:0 4px 20px rgba(0,0,0,.2)}.zoom-warning-icon{font-size:2rem;display:block;margin-bottom:8px}.zoom-warning-content p{font-size:.95rem;font-weight:500}.marker-cluster-small{background-color:rgba(43,108,176,.3)!important}.marker-cluster-small div{background-color:rgba(43,108,176,.7)!important;color:white!important;font-weight:700}.marker-cluster-medium{background-color:rgba(56,161,105,.3)!important}.marker-cluster-medium div{background-color:rgba(56,161,105,.7)!important;color:white!important;font-weight:700}.marker-cluster-large{background-color:rgba(221,107,32,.3)!important}.marker-cluster-large div{background-color:rgba(221,107,32,.7)!important;color:white!important;font-weight:700}.marker-cluster-crime .marker-cluster-small{background-color:rgba(229,62,62,.3)!important}.marker-cluster-crime .marker-cluster-small div{background-color:rgba(229,62,62,.7)!important}.marker-cluster-crime .marker-cluster-medium{background-color:rgba(229,62,62,.3)!important}.marker-cluster-crime .marker-cluster-medium div{background-color:rgba(229,62,62,.7)!important}.marker-cluster-crime .marker-cluster-large{background-color:rgba(229,62,62,.3)!important}.marker-cluster-crime .marker-cluster-large div{background-color:rgba(229,62,62,.7)!important}.marker-cluster-gp .marker-cluster-small{background-color:rgba(47,133,90,.3)!important}.marker-cluster-gp .marker-cluster-small div{background-color:rgba(47,133,90,.7)!important}.marker-cluster-gp .marker-cluster-medium{background-color:rgba(47,133,90,.3)!important}.marker-cluster-gp .marker-cluster-medium div{background-color:rgba(47,133,90,.7)!important}.marker-cluster-gp .marker-cluster-large{background-color:rgba(47,133,90,.3)!important}.marker-cluster-gp .marker-cluster-large div{background-color:rgba(47,133,90,.7)!important}.marker-cluster-flood .marker-cluster-small{background-color:rgba(49,130,206,.3)!important}.marker-cluster-flood .marker-cluster-small div{background-color:rgba(49,130,206,.7)!important}.marker-cluster-flood .marker-cluster-medium{background-color:rgba(49,130,206,.3)!important}.marker-cluster-flood .marker-cluster-medium div{background-color:rgba(49,130,206,.7)!important}.marker-cluster-flood .marker-cluster-large{background-color:rgba(49,130,206,.3)!important}.marker-cluster-flood .marker-cluster-large div{background-color:rgba(49,130,206,.7)!important}.phase-badge{padding:2px 10px;border-radius:12px;font-size:.72rem;font-weight:600;white-space:nowrap}.primary-badge{background:#f0fdf4;color:#374151;border:1.5px solid #bbf7d0}.secondary-badge{background:#eff6ff;color:#374151;border:1.5px solid #bfdbfe}.sixth-form-badge{background:#f5f3ff;color:#374151;border:1.5px solid #ddd6fe}.all-through-badge{background:#fff7ed;color:#374151;border:1.5px solid #fed7aa}.nursery-badge{background:#fdf2f8;color:#374151;border:1.5px solid #fbcfe8}.other-badge{background:#f8fafc;color:#374151;border:1.5px solid #e2e8f0}.gp-badge{background:#c6f6d5;color:#22543d}.hospital-badge{background:#bee3f8;color:#2a4365}.crime-badge{background:#fed7d7;color:#9b2c2c}.flood-badge{background:#bee3f8;color:#2a4365}.flood-tidal-badge{background:#b2f5ea;color:#234e52}.flood-gw-badge{background:#c4f1f9;color:#065666}.flood-legend{padding:20px;overflow-y:auto;flex:1 1}.flood-legend-title{font-size:1.1rem;font-weight:700;color:#134e4a;margin-bottom:10px}.flood-legend-desc{font-size:.85rem;color:#718096;line-height:1.5;margin-bottom:18px}.flood-legend-items{display:flex;flex-direction:column;gap:14px;margin-bottom:18px}.flood-legend-item{display:flex;gap:12px;align-items:flex-start}.flood-legend-swatch{width:28px;height:28px;min-width:28px;border-radius:6px;border:1px solid rgba(0,0,0,.1);margin-top:2px}.flood-zone-3{background:rgba(0,70,170,.5)}.flood-zone-2{background:rgba(0,140,220,.4)}.flood-zone-1{background:#f7fafc;border:1px dashed #cbd5e0}.flood-legend-item strong{font-size:.88rem;color:#2d3748}.flood-legend-item p{font-size:.78rem;color:#a0aec0;line-height:1.4;margin-top:2px}.flood-legend-source{font-size:.72rem;color:#cbd5e0;line-height:1.4;border-top:1px solid #e2e8f0;padding-top:12px}.noise-legend{padding:20px;overflow-y:auto;flex:1 1}.noise-legend-title{font-size:1.1rem;font-weight:700;color:#134e4a;margin-bottom:10px}.noise-legend-desc{font-size:.85rem;color:#718096;line-height:1.5;margin-bottom:18px}.noise-legend-items{display:flex;flex-direction:column;gap:14px;margin-bottom:18px}.noise-legend-item{display:flex;gap:12px;align-items:flex-start}.noise-legend-swatch{width:28px;height:28px;min-width:28px;border-radius:6px;border:1px solid rgba(0,0,0,.1);margin-top:2px}.noise-level-high{background:rgba(180,0,30,.7)}.noise-level-medium-high{background:rgba(230,120,0,.6)}.noise-level-medium{background:rgba(255,200,0,.5)}.noise-level-low{background:rgba(100,180,80,.4)}.noise-legend-item strong{font-size:.88rem;color:#2d3748}.noise-legend-item p{font-size:.78rem;color:#a0aec0;line-height:1.4;margin-top:2px}.noise-legend-source{font-size:.72rem;color:#cbd5e0;line-height:1.4;border-top:1px solid #e2e8f0;padding-top:12px}.transport-svg-marker{background:transparent!important;border:none!important;box-shadow:none!important;display:flex!important;align-items:center;justify-content:center}.transport-svg-marker svg{width:100%;height:100%;filter:drop-shadow(0 1px 3px rgba(0,0,0,.35))}.custom-marker.transport-bus{background:#9ca3af;opacity:.55;width:8px!important;height:8px!important;min-width:8px!important;min-height:8px!important;font-size:0;border:1.5px solid #fff;box-shadow:0 0 2px rgba(0,0,0,.15);padding:0;line-height:0}.transport-train-badge{background:#dbeafe;color:#1e40af}.transport-tube-badge{background:#fee2e2;color:#991b1b}.transport-tram-badge{background:#ffedd5;color:#9a3412}.transport-ferry-badge{background:#ccfbf1;color:#134e4a}.transport-bus-badge{background:#dcfce7;color:#166534}.popup-tag-transport-train{background:#dbeafe!important;color:#1e40af!important}.popup-tag-transport-tube{background:#fee2e2!important;color:#991b1b!important}.popup-tag-transport-tram{background:#ffedd5!important;color:#9a3412!important}.popup-tag-transport-ferry{background:#ccfbf1!important;color:#134e4a!important}.popup-tag-transport-bus{background:#dcfce7!important;color:#166534!important}.marker-cluster-transport .marker-cluster-small{background-color:rgba(37,99,235,.3)!important}.marker-cluster-transport .marker-cluster-small div{background-color:rgba(37,99,235,.7)!important}.marker-cluster-transport .marker-cluster-medium{background-color:rgba(37,99,235,.3)!important}.marker-cluster-transport .marker-cluster-medium div{background-color:rgba(37,99,235,.7)!important}.marker-cluster-transport .marker-cluster-large{background-color:rgba(37,99,235,.3)!important}.marker-cluster-transport .marker-cluster-large div{background-color:rgba(37,99,235,.7)!important}.custom-marker.greenspace-park{background:#15803d}.custom-marker.greenspace-playground{background:#a3e635;color:#1a2e05}.custom-marker.greenspace-field{background:#4ade80;color:#14532d}.custom-marker.greenspace-other{background:#86efac;color:#14532d}.custom-marker.greenspace-sz-1{line-height:18px;font-size:9px;border-width:2px}.custom-marker.greenspace-sz-2{line-height:24px;font-size:10px;border-width:2px}.custom-marker.greenspace-sz-3{line-height:30px;font-size:12px;border-width:3px}.custom-marker.greenspace-sz-4{line-height:36px;font-size:14px;border-width:3px}.greenspace-park-badge{background:#dcfce7;color:#14532d}.greenspace-playground-badge{background:#ecfccb;color:#365314}.greenspace-field-badge{background:#d9f99d;color:#365314}.greenspace-other-badge{background:#f0fdf4;color:#166534}.popup-tag-greenspace-park{background:#dcfce7!important;color:#14532d!important}.popup-tag-greenspace-playground{background:#ecfccb!important;color:#365314!important}.popup-tag-greenspace-field{background:#d9f99d!important;color:#365314!important}.popup-tag-greenspace-other{background:#f0fdf4!important;color:#166534!important}.marker-cluster-greenspace .marker-cluster-small{background-color:rgba(21,128,61,.3)!important}.marker-cluster-greenspace .marker-cluster-small div{background-color:rgba(21,128,61,.7)!important}.marker-cluster-greenspace .marker-cluster-medium{background-color:rgba(21,128,61,.3)!important}.marker-cluster-greenspace .marker-cluster-medium div{background-color:rgba(21,128,61,.7)!important}.marker-cluster-greenspace .marker-cluster-large{background-color:rgba(21,128,61,.3)!important}.marker-cluster-greenspace .marker-cluster-large div{background-color:rgba(21,128,61,.7)!important}.custom-marker.supermarket-tesco{color:#00539f;border-color:#00539f}.custom-marker.supermarket-sainsburys{color:#f06c00;border-color:#f06c00}.custom-marker.supermarket-asda{color:#78b942;border-color:#78b942}.custom-marker.supermarket-morrisons{color:#007a3d;border-color:#007a3d}.custom-marker.supermarket-aldi{color:#00205b;border-color:#00205b}.custom-marker.supermarket-lidl{color:#0050aa;border-color:#0050aa}.custom-marker.supermarket-waitrose{color:#5c8a3c;border-color:#5c8a3c}.custom-marker.supermarket-coop{color:#00b1eb;border-color:#00b1eb}.custom-marker.supermarket-ms{color:#1a1a1a;border-color:#1a1a1a}.custom-marker.supermarket-iceland{color:#e4002b;border-color:#e4002b}.custom-marker.supermarket-spar{color:#d32030;border-color:#d32030}.custom-marker.supermarket-budgens{color:#5a8c23;border-color:#5a8c23}.custom-marker.supermarket-farmfoods{color:#0072bc;border-color:#0072bc}.custom-marker.supermarket-heron{color:#a16207;border-color:#ffc20e}.custom-marker.supermarket-cook{color:#1a1a1a;border-color:#1a1a1a}.custom-marker.supermarket-centra,.custom-marker.supermarket-costco{color:#e31837;border-color:#e31837}.custom-marker.supermarket-booths{color:#8b6914;border-color:#8b6914}.custom-marker.supermarket-makro{color:#003da5;border-color:#003da5}.custom-marker.supermarket-dunnes{color:#003366;border-color:#003366}.custom-marker.supermarket-other{color:#6b7280;border-color:#6b7280}.custom-marker.shop-sz-1{line-height:16px;font-size:9px;border-width:2px}.custom-marker.shop-sz-2{line-height:22px;font-size:10px;border-width:2px}.custom-marker.shop-sz-3{line-height:28px;font-size:12px;border-width:3px}.custom-marker.shop-sz-4{line-height:34px;font-size:14px;border-width:3px}.supermarket-tesco-badge{background:#dbeafe;color:#00539f}.supermarket-sainsburys-badge{background:#ffedd5;color:#9a3412}.supermarket-asda-badge{background:#dcfce7;color:#166534}.supermarket-morrisons-badge{background:#d1fae5;color:#065f46}.supermarket-aldi-badge{background:#dbeafe;color:#1e3a5f}.supermarket-lidl-badge{background:#dbeafe;color:#003d82}.supermarket-waitrose-badge{background:#dcfce7;color:#3f6b24}.supermarket-coop-badge{background:#e0f2fe;color:#0369a1}.supermarket-ms-badge{background:#f3f4f6;color:#1f2937}.supermarket-iceland-badge,.supermarket-spar-badge{background:#fee2e2;color:#991b1b}.supermarket-budgens-badge{background:#dcfce7;color:#3f6b24}.supermarket-farmfoods-badge{background:#dbeafe;color:#003d82}.supermarket-heron-badge{background:#fef9c3;color:#854d0e}.supermarket-other-badge{background:#f3f4f6;color:#4b5563}.overview-transport-row{display:flex;align-items:center;gap:6px}.overview-transport-icon{display:inline-flex;align-items:center;height:18px;flex-shrink:0}.overview-transport-icon svg{height:18px;width:auto;display:block}.supermarket-fascia{font-size:.8rem;font-weight:400;color:#64748b}.custom-marker[class*=supermarket]{background:white;border-radius:4px;border-width:1.5px}.popup-tag-supermarket-tesco{background:#dbeafe!important;color:#00539f!important}.popup-tag-supermarket-sainsburys{background:#ffedd5!important;color:#9a3412!important}.popup-tag-supermarket-asda{background:#dcfce7!important;color:#166534!important}.popup-tag-supermarket-morrisons{background:#d1fae5!important;color:#065f46!important}.popup-tag-supermarket-aldi{background:#dbeafe!important;color:#1e3a5f!important}.popup-tag-supermarket-lidl{background:#dbeafe!important;color:#003d82!important}.popup-tag-supermarket-waitrose{background:#dcfce7!important;color:#3f6b24!important}.popup-tag-supermarket-coop{background:#e0f2fe!important;color:#0369a1!important}.popup-tag-supermarket-ms{background:#f3f4f6!important;color:#1f2937!important}.popup-tag-supermarket-iceland,.popup-tag-supermarket-spar{background:#fee2e2!important;color:#991b1b!important}.popup-tag-supermarket-budgens{background:#dcfce7!important;color:#3f6b24!important}.popup-tag-supermarket-farmfoods{background:#dbeafe!important;color:#003d82!important}.popup-tag-supermarket-heron{background:#fef9c3!important;color:#854d0e!important}.marker-cluster-supermarket .marker-cluster-small{background-color:rgba(217,119,6,.3)!important}.marker-cluster-supermarket .marker-cluster-small div{background-color:rgba(217,119,6,.7)!important}.marker-cluster-supermarket .marker-cluster-medium{background-color:rgba(217,119,6,.3)!important}.marker-cluster-supermarket .marker-cluster-medium div{background-color:rgba(217,119,6,.7)!important}.marker-cluster-supermarket .marker-cluster-large{background-color:rgba(217,119,6,.3)!important}.marker-cluster-supermarket .marker-cluster-large div{background-color:rgba(217,119,6,.7)!important}@media (max-width:768px){.header{padding:8px 12px}.header-brand,.header-menu{display:none}.header-hamburger,.header-logo-mini{display:flex}.postcode-search{flex:1 1 auto;max-width:none}.leaflet-top.leaflet-left{top:auto!important;left:auto!important;bottom:24px;right:10px}.leaflet-control-zoom{margin:0!important}.layer-toggle-wrapper{position:absolute;top:0;left:0;right:0;z-index:999;pointer-events:none}.layer-toggle{padding:4px 6px;gap:4px;overflow-x:auto;background:transparent;border-bottom:none;pointer-events:auto;scrollbar-width:none}.layer-toggle::-webkit-scrollbar{display:none}.layer-btn{padding:4px 8px;gap:3px;min-height:34px;font-size:.8rem;background:rgba(255,255,255,.95);box-shadow:0 1px 3px rgba(0,0,0,.15);border-color:transparent;border-radius:8px;flex-shrink:0}.layer-btn.active{box-shadow:0 1px 5px rgba(0,0,0,.2)}.layer-icon{font-size:.9rem}.layer-sub-btn{padding:3px 10px;min-height:30px;font-size:.72rem;border-radius:16px;border-width:1.5px;background:rgba(255,255,255,.95);box-shadow:0 1px 2px rgba(0,0,0,.1);flex-shrink:0}.layer-sub-btn .layer-label{display:inline;font-size:.7rem}.layer-label{display:none}.layer-sub-bar{padding:2px 6px 4px;background:transparent;border-bottom:none;gap:4px;scrollbar-width:none}.layer-sub-bar::-webkit-scrollbar{display:none}.main-container{position:relative;flex:1 1;overflow:hidden}.map-container{position:absolute;inset:0;z-index:1}.bottom-sheet{position:absolute;left:0;right:0;bottom:0;top:0;z-index:500;background:white;border-radius:16px 16px 0 0;box-shadow:0 -4px 20px rgba(0,0,0,.12);transition:transform .3s cubic-bezier(.32,.72,0,1);display:flex;flex-direction:column;will-change:transform}.bottom-sheet--collapsed{transform:translateY(calc(100% - 80px));pointer-events:none}.bottom-sheet--collapsed .bottom-sheet-handle,.bottom-sheet--collapsed .bottom-sheet-summary{pointer-events:auto}.bottom-sheet--half{transform:translateY(50%)}.bottom-sheet--full{transform:translateY(48px)}.bottom-sheet-handle{padding:12px 16px 8px;cursor:-webkit-grab;cursor:grab;touch-action:none;flex-shrink:0;pointer-events:auto}.bottom-sheet-grabber{width:56px;height:6px;background:#94a3b8;border-radius:3px;margin:0 auto 4px}@keyframes sheetBounce{0%,to{transform:translateY(50%)}50%{transform:translateY(calc(50% - 20px))}}.bottom-sheet--hint{animation:sheetBounce .6s ease-in-out 1}.bottom-sheet-swipe-hint{font-size:.7rem;color:#94a3b8;text-align:center;margin-bottom:4px;letter-spacing:.3px}.bottom-sheet-summary{font-size:.85rem;color:#475569;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.bottom-sheet .overview-summary{display:none}.bottom-sheet .sidebar{width:100%;min-width:unset;border-right:none;border-top:none}.bottom-sheet .overview-panel,.bottom-sheet .sidebar{height:auto;min-height:0}.bottom-sheet .overview-panel,.bottom-sheet .sidebar,.mobile-detail{flex:1 1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.mobile-detail{padding:0 16px 24px;position:relative}.mobile-detail-close{position:absolute;top:0;right:8px;background:none;border:none;font-size:1.6rem;color:#64748b;padding:4px 10px;cursor:pointer;z-index:2;line-height:1}.mobile-detail-close:hover{color:#1e293b}.mobile-detail .popup-content{padding:0;max-width:none}.mobile-detail .popup-content h3{padding-right:36px;font-size:1.15rem;line-height:1.3;margin-bottom:8px}.mobile-detail .popup-meta{margin-bottom:10px}.mobile-detail .popup-tag{font-size:.8rem;padding:3px 10px}.mobile-detail .ofsted-badge{font-size:.82rem;padding:3px 10px}.mobile-detail .ks4-stats,.mobile-detail .popup-ofsted{margin:14px 0;padding:14px}.mobile-detail .ks4-stat{min-width:70px}.filters,.sidebar-search{padding:8px 12px}.filters{gap:6px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filter-btn{padding:5px 10px;font-size:.78rem;min-height:32px;white-space:nowrap;flex-shrink:0}.results-info{padding:6px 12px;font-size:.78rem}.item-card{padding:10px;margin-bottom:4px}.item-card h3{font-size:.88rem}.item-card-meta{font-size:.75rem}.flood-legend{padding:14px}.flood-legend-title{font-size:.95rem}.noise-legend{padding:14px}.noise-legend-title{font-size:.95rem}.crime-bar-label{width:80px;font-size:.72rem}.crime-bar-total-count{font-size:1.5rem}.crime-no-postcode{padding:24px 16px}.crime-radius-slider{padding:10px 12px}}.cookie-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:9999;display:flex;align-items:flex-end;justify-content:center;padding:24px;animation:cookieFadeIn .4s ease}@keyframes cookieFadeIn{0%{opacity:0}to{opacity:1}}@keyframes cookieSlideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.cookie-banner{background:#fff;border-radius:16px;padding:28px 32px;max-width:480px;width:100%;box-shadow:0 12px 40px rgba(0,0,0,.2);animation:cookieSlideUp .4s ease .1s both}.cookie-text h3{font-size:1.1rem;font-weight:700;color:#1a202c;margin-bottom:8px}.cookie-text p{font-size:.85rem;color:#4a5568;line-height:1.6;margin-bottom:20px}.cookie-actions{display:flex;flex-direction:column;gap:10px;align-items:center}.cookie-accept{background:#0d9488;color:#fff;border:none;border-radius:10px;padding:13px 36px;font-size:.95rem;font-weight:600;cursor:pointer;width:100%;transition:background .2s,transform .15s}.cookie-accept:hover{background:#1d4ed8;transform:scale(1.02)}.cookie-accept:active{transform:scale(.98)}.cookie-manage{background:none;border:none;color:#718096;font-size:.82rem;cursor:pointer;padding:6px 12px;text-decoration:underline;text-underline-offset:2px;transition:color .2s}.cookie-manage:hover{color:#4a5568}.cookie-banner-detail{max-width:520px;text-align:left}.cookie-category{background:#f7fafc;border:1px solid #e2e8f0;border-radius:10px;padding:14px 16px;margin-bottom:10px}.cookie-category-header{display:flex;justify-content:space-between;align-items:center}.cookie-category-header strong{font-size:.88rem;color:#1a202c}.cookie-always-on{font-size:.75rem;color:#38a169;background:#f0fff4;padding:2px 10px;border-radius:20px;font-weight:600;margin-left:8px}.cookie-category-desc{font-size:.8rem;color:#718096;line-height:1.5;margin-top:6px}.cookie-reject{background:none;border:1px solid #e2e8f0;color:#4a5568;border-radius:10px;padding:11px 36px;font-size:.88rem;font-weight:500;cursor:pointer;width:100%;transition:background .2s,border-color .2s}.cookie-reject:hover{background:#f7fafc;border-color:#cbd5e0}@media (max-width:500px){.cookie-backdrop{padding:12px}.cookie-banner{padding:22px 20px;border-radius:14px}}.header-menu-disabled{color:rgba(255,255,255,.35)!important;cursor:not-allowed}.header-menu-disabled:hover{background:none!important;color:rgba(255,255,255,.35)!important}.landing-page{min-height:100vh}.header.header-landing{background:transparent;box-shadow:none;position:absolute;top:0;left:0;right:0;z-index:100}.landing-hero{background:linear-gradient(135deg,#134e4a,#0d9488 60%,#14b8a6);min-height:520px;display:flex;align-items:center;justify-content:center;text-align:center;padding:100px 24px 60px}.landing-hero-content{max-width:640px}.landing-hero-title{font-size:2.8rem;font-weight:800;color:white;line-height:1.15;margin-bottom:16px}.landing-hero-title span{color:#5eead4}.landing-hero-subtitle{font-size:1.1rem;color:rgba(255,255,255,.85);line-height:1.6;margin-bottom:32px}.landing-hero-hint{margin-bottom:16px;font-size:.85rem;color:rgba(255,255,255,.5)}.landing-hero-example{color:#5eead4;text-decoration:none;border-bottom:1px dashed rgba(94,234,212,.4);transition:color .15s}.landing-hero-example:hover{color:white}.landing-search{position:relative;max-width:500px;margin:0 auto}.landing-search-row{display:flex;background:white;border-radius:12px;overflow:hidden;box-shadow:0 8px 30px rgba(0,0,0,.2)}.landing-search-row input{flex:1 1;border:none;outline:none;padding:16px 20px;font-size:1rem;color:#2d3748;min-width:0}.landing-search-row input::placeholder{color:#a0aec0}.landing-search-btn{background:#0d9488;color:white;border:none;padding:16px 28px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s;white-space:nowrap;flex-shrink:0}.landing-search-btn:hover{background:#134e4a}.landing-search-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:white;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18);z-index:2000;overflow:hidden;display:none;padding:6px 0}.landing-search-dropdown.visible{display:block}.landing-search-item{display:flex;align-items:center;gap:10px;padding:11px 16px;font-size:.92rem;color:#2d3748;cursor:pointer;transition:background .15s;border-left:3px solid transparent}.landing-search-item:not(:last-child){border-bottom:1px solid #edf2f7}.landing-search-item:before{content:"📍";font-size:.82rem;flex-shrink:0;opacity:.45;transition:opacity .15s}.landing-search-item:hover{background:#ccfbf1;color:#0d9488;border-left-color:#0d9488}.landing-search-item:hover:before{opacity:.85}.landing-search-item-text{display:flex;flex-direction:column;min-width:0}.landing-search-sublabel{display:block;font-size:.78rem;color:#718096;margin-top:2px}.landing-search-item:hover .landing-search-sublabel{color:#0f766e}.landing-features{padding:64px 24px;max-width:960px;margin:0 auto;text-align:center}.landing-features-title{font-size:1.8rem;font-weight:700;color:#134e4a;margin-bottom:40px}.landing-features-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:24px;gap:24px;text-align:left}.landing-feature-card{padding:28px 24px;background:white;border-radius:12px;border:1px solid #e2e8f0;transition:box-shadow .2s,transform .2s}.landing-feature-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.08);transform:translateY(-2px)}.landing-feature-icon{font-size:2rem;display:block;margin-bottom:12px}.landing-feature-card h3{font-size:1.05rem;font-weight:700;color:#134e4a;margin-bottom:6px}.landing-feature-card p{font-size:.88rem;color:#718096;line-height:1.6}.landing-stats{background:#134e4a;padding:40px 24px;display:flex;justify-content:center;gap:48px;flex-wrap:wrap}.landing-stat{text-align:center}.landing-stat-value{font-size:2rem;font-weight:800;color:#5eead4}.landing-stat-label{font-size:.85rem;color:rgba(255,255,255,.7);margin-top:4px}.landing-cta-btn{display:inline-block;background:linear-gradient(135deg,#134e4a,#0d9488);color:white;text-decoration:none;padding:14px 36px;border-radius:10px;font-size:1rem;font-weight:600;transition:transform .15s,box-shadow .2s}.landing-cta-btn:hover{transform:scale(1.03);box-shadow:0 4px 16px rgba(43,108,176,.3)}.landing-how{padding:56px 24px;background:#edf2f7}.landing-how h2{text-align:center;font-size:1.5rem;color:#134e4a;margin-bottom:32px}.landing-how-steps{display:flex;justify-content:center;gap:32px;flex-wrap:wrap;max-width:800px;margin:0 auto}.landing-how-step{text-align:center;flex:1 1;min-width:200px}.landing-how-num{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#0d9488,#134e4a);color:white;font-size:1.2rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 12px}.landing-how-step h3{font-size:1rem;color:#134e4a;margin-bottom:6px}.landing-how-step p{font-size:.85rem;color:#4a5568;line-height:1.5}.landing-how-cta{text-align:center;margin-top:40px}.compare-hero{padding:100px 24px 40px;text-align:center;background:linear-gradient(135deg,#134e4a,#0d9488);color:white}.compare-hero h1{font-size:1.8rem;font-weight:700;margin-bottom:8px}.compare-hero p{font-size:.95rem;opacity:.85;max-width:480px;margin:0 auto}.compare-page{min-height:70vh;padding:32px 24px 60px;background:#f5f7fa}.compare-container{max-width:720px;margin:0 auto}.compare-header{text-align:center;margin-bottom:32px}.compare-header h2{font-size:1.8rem;font-weight:700;color:#134e4a;margin-bottom:8px}.compare-subtitle{color:#64748b;font-size:.95rem}.compare-inputs{display:flex;align-items:flex-end;gap:8px;margin-bottom:24px}.compare-input-wrapper{flex:1 1;min-width:140px;position:relative}.compare-input-label{display:block;font-size:.75rem;font-weight:600;color:#475569;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.compare-input{width:100%;padding:10px 14px;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;background:#fff;transition:border-color .2s}.compare-input:focus{outline:none;border-color:#0d9488}.compare-suggestions{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #e2e8f0;border-radius:0 0 8px 8px;box-shadow:0 4px 12px rgba(0,0,0,.1);z-index:50}.compare-suggestion-item{padding:8px 14px;cursor:pointer;font-size:.9rem}.compare-suggestion-item:hover{background:#f0fdfa}.compare-swap-btn{width:36px;height:36px;border:2px solid #e2e8f0;border-radius:50%;background:#fff;color:#64748b;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-bottom:2px;transition:border-color .2s,color .2s}.compare-swap-btn:hover{border-color:#0d9488;color:#0d9488}.compare-btn{padding:10px 24px;height:42px;background:#134e4a;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .2s;display:flex;align-items:center;justify-content:center}.compare-btn:hover{background:#0d9488}.compare-btn:disabled{background:#94a3b8;cursor:not-allowed}.compare-spinner{display:inline-block;width:18px;height:18px;border:2.5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:compare-spin .6s linear infinite}@keyframes compare-spin{to{transform:rotate(1turn)}}.compare-error{background:#fef2f2;color:#b91c1c;padding:10px 16px;border-radius:8px;margin-bottom:16px;font-size:.9rem}.compare-results{background:#fff;border-radius:12px;box-shadow:0 2px 16px rgba(0,0,0,.08);overflow:hidden}.compare-score-summary{display:flex;align-items:center}.compare-score{flex:1 1;padding:24px 16px;text-align:center;background:#f8fafc;border-bottom:3px solid #e2e8f0;transition:background .3s}.compare-score-winner{background:#f0fdfa;border-bottom-color:#0d9488}.compare-score-loser{background:#f8fafc;border-bottom-color:#e2e8f0}.compare-score-vs{font-weight:700;color:#cbd5e1;font-size:.85rem;text-transform:uppercase;background:#f8fafc;border-bottom:3px solid #e2e8f0;padding:24px 4px}.compare-score-postcode{display:block;font-size:.8rem;font-weight:600;color:#475569;margin-bottom:4px;letter-spacing:.3px}.compare-score-num{display:block;font-size:2rem;font-weight:800;color:#134e4a;line-height:1}.compare-score-denom{font-size:1rem;font-weight:600;color:#94a3b8}.compare-score-badge{display:inline-block;margin-top:8px;padding:2px 10px;background:#0d9488;color:#fff;font-size:.7rem;font-weight:600;border-radius:10px;text-transform:uppercase;letter-spacing:.3px}.compare-factors{padding:0}.compare-factor-row{display:flex;align-items:center;border-bottom:1px solid #f1f5f9}.compare-factor-row:last-child{border-bottom:none}.compare-cell-val{flex:1 1;padding:20px 16px;text-align:center}.compare-cell-num{font-size:1.6rem;font-weight:700;color:#475569}.compare-cell-winner .compare-cell-num{color:#0d9488}.compare-cell-check{display:block;font-size:.8rem;font-weight:700;color:#0d9488;margin-top:2px}.compare-cell-label{flex:0 0 auto;width:140px;padding:16px 8px;text-align:center;border-left:1px solid #f1f5f9;border-right:1px solid #f1f5f9}.compare-factor-name{display:block;font-weight:700;font-size:.9rem;color:#1e293b}.compare-factor-desc{display:block;font-size:.75rem;color:#94a3b8;margin-top:2px}.compare-factor-hint{display:block;font-size:.68rem;color:#cbd5e1;font-style:italic;margin-top:4px}.compare-footer{padding:14px 20px;background:#f8fafc;border-top:1px solid #f1f5f9}.compare-footer p{font-size:.75rem;color:#94a3b8;text-align:center;line-height:1.4}@media (max-width:600px){.compare-page{padding:80px 12px 40px}.compare-inputs{flex-wrap:wrap}.compare-input-wrapper{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 28px);min-width:120px}.compare-swap-btn{order:0}.compare-btn{flex:1 1 100%}.compare-score{padding:16px 12px}.compare-score-num{font-size:1.6rem}.compare-cell-label{width:100px;padding:12px 6px}.compare-factor-name{font-size:.8rem}.compare-cell-num{font-size:1.3rem}.compare-cell-val{padding:14px 8px}}.guide-hero{padding:100px 24px 32px;text-align:center;background:linear-gradient(135deg,#134e4a,#0d9488);color:white}.guide-hero h1{font-size:1.8rem;font-weight:800;margin-bottom:8px;max-width:720px;margin-left:auto;margin-right:auto}.guide-updated{font-size:.85rem;opacity:.6}.guide-content{max-width:720px;margin:0 auto;padding:40px 24px 60px;line-height:1.8;color:#1e293b}.guide-content h2{font-size:1.3rem;font-weight:700;color:#134e4a;margin:32px 0 12px}.guide-content p{margin-bottom:16px;font-size:.95rem}.guide-summary{font-size:1.05rem!important;color:#334155;border-left:4px solid #0d9488;padding-left:16px;margin-bottom:32px!important}.guide-steps{padding-left:24px;margin-bottom:24px}.guide-steps li{margin-bottom:8px;font-size:.95rem}.guide-content ul{padding-left:24px;margin-bottom:24px}.guide-content ul li{margin-bottom:6px;font-size:.95rem}.guide-table-wrapper{overflow-x:auto;margin:16px 0 24px}.guide-table{width:100%;border-collapse:collapse;font-size:.85rem}.guide-table th{background:#f1f5f9;padding:10px 12px;text-align:left;font-weight:600;color:#334155;border-bottom:2px solid #e2e8f0}.guide-table td{padding:8px 12px;border-bottom:1px solid #e2e8f0;color:#475569}.guide-table tr:hover{background:#f8fafc}.guide-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:40px 0}.guide-sources{font-size:.8rem;color:#94a3b8;text-align:center}@media (max-width:600px){.guide-hero{padding:80px 16px 24px}.guide-hero h1{font-size:1.4rem}.guide-content{padding:24px 16px 40px}.guide-cta{flex-direction:column}.guide-cta a{text-align:center}}.area-score-hero{padding:100px 24px 48px;text-align:center;background:linear-gradient(135deg,#134e4a,#0d9488 60%,#14b8a6);color:white}.area-score-hero-content{max-width:600px;margin:0 auto}.area-score-postcode{font-size:2.4rem;font-weight:800;letter-spacing:2px;margin-bottom:4px}.area-score-subtitle{font-size:1rem;opacity:.75;margin-bottom:32px}.area-score-gauge{display:flex;flex-direction:column;align-items:center;margin-bottom:24px}.area-score-gauge-ring{position:relative;width:160px;height:160px}.area-score-gauge-ring svg{display:block}.area-score-gauge-value{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:2px}.area-score-gauge-number{font-size:3rem;font-weight:800;line-height:1}.area-score-gauge-max{font-size:1rem;opacity:.6;align-self:flex-end;padding-bottom:6px}.area-score-gauge-label{font-size:1.1rem;font-weight:700;margin-top:8px;text-transform:uppercase;letter-spacing:1px}.area-score-tagline{font-size:.9rem;opacity:.7;line-height:1.5;max-width:480px;margin:0 auto}.area-score-main{padding:40px 24px 60px;background:#f5f7fa}.area-score-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:16px;gap:16px;max-width:960px;margin:0 auto 40px}.area-score-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:box-shadow .2s}.area-score-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.1)}.area-score-card-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.area-score-card-icon{font-size:1.3rem}.area-score-card-label{font-size:.95rem;font-weight:600;color:#1e293b;flex:1 1}.area-score-card-score{font-size:1.8rem;font-weight:800;line-height:1}.area-score-bar-track{height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden;margin-bottom:10px}.area-score-bar-fill{height:100%;border-radius:3px;transition:width .6s ease}.area-score-card-tier{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.area-score-card-detail{font-size:.85rem;color:#334155;line-height:1.5;margin-bottom:4px}.area-score-card-context{font-size:.8rem;color:#64748b;font-style:italic}.area-narrative{max-width:960px;margin:0 auto 32px;padding:28px 28px 20px;background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06);line-height:1.8}.area-narrative h2{font-size:1.2rem;font-weight:700;color:#134e4a;margin-bottom:16px}.area-narrative p{font-size:.9rem;color:#334155;margin-bottom:12px}.area-narrative p:last-child{margin-bottom:0}.area-score-sources{max-width:960px;margin:0 auto 32px;padding:20px;background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.area-score-sources h3{font-size:.85rem;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.area-score-sources p{font-size:.8rem;color:#64748b;line-height:1.6}.area-score-ctas{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;max-width:960px;margin:0 auto}.area-score-cta-primary{display:inline-block;padding:14px 32px;background:#0d9488;color:#fff;border-radius:8px;font-weight:600;font-size:1rem;text-decoration:none;transition:background .2s}.area-score-cta-primary:hover{background:#0f766e}.area-score-cta-secondary{display:inline-block;padding:14px 32px;background:#fff;color:#0d9488;border:2px solid #0d9488;border-radius:8px;font-weight:600;font-size:1rem;text-decoration:none;transition:background .2s,color .2s}.area-score-cta-secondary:hover{background:#0d9488;color:#fff}@media (max-width:600px){.area-score-hero{padding:80px 16px 32px}.area-score-postcode{font-size:1.8rem}.area-score-gauge-ring,.area-score-gauge-ring svg{width:130px;height:130px}.area-score-gauge-number{font-size:2.4rem}.area-score-main{padding:24px 12px 40px}.area-score-grid{grid-template-columns:1fr;gap:12px}.area-score-ctas{flex-direction:column;padding:0 12px}.area-score-cta-primary,.area-score-cta-secondary{text-align:center}}.about-hero{padding:120px 24px 48px;text-align:center;background:linear-gradient(135deg,#134e4a,#0d9488);color:white}.about-hero h1{font-size:2rem;font-weight:800;margin-bottom:12px}.about-lead{font-size:1.1rem;opacity:.85;max-width:600px;margin:0 auto;line-height:1.6}.about-section{max-width:800px;margin:0 auto;padding:48px 24px;border-bottom:1px solid #e2e8f0}.about-section:last-of-type{border-bottom:none}.about-section h2{font-size:1.4rem;color:#134e4a;margin-bottom:16px}.about-section p{font-size:.92rem;color:#4a5568;line-height:1.7;margin-bottom:12px}.about-sources{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:20px;gap:20px;margin-top:20px}.about-source{padding:16px;background:#f7fafc;border-radius:8px;border-left:3px solid #0d9488}.about-source h3{font-size:.95rem;color:#134e4a;margin-bottom:6px}.about-source p{font-size:.84rem;margin-bottom:0}.about-audience{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:24px;gap:24px;margin-top:20px}.about-audience-item{padding:20px;background:#f7fafc;border-radius:8px}.about-audience-item h3{font-size:.95rem;color:#134e4a;margin-bottom:8px}.about-audience-item p{font-size:.85rem;margin-bottom:0}.landing-footer{padding:32px 24px;text-align:center;border-top:1px solid #e2e8f0}.landing-footer-links{display:flex;justify-content:center;gap:24px;margin-bottom:16px}.landing-footer-links a{font-size:.85rem;color:#0d9488;text-decoration:none}.landing-footer-links a:hover{text-decoration:underline}.landing-footer-sources{font-size:.75rem;color:#a0aec0;line-height:1.6}@media (max-width:768px){.landing-hero{min-height:420px;padding:80px 16px 40px}.landing-hero-title{font-size:1.8rem}.landing-hero-subtitle{font-size:.95rem}.landing-features{padding:40px 16px}.landing-features-title{font-size:1.4rem;margin-bottom:28px}.landing-features-grid{grid-template-columns:repeat(2,1fr);gap:16px}.landing-feature-card{padding:20px 16px}.landing-stats{gap:32px;padding:32px 16px}.landing-stat-value{font-size:1.5rem}.header.header-landing .header-menu{display:none}.header.header-landing .header-hamburger{display:flex}}@media (max-width:480px){.landing-features-grid{grid-template-columns:1fr}.landing-search-row{flex-direction:column}.landing-search-row input{border-bottom:1px solid #e2e8f0}.landing-search-btn{padding:14px 28px}}.overview-panel{display:flex;flex-direction:column;gap:0;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.overview-summary{padding:10px 14px;font-size:.82rem;color:#475569;background:#f8fafc;border-bottom:1px solid #e2e8f0;font-weight:500}.overview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:#64748b}.overview-empty-icon{font-size:2.5rem;margin-bottom:12px}.overview-empty p{font-size:.9rem;line-height:1.5;margin:0}.overview-section-header{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:none;border-bottom:1px solid #e2e8f0;background:#f1f5f9;cursor:pointer;font-size:.85rem;font-weight:600;color:#1e293b;text-align:left}.overview-section-header:hover{background:#e2e8f0}.overview-section-icon{font-size:1rem}.overview-section-title{flex:1 1}.overview-section-count{background:#0d9488;color:white;font-size:.72rem;font-weight:700;padding:1px 7px;border-radius:10px;min-width:20px;text-align:center}.overview-section-chevron{font-size:.6rem;color:#94a3b8;transition:transform .15s}.overview-section-chevron.collapsed{transform:rotate(-90deg)}.overview-section-list{border-bottom:1px solid #e2e8f0}.overview-item{display:flex;align-items:flex-start;gap:10px;padding:8px 14px;cursor:pointer;border-bottom:1px solid #f1f5f9;transition:background .1s}.overview-item:last-child{border-bottom:none}.overview-item:hover{background:#f8fafc}.overview-item.active{background:#f0fdfa;border-left:3px solid #0d9488;padding-left:11px}.overview-item-dist{flex-shrink:0;font-size:.72rem;font-weight:600;color:#0d9488;background:#f0fdfa;padding:2px 6px;border-radius:4px;min-width:52px;text-align:center;margin-top:2px}.overview-item-content{flex:1 1;min-width:0}.overview-item-name{font-size:.82rem;font-weight:600;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overview-item-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px;font-size:.72rem;color:#64748b;align-items:center}.overview-item-badge{font-size:.68rem;font-weight:600;padding:1px 6px;border-radius:3px;border:1px solid #cbd5e1;background:#f8fafc}.overview-show-all{display:block;width:100%;padding:10px 14px;border:none;background:none;color:#0d9488;font-size:.82rem;font-weight:600;cursor:pointer;text-align:left;transition:background .15s}.overview-show-all:hover{background:#f0fdfa}.overview-item-badge.school-phase{background:#f0fdfa;border-color:#99f6e4;color:#0f766e}.health-icon-badge{display:inline-flex;align-items:center;flex-shrink:0;height:22px}.health-icon-badge svg{height:22px;width:22px;display:block}.overview-item-empty{padding:12px 14px;font-size:.8rem;color:#94a3b8;font-style:italic}.overview-bus-summary{padding:8px 14px;font-size:.78rem;color:#64748b;border-top:1px dashed #e2e8f0}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#134e4a,#0d9488);padding:20px}.auth-card{background:white;border-radius:12px;padding:40px;width:100%;max-width:420px;box-shadow:0 20px 60px rgba(0,0,0,.3)}.auth-logo{display:block;text-align:center;font-size:1.6rem;font-weight:800;color:#134e4a;text-decoration:none;margin-bottom:24px;letter-spacing:-.5px}.auth-title{font-size:1.1rem;color:#2d3748;text-align:center;margin-bottom:20px;font-weight:600}.auth-tabs{display:flex;border-bottom:2px solid #e2e8f0;margin-bottom:24px}.auth-tab{flex:1 1;padding:10px;background:none;font-size:.95rem;font-weight:600;color:#a0aec0;cursor:pointer;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .2s,border-color .2s}.auth-tab.active{color:#0d9488;border-bottom-color:#0d9488}.auth-label,.auth-tab:hover:not(.active){color:#4a5568}.auth-label{display:block;font-size:.85rem;font-weight:600;margin-bottom:16px}.auth-input{display:block;width:100%;margin-top:6px;padding:10px 12px;border:1.5px solid #e2e8f0;border-radius:8px;font-size:.9rem;color:#2d3748;background:#f7fafc;transition:border-color .2s,box-shadow .2s}.auth-input:focus{outline:none;border-color:#0d9488;box-shadow:0 0 0 3px rgba(43,108,176,.1)}.auth-btn{display:block;width:100%;padding:12px;margin-top:8px;background:linear-gradient(135deg,#0d9488,#134e4a);color:white;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s}.auth-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-btn-secondary{display:block;width:100%;padding:10px;background:none;color:#e53e3e;border:1.5px solid #fed7d7;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s}.auth-btn-secondary:hover{background:#fff5f5}.auth-link{display:block;text-align:center;margin-top:16px;font-size:.85rem;color:#0d9488;text-decoration:none}.auth-link:hover{text-decoration:underline}.auth-msg{padding:10px 14px;border-radius:8px;font-size:.85rem;margin-bottom:16px;line-height:1.4}.auth-error{background:#fff5f5;color:#c53030;border:1px solid #fed7d7}.auth-success{background:#f0fff4;color:#276749;border:1px solid #c6f6d5}.auth-info{background:#ccfbf1;color:#0d9488;border:1px solid #bee3f8}.auth-info a{color:#0d9488;font-weight:600}.auth-user-info{text-align:center;margin-bottom:20px;padding:12px;background:#f7fafc;border-radius:8px;font-size:.85rem;color:#4a5568}.auth-user-info p{margin:4px 0}.auth-divider{height:1px;background:#e2e8f0;margin:20px 0}.auth-actions{display:flex;align-items:center;gap:12px}.auth-actions .auth-link{margin:0;flex:1 1}.auth-actions .auth-btn-secondary{flex:1 1}.auth-header-bar{position:fixed;top:12px;right:16px;z-index:1100;display:flex;align-items:center;gap:8px}.auth-header-btn{padding:6px 14px;background:rgba(255,255,255,.95);color:#134e4a;border:none;border-radius:20px;font-size:.8rem;font-weight:600;cursor:pointer;text-decoration:none;box-shadow:0 2px 8px rgba(0,0,0,.15);transition:background .2s,transform .1s}.auth-header-btn:hover{background:white;transform:translateY(-1px)}.auth-header-user{padding:6px 14px;background:rgba(255,255,255,.95);border-radius:20px;font-size:.8rem;font-weight:600;color:#134e4a;box-shadow:0 2px 8px rgba(0,0,0,.15);text-decoration:none}@media (max-width:768px){.auth-card{padding:28px 24px}}