*,*::before,*::after{box-sizing:border-box}
:root{--color-bg:#fff;--color-text:#1a1a1a;--color-muted:#666;--color-header-bg:#1a5fb4;--color-link:var(--color-header-bg);--color-link-hover:#0d3d6b;--color-border:#ddd;--color-header-text:#fff;--max-width:1100px;--spacing:1.5rem}
html{font-size:16px;line-height:1.6}
body{margin:0;font-family:system-ui,-apple-system,sans-serif;color:var(--color-text);background:var(--color-bg)}
a{color:var(--color-link);text-decoration:underline;text-underline-offset:2px}
a:hover{color:var(--color-link-hover)}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-link);outline-offset:2px;border-radius:2px}
header{background:var(--color-header-bg);color:var(--color-header-text)}
header :focus-visible{outline-color:#fff}
.header-inner{max-width:var(--max-width);margin:0 auto;padding:.75rem var(--spacing);min-height:4rem;display:flex;align-items:center}
.site-title{margin:0;font-size:1.25rem;font-weight:700}
.site-title a{color:var(--color-header-text);text-decoration:none}
.site-title a:hover{color:var(--color-header-text);text-decoration:underline}
.site-title span{opacity:.7;font-weight:600}
main{max-width:var(--max-width);margin:0 auto;padding:var(--spacing) var(--spacing) calc(var(--spacing) * 3)}
form{display:flex;gap:.5rem;margin:1.5rem 0 .5rem}
input{flex:1;font-size:1.1rem;padding:.55rem .75rem;border:1px solid var(--color-border);border-radius:4px;text-transform:uppercase}
button{font-size:1.1rem;padding:.55rem 1.25rem;border:0;border-radius:4px;background:var(--color-link);color:#fff;cursor:pointer}
button:hover{background:var(--color-link-hover)}
.samples{list-style:none;margin:.75rem 0 1.5rem;padding:0;display:flex;flex-wrap:wrap;gap:.5rem 1rem}
.samples li{white-space:nowrap;font-size:.95rem}
.muted{color:var(--color-muted);font-size:.85em}
.code-tabs-scroll{margin:1rem 0 0;overflow-x:auto;scrollbar-width:none}
.code-tabs-scroll::-webkit-scrollbar{display:none}
.code-tabs{display:flex;gap:.25rem;box-shadow:inset 0 -1px 0 var(--color-border);flex-wrap:nowrap;width:max-content;min-width:100%}
.code-tabs button{flex:0 0 auto;white-space:nowrap;padding:.5rem 1rem;font:inherit;text-decoration:none;color:var(--color-muted);font-weight:600;font-size:.95rem;border:1px solid transparent;border-bottom:none;border-radius:4px 4px 0 0;margin-bottom:-1px;background:none;cursor:pointer}
.code-tabs button:hover{color:var(--color-link);background:#eef3fc}
.code-tabs button.active{color:var(--color-text);background:var(--color-bg);border-color:var(--color-border)}
.code-panels{border:1px solid var(--color-border);border-top:none;border-radius:0 0 4px 4px}
.code-panel{display:none;position:relative}
.code-panel.active{display:block}
.copy-btn{position:absolute;top:.6rem;right:.6rem;font:inherit;font-size:.75rem;padding:.25rem .6rem;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-muted);cursor:pointer;line-height:1.4}
.copy-btn:hover{background:var(--color-bg);border-color:var(--color-muted)}
.copy-btn.copied{color:#1a7f37;border-color:#1a7f37}
.code-panel pre{margin:0;padding:1rem;overflow-x:auto;font-size:.85rem;line-height:1.5}
.code-panel code{background:none;padding:0;border-radius:0;font-size:1em}
code{background:#f3f3f3;padding:.1rem .35rem;border-radius:.25rem;font-size:.9em}
h2{font-size:1.2rem;margin:2.5rem 0 0}
.tablewrap{overflow-x:auto;margin-top:.5rem}
table{border-collapse:collapse;width:100%;font-size:.85rem;margin:0 0 1rem}
th,td{text-align:left;padding:.4rem .5rem;border-bottom:1px solid var(--color-border);vertical-align:top}
th{border-bottom:2px solid var(--color-border);white-space:nowrap;color:var(--color-muted);font-weight:600}
.fields td:first-child{white-space:nowrap}
.fields th:nth-child(3),.fields td:nth-child(3){text-align:center;white-space:nowrap}
tr.group>td{background:#f6f6f4;border-top:2px solid #e4e2dc}
tr.group code{background:#eae7de;color:#3a3630;font-weight:700;letter-spacing:.02em}
tr.child>td:first-child{padding-left:1.75rem}
tr.depth-2>td:first-child{padding-left:3.25rem}
code .pre{color:var(--color-muted);font-weight:400}
.sources{table-layout:fixed}
.sources th:nth-child(1),.sources td:nth-child(1){width:32%}
.sources th:nth-child(2),.sources td:nth-child(2){width:14%}
.sources th:nth-child(3),.sources td:nth-child(3){width:24%}
.sources th:nth-child(4),.sources td:nth-child(4){width:16%}
.sources th:nth-child(5),.sources td:nth-child(5){width:14%}
.sources td{word-wrap:break-word}
footer{background:#f5f5f5;margin-top:2rem;font-size:.85rem;color:var(--color-muted)}
.footer-inner{max-width:var(--max-width);margin:0 auto;padding:calc(var(--spacing) * 1.5) var(--spacing);display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.5rem 1.5rem}
.footer-nav{display:flex;flex-direction:column;gap:.35rem}
.samples li a.format-json,.samples li a.format-md{font-size:.8rem;color:var(--color-muted);text-decoration:none;border-bottom:1px dotted var(--color-muted)}
.samples li a.format-json:hover,.samples li a.format-md:hover{color:var(--color-link)}
.data-links{list-style:none;margin:.75rem 0 1.5rem;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.data-links a{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .75rem;border:1px solid var(--color-border);border-radius:999px;font-size:.875rem;text-decoration:none;color:var(--color-link)}
.data-links a:hover{background:#eef3fc;border-color:var(--color-link);color:var(--color-link-hover)}
.data-links a::before{content:"";display:inline-block;width:14px;height:14px;background-color:currentColor;-webkit-mask:no-repeat center/contain;mask:no-repeat center/contain}
.data-links a.format-json::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='16 18 22 12 16 6'/%3E%3Cpolyline points='8 6 2 12 8 18'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='16 18 22 12 16 6'/%3E%3Cpolyline points='8 6 2 12 8 18'/%3E%3C/svg%3E")}
.data-links a.format-md::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='16' y1='13' x2='8' y2='13'/%3E%3Cline x1='16' y1='17' x2='8' y2='17'/%3E%3Cpolyline points='10 9 9 9 8 9'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='16' y1='13' x2='8' y2='13'/%3E%3Cline x1='16' y1='17' x2='8' y2='17'/%3E%3Cpolyline points='10 9 9 9 8 9'/%3E%3C/svg%3E")}
.data-links a.format-geojson::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 6-9 12-9 12s-9-6-9-12a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 6-9 12-9 12s-9-6-9-12a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E")}
.postcode-map{width:100%;height:320px;border-radius:6px;border:1px solid var(--color-border);margin:1rem 0}
.postcode-map .maplibregl-ctrl-attrib{font-size:10px}
.poi-marker{display:flex;align-items:center;gap:.3rem;pointer-events:none}
.poi-marker-dot{width:20px;height:20px;flex:0 0 auto;border-radius:50%;background:#fff;border:1px solid rgba(0,0,0,.15);box-shadow:0 1px 3px rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;font-size:12px;line-height:1}
.poi-marker-label{font-size:.7rem;line-height:1.2;white-space:nowrap;background:#fff;color:#333;padding:.1rem .4rem;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.25)}
dl.facts{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1rem;margin:0 0 1.5rem;font-size:.95rem}
dl.facts dt{grid-column:1;font-weight:600;color:var(--color-muted)}
dl.facts dd{grid-column:2;margin:0}
.nearest-table td:first-child{white-space:nowrap;color:var(--color-muted)}
@media (max-width:640px){.postcode-map{height:220px}}
