:root{--pc-navy:#071a37;--pc-blue:#0756ba;--pc-green:#087a52;--pc-border:#d8e3ed;--pc-soft:#f4f8fb;--pc-muted:#607286}
.police-contact-launch{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;margin-top:1.35rem;padding:1.05rem 1.2rem;border:1px solid #b7cadb;border-radius:16px;background:linear-gradient(135deg,#fff 0%,#f0f7fc 100%);box-shadow:0 12px 30px rgba(7,26,55,.08)}
.police-contact-launch-copy{display:grid;gap:.18rem;color:var(--pc-navy)}.police-contact-launch-copy span{color:var(--pc-green);font-size:.68rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.police-contact-launch-copy strong{font:750 clamp(.9rem,2vw,1.08rem)/1.35 var(--nc-font-sans,Arial,sans-serif)}
.police-contact-launch-button{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:48px;padding:.72rem 1.05rem;border:1px solid #0756ba;border-radius:11px;background:linear-gradient(135deg,#0b64ce,#074eaa);box-shadow:0 8px 18px rgba(7,86,186,.2);color:#fff;font:800 .78rem/1.2 var(--nc-font-sans,Arial,sans-serif);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.police-contact-launch-button:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(7,86,186,.27);filter:saturate(1.08)}.police-contact-launch-button:active{transform:translateY(0)}.police-contact-launch-button:focus-visible{outline:3px solid #ffcb3d;outline-offset:3px}.police-contact-launch-button:disabled{cursor:not-allowed;filter:grayscale(.8);opacity:.55;transform:none}.police-contact-launch-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:rgba(255,255,255,.16);font-size:1rem}
.police-contacts-overlay[hidden]{display:none!important}.police-contacts-overlay{z-index:4000;padding:clamp(.5rem,2vw,1.5rem);background:rgba(2,16,37,.76);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.police-contacts-overlay.is-active{opacity:1;visibility:visible}.police-contacts-dialog{position:relative;display:block;width:min(1180px,100%);max-width:min(1180px,calc(100vw - 2rem));height:min(92vh,920px);max-height:92vh;margin:auto;padding:0;overflow:hidden;border:1px solid rgba(255,255,255,.36);border-radius:24px;background:#fff;box-shadow:0 34px 100px rgba(2,16,37,.42);transform:translateY(18px) scale(.985);transition:transform .22s ease}.police-contacts-overlay.is-active .police-contacts-dialog{transform:none}
body>.police-contacts-overlay.is-admin-preview{position:fixed;inset:0;display:grid;place-items:center;width:100vw;height:100dvh;margin:0;overflow:hidden}body>.police-contacts-overlay.is-admin-preview .police-contacts-dialog{max-height:calc(100dvh - 2rem)}body>.police-contacts-overlay.is-admin-preview .police-contacts-content{overflow-y:auto;overscroll-behavior:contain}
.police-contacts-close{z-index:8;top:1rem;right:1rem;width:44px;height:44px;border:1px solid rgba(255,255,255,.55);background:rgba(7,26,55,.74);color:#fff;font-size:1.7rem;backdrop-filter:blur(8px)}.police-contacts-close:hover{background:#fff;color:var(--pc-navy);transform:rotate(4deg)}.police-contacts-close:focus-visible{outline:3px solid #ffcb3d;outline-offset:2px}
.police-contacts-hero{position:relative;height:clamp(220px,32vh,340px);overflow:hidden;background:var(--pc-navy)}.police-contacts-hero>img{width:100%;height:100%;object-fit:cover;object-position:center}.police-contacts-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,17,38,.92) 0%,rgba(3,20,44,.72) 48%,rgba(3,20,44,.25) 100%),linear-gradient(0deg,rgba(3,17,38,.65),transparent 55%)}.police-contacts-hero-copy{position:absolute;z-index:2;left:clamp(1.25rem,4vw,3.4rem);right:clamp(4.7rem,9vw,7rem);bottom:clamp(1.35rem,4vw,2.7rem);max-width:780px;color:#fff}.police-contacts-kicker,.police-contacts-preview-label{display:inline-flex;margin-bottom:.6rem;color:#91e4bd;font-size:.68rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.police-contacts-preview-label{margin-right:.7rem;padding:.3rem .55rem;border-radius:999px;background:#ffcb3d;color:#13243a}.police-contacts-hero h2{margin:0;color:#fff;font:850 clamp(2rem,5vw,3.8rem)/1.02 var(--nc-font-editorial,Georgia,serif);letter-spacing:-.035em}.police-contacts-hero p{max-width:720px;margin:.7rem 0 0;color:#dce9f4;font-size:clamp(.82rem,1.5vw,1rem);line-height:1.55}
.police-contacts-content{height:calc(100% - clamp(220px,32vh,340px));padding:clamp(1.2rem,3vw,2.4rem);overflow-y:auto;overscroll-behavior:contain;background:#f7fafc;scrollbar-color:#9cb0c2 transparent}.police-contact-section+ .police-contact-section{margin-top:2.6rem}.police-contact-section-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:.9rem}.police-contact-section-heading span,.police-contact-card-kicker{display:block;color:var(--pc-green);font-size:.64rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.police-contact-section-heading h3,.police-contact-share-copy h3{margin:.25rem 0 0;color:var(--pc-navy);font:800 clamp(1.55rem,3vw,2.2rem)/1.1 var(--nc-font-editorial,Georgia,serif)}.police-contact-intro{max-width:940px;margin:0 0 1.25rem;color:#536579;font-size:.84rem;line-height:1.7}.police-contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.police-contact-card{display:flex;min-width:0;flex-direction:column;padding:1.15rem;border:1px solid var(--pc-border);border-radius:16px;background:#fff;box-shadow:0 9px 24px rgba(7,26,55,.055)}.police-contact-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.7rem}.police-contact-card h4{margin:.25rem 0 0;color:var(--pc-navy);font:800 1.18rem/1.22 var(--nc-font-editorial,Georgia,serif)}.police-contact-pending{flex:0 0 auto;max-width:118px;padding:.3rem .46rem;border:1px solid #f1c36b;border-radius:7px;background:#fff9e9;color:#8a5600;font-size:.58rem;font-weight:850;line-height:1.25;text-align:center}.police-contact-localities{display:flex;flex-wrap:wrap;gap:.35rem;margin:.9rem 0;padding:0;list-style:none}.police-contact-localities li{padding:.26rem .5rem;border-radius:999px;background:#eef5fa;color:#29455f;font-size:.66rem;font-weight:700}.police-contact-details{display:grid;gap:.65rem;margin:.3rem 0 1rem}.police-contact-details div{min-width:0;padding-top:.62rem;border-top:1px solid #e9eff4}.police-contact-details dt{color:var(--pc-muted);font-size:.61rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.police-contact-details dd{margin:.22rem 0 0;overflow-wrap:anywhere;color:#17334f;font-size:.78rem;font-weight:750}.police-contact-details dd.is-unverified{color:#8a5600}.police-contact-verified{margin:-.3rem 0 .8rem;color:var(--pc-muted);font-size:.64rem}.police-contact-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;margin-top:auto}.police-contact-action{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:38px;padding:.45rem .55rem;border:1px solid #c6d5e1;border-radius:8px;background:#fff;color:#23425f;font:750 .63rem/1.2 var(--nc-font-sans,Arial,sans-serif);text-align:center;text-decoration:none;cursor:pointer}.police-contact-action:hover{border-color:#7ea3c2;background:#f3f8fc}.police-contact-action.is-primary{border-color:var(--pc-green);background:var(--pc-green);color:#fff}.police-contact-action:focus-visible,.police-contact-share-button:focus-visible,.police-contact-search input:focus-visible,.police-contact-search button:focus-visible{outline:3px solid #ffcb3d;outline-offset:2px}
.police-contact-stations-heading{align-items:center}.police-contact-search{position:relative;display:flex;min-width:min(390px,100%)}.police-contact-search input{width:100%;min-height:44px;padding:.7rem 2.7rem .7rem 1rem;border:1px solid #bfcfdd;border-radius:11px;background:#fff;color:var(--pc-navy);font-size:.78rem}.police-contact-search button{position:absolute;top:5px;right:5px;width:34px;height:34px;border:0;border-radius:8px;background:#eaf1f6;color:var(--pc-navy);font-size:1.2rem;cursor:pointer}.police-contact-stations-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.police-contact-station-card[hidden]{display:none}.police-contact-empty{display:grid;place-items:center;min-height:160px;padding:1.5rem;border:1px dashed #b7cadb;border-radius:16px;background:#fff;color:var(--pc-muted);text-align:center}.police-contact-empty span{font-size:2rem}.police-contact-empty p{margin:.5rem 0}.police-contact-empty button{border:0;background:transparent;color:var(--pc-blue);font-weight:800;cursor:pointer}
.police-contact-share{display:grid;grid-template-columns:280px minmax(0,1fr);gap:2rem;margin-top:2.6rem;padding:1.5rem;border-radius:20px;background:linear-gradient(135deg,#071a37,#0b315d);color:#fff}.police-contact-qr{display:grid;justify-items:center;gap:.65rem;padding:1rem;border-radius:15px;background:#fff;color:var(--pc-navy);text-align:center}.police-contact-qr img{width:min(190px,100%);height:auto;image-rendering:pixelated}.police-contact-qr p{margin:0;color:#516579;font-size:.68rem;line-height:1.45}.police-contact-qr-link{color:#0756ba;font-size:.7rem;font-weight:800;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:2px}.police-contact-share-copy{align-self:center;max-width:620px}.police-contact-share-copy .police-contact-card-kicker{color:#8ce1b9}.police-contact-share-copy h3{color:#fff}.police-contact-share-copy>p{color:#cbdbe8;font-size:.82rem;line-height:1.65}.police-contact-share-button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:43px;padding:.64rem .85rem;border:0;border-radius:9px;font:800 .7rem var(--nc-font-sans,Arial,sans-serif);text-decoration:none;cursor:pointer}.police-contact-share-button.is-whatsapp{background:#20b968;color:#fff}.police-contact-share-button.is-secondary{border:1px solid #bfd0dd;background:#f4f8fb;color:#17334f}.police-contact-share-status{min-height:1.2em;margin:.65rem 0 0!important;color:#a9d8c1!important;font-size:.68rem!important}.police-contact-notices{display:grid;gap:.65rem;margin-top:1.4rem;padding:1.2rem;border-left:4px solid #d3a32d;border-radius:0 12px 12px 0;background:#fff9e9}.police-contact-notices p{margin:0;color:#5c4a20;font-size:.72rem;line-height:1.6}.police-contact-notices p+ p{font-weight:750}.police-contact-toast{position:absolute;z-index:12;right:1.2rem;bottom:1.2rem;max-width:320px;padding:.75rem 1rem;border-radius:10px;background:#073d2d;color:#fff;box-shadow:0 10px 28px rgba(0,0,0,.25);font-size:.72rem;font-weight:750}.police-contact-toast[hidden]{display:none}.police-contacts-open{overflow:hidden}
@media(max-width:900px){.police-contact-grid,.police-contact-stations-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.police-contact-share{grid-template-columns:220px 1fr}}
@media(max-width:640px){.police-contact-launch{align-items:stretch;flex-direction:column}.police-contact-launch-button{width:100%}.police-contacts-overlay{padding:.35rem}.police-contacts-dialog{width:100%;max-width:100%;height:calc(100dvh - .7rem);max-height:calc(100dvh - .7rem);border-radius:16px}.police-contacts-hero{height:230px}.police-contacts-content{height:calc(100% - 230px);padding:1rem}.police-contacts-hero h2{font-size:clamp(1.75rem,9vw,2.45rem)}.police-contacts-hero-copy{left:1.1rem;right:4.2rem;bottom:1.15rem}.police-contact-section-heading,.police-contact-stations-heading{align-items:stretch;flex-direction:column}.police-contact-search{min-width:0;width:100%}.police-contact-grid,.police-contact-stations-grid{grid-template-columns:1fr}.police-contact-share{grid-template-columns:1fr;gap:1rem;padding:1rem}.police-contact-qr{order:2}.police-contact-card-actions{grid-template-columns:1fr 1fr}}
@media(max-width:374px){.police-contact-card-actions{grid-template-columns:1fr}.police-contacts-content{padding:.75rem}.police-contact-card{padding:.9rem}.police-contacts-hero-copy{right:3.8rem}.police-contacts-close{top:.65rem;right:.65rem}}
@media(prefers-reduced-motion:reduce){.police-contacts-overlay,.police-contacts-dialog,.police-contact-launch-button{transition:none!important}}
.police-contacts-content{display:flex;flex-direction:column}.police-contacts-content [data-contact-section=zones]{order:1}.police-contacts-content [data-contact-section=stations]{order:2}.police-contacts-content [data-contact-section=sharing]{order:3}.police-contacts-content [data-contact-section=notices]{order:4}.police-contacts-overlay.is-stations-first .police-contacts-content [data-contact-section=stations]{order:1}.police-contacts-overlay.is-stations-first .police-contacts-content [data-contact-section=zones]{order:2}
