:root{--ink:#17211b;--muted:#67716b;--paper:#f4f2ec;--card:#fffefa;--line:#dcded8;--green:#176b45;--green2:#289568;--amber:#d18b20;--red:#a63e32;--nav:#102d22;--shadow:0 10px 35px rgba(20,40,29,.07)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.topbar{height:68px;background:var(--nav);color:#fff;display:flex;align-items:center;padding:0 max(24px,calc((100vw - 1440px)/2));gap:36px}.brand{color:#fff;text-decoration:none;font-weight:760;font-size:20px;letter-spacing:-.02em;white-space:nowrap}.brand span{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#d4efdf;color:var(--nav);font-size:13px;margin-right:8px}.topbar nav{display:flex;gap:4px;flex:1}.topbar nav a{color:#dce8e0;text-decoration:none;padding:9px 12px;border-radius:8px}.topbar nav a:hover{background:#214638;color:#fff}.user-menu{display:flex;align-items:center;gap:10px;font-size:13px;color:#c7d9cf}.user-menu form{margin:0}.logout-button{border:1px solid #416457;background:transparent;color:#fff;border-radius:8px;padding:6px 10px;font:inherit;cursor:pointer}.logout-button:hover{background:#214638;border-color:#6f8f82}.container{max-width:1440px;margin:0 auto;padding:38px 28px 80px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:28px}.page-heading h1{font:750 38px/1.08 Georgia,serif;letter-spacing:-.035em;margin:3px 0 8px}.page-heading p{color:var(--muted);margin:0}.eyebrow{color:var(--green)!important;text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:800}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:9px 14px;border-radius:9px;text-decoration:none;font-weight:700;cursor:pointer;white-space:nowrap}.button:hover{border-color:#aeb8b1}.button.primary{background:var(--green);border-color:var(--green);color:#fff}.button.primary:hover{background:#115a39}.button.danger{color:var(--red);border-color:#dfb9b4}.button.small{font-size:12px;padding:6px 9px}.metric-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:22px}.metric{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.metric span,.metric small{display:block;color:var(--muted);font-size:12px}.metric strong{display:block;font:700 28px/1.15 Georgia,serif;margin:8px 0}.metric.warning{border-top:3px solid var(--amber)}a{color:var(--green)}.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow);margin-bottom:20px;overflow:auto}.panel.accent{border-left:4px solid var(--green2)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.section-title h2{font-size:17px;margin:0}.section-title>a,.section-title>span{font-size:12px}.two-columns{display:grid;grid-template-columns:1.3fr .7fr;gap:20px}.live-dot{color:var(--green);font-weight:800}.live-dot:before{content:"";display:inline-block;width:7px;height:7px;background:var(--green2);border-radius:50%;margin-right:7px;box-shadow:0 0 0 5px #d9eee4}.run-progress{display:grid;grid-template-columns:minmax(180px,280px) 1fr;gap:20px;align-items:center;margin:12px 0}.run-progress small,.block{display:block;color:var(--muted);font-size:12px;margin-top:3px}.progress{height:8px;background:#e5e9e5;border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--green),#50b985);border-radius:99px;min-width:2px}.active-run{display:flex;align-items:center;gap:22px}.active-run .run-progress{flex:1}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:10px;border-bottom:1px solid var(--line)}td{padding:12px 10px;border-bottom:1px solid #e8e9e5;vertical-align:top}tr:last-child td{border-bottom:0}.badge{display:inline-block;border-radius:99px;padding:3px 8px;background:#e7e9e6;font-size:11px;font-weight:800}.badge.ok{background:#d9eee4;color:var(--green)}.badge.partial,.badge.queued{background:#fff0d1;color:#87580d}.badge.failed,.badge.cancelled{background:#f6dfdc;color:var(--red)}.badge.running{background:#dce9f5;color:#245c88}.quality-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.hint,.empty{color:var(--muted);font-size:13px}.searchbar{display:flex;gap:10px;margin-bottom:20px}.searchbar input{flex:1;min-width:0;border:1px solid var(--line);background:var(--card);border-radius:11px;padding:13px 16px;font:inherit;outline:none}.searchbar input:focus{border-color:var(--green);box-shadow:0 0 0 3px #d9eee4}.explorer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:stretch}.list-panel{padding:18px;overflow:hidden;margin-bottom:0}.list-panel .section-title{padding:0;margin-bottom:12px}.record-list{max-height:62vh;overflow:auto}.list-panel .record{padding:10px 0}.list-panel .record-list>.empty{margin:0;padding:0;line-height:1.4}.record{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 18px;border-top:1px solid #e8e9e5;text-decoration:none;color:var(--ink)}a.record:hover{background:#f0f6f2}.record strong,.record small{display:block}.record small,.record em{font-size:11px;color:var(--muted);font-style:normal}.record em{white-space:nowrap}.record.deleted{background:#fff3f0;border-left:3px solid var(--red)}.record.deleted strong{text-decoration:line-through}.job-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}.job-card{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.job-card h2{font-size:16px;margin:0 0 6px}.job-card p{font-size:12px;color:var(--muted);margin:0}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.chips span{background:#e5e8e4;border-radius:99px;padding:5px 10px;font-size:12px}.chips b{color:var(--red);margin-left:4px}.error-text{max-width:420px;color:#762d25}.resolved{opacity:.55}.messages{margin-bottom:18px}.message{padding:12px 15px;border-radius:10px;background:#d9eee4;color:var(--green)}.message.error{background:#f6dfdc;color:var(--red)}code{font:12px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:normal}
.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0,#e0eee4 0,transparent 42%),var(--paper)}.login-card{width:min(100%,420px);background:var(--card);border:1px solid var(--line);border-radius:18px;padding:32px;box-shadow:var(--shadow)}.login-brand{font-size:21px;font-weight:760;margin-bottom:30px}.login-brand span{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#d4efdf;color:var(--nav);font-size:13px;margin-right:9px}.login-card h1{font:750 34px/1.1 Georgia,serif;letter-spacing:-.03em;margin:4px 0 8px}.login-subtitle{color:var(--muted);margin:0 0 24px}.login-field{display:block;margin-bottom:16px}.login-field span{display:block;font-size:12px;font-weight:700;margin-bottom:6px}.login-field input{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px 13px;font:inherit;outline:none}.login-field input:focus{border-color:var(--green);box-shadow:0 0 0 3px #d9eee4}.login-submit{width:100%;margin-top:4px}.login-error{background:#f6dfdc;color:var(--red);padding:10px 12px;border-radius:9px;margin-bottom:18px;font-size:13px}
.explorer-heading{margin-bottom:20px}.mirror-badge{background:#d9eee4;color:var(--green);border-radius:99px;padding:7px 12px;font-size:12px;font-weight:800;white-space:nowrap}.address-browser{display:grid;grid-template-columns:320px 430px minmax(420px,1fr);gap:14px;min-height:610px}.address-browser>.panel{margin:0;padding:18px;border-radius:14px;overflow:hidden}.browser-title{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:12px;margin-bottom:13px;border-bottom:1px solid var(--line)}.browser-title h2{font-size:16px;margin:0}.browser-title span{font-size:11px;color:var(--muted);text-align:right}.browser-title span.loading{color:var(--amber)}.browser-title span.error{color:var(--red)}.browser-title span.ready{color:var(--green)}.cascade-fields label,.street-field{display:block;font-size:11px;font-weight:750;margin-bottom:10px}.cascade-fields select,.street-field select,.number-fields input{display:block;width:100%;margin-top:4px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 9px;color:var(--ink);font:13px/1.35 inherit;outline:none}.cascade-fields select:focus,.street-field select:focus,.number-fields input:focus{border-color:var(--green);box-shadow:0 0 0 2px #d9eee4}.cascade-fields select:disabled,.street-field select:disabled{background:#f1f1ed;color:#929a95}.number-fields{border:0;padding:0;margin:14px 0;display:grid;grid-template-columns:1fr 1fr;gap:8px}.number-fields legend{font-size:13px;font-weight:800;padding:0;margin-bottom:5px}.number-fields label{font-size:10px;color:var(--muted)}.filter-actions{display:flex;justify-content:flex-end;gap:8px}.address-results{display:flex;flex-direction:column}.result-table-wrap{overflow:auto;flex:1}.address-table{min-width:390px}.address-table th{padding:8px 7px}.address-table td{padding:10px 7px;font-size:12px}.address-table th:first-child,.eni-code{width:122px}.eni-code{font:11px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;color:#33453b}.address-table td:last-child{width:42px;text-align:center}.address-table strong,.address-table small{display:block}.address-table strong{font-weight:650}.address-table small{color:var(--muted);margin-top:2px}.empty-result{text-align:center!important;color:var(--muted);padding:42px 15px!important}.empty-result.error{color:var(--red)}.geo-button,.page-button{width:30px;height:30px;border:1px solid var(--line);background:#fff;border-radius:8px;color:var(--green);font-size:20px;line-height:1;cursor:pointer}.geo-button:hover,.page-button:hover{background:#e7f3ec;border-color:#a8c9b7}.geo-button.ready{background:#d9eee4;border-color:#acd1bd}.geo-button.loading{animation:geo-pulse 1s infinite}.pagination{display:flex;justify-content:center;align-items:center;gap:12px;padding-top:12px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.page-button{font-size:14px}.page-button:disabled{opacity:.35;cursor:default}.address-map-panel{display:flex;flex-direction:column}.address-map-panel .browser-title{margin-bottom:12px}#address-map{flex:1;min-height:520px;border-radius:10px;background:#e8ece6;overflow:hidden}.map-fallback{padding:30px;color:var(--muted)}@keyframes geo-pulse{50%{opacity:.35}}
.eni-field{display:block;font-size:11px;font-weight:800;margin-bottom:10px}.eni-field>input,.search-select-input{display:block;width:100%;margin-top:4px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 30px 8px 9px;color:var(--ink);font:13px/1.35 inherit;outline:none}.eni-field>input:focus,.search-select-input:focus{border-color:var(--green);box-shadow:0 0 0 2px #d9eee4}.native-search-select{display:none!important}.search-select{position:relative}.search-select-input:disabled{background:#f1f1ed;color:#929a95}.search-select-menu{position:absolute;z-index:1000;top:calc(100% + 3px);left:0;right:0;max-height:230px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 12px 30px rgba(20,40,29,.16);padding:4px}.search-select-menu[hidden]{display:none}.search-select-menu button{display:block;width:100%;border:0;background:transparent;text-align:left;padding:7px 8px;border-radius:6px;color:var(--ink);font:12px/1.3 inherit;cursor:pointer}.search-select-menu button:hover{background:#e7f3ec}.search-select-empty{display:block;padding:9px;color:var(--muted);font-size:11px}.number-fields{grid-template-columns:repeat(3,1fr)}
.address-results .result-table-wrap{overflow-y:auto;overflow-x:hidden}.address-results .address-table{width:100%;min-width:0;table-layout:fixed}.address-results .address-table th,.address-results .address-table td{padding-left:5px;padding-right:5px}.address-results .address-table th:first-child,.address-results .eni-code{width:116px}.address-results .address-table th:last-child,.address-results .address-table td:last-child{width:36px}.address-results .eni-code{font-size:10px;overflow-wrap:anywhere}.address-results .address-table strong{overflow-wrap:anywhere;line-height:1.3}.address-results .geo-button{width:28px;height:28px}
.page-numbers{display:flex;align-items:center;gap:3px}.page-number{min-width:26px;height:27px;padding:0 5px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--muted);font:11px/1 inherit;cursor:pointer}.page-number:hover{border-color:var(--line);background:#fff}.page-number.active{background:var(--green);color:#fff}.map-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin:-1px 0 8px}.map-actions span{margin-right:auto;color:var(--muted);font:10px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace}.map-actions a,.map-actions button{border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--green);padding:5px 7px;text-decoration:none;font:700 10px/1.2 inherit;cursor:pointer}.map-actions a:hover,.map-actions button:hover{background:#e7f3ec;border-color:#a8c9b7}.leaflet-control-layers-expanded{font-size:11px;padding:5px 7px}
.share-map-menu{position:relative}.share-map-menu>div{position:absolute;z-index:1200;right:0;top:calc(100% + 4px);min-width:135px;padding:4px;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 12px 28px rgba(20,40,29,.18)}.share-map-menu>div[hidden]{display:none}.share-map-menu>div button{display:block;width:100%;border:0;text-align:left;white-space:nowrap}.share-map-menu>div button:hover{background:#e7f3ec}
@media(min-width:1101px){body:has(.address-browser){overflow:hidden}body:has(.address-browser) .container{height:calc(100vh - 68px);padding:16px 28px 18px;display:flex;flex-direction:column;overflow:hidden}.explorer-heading{flex:0 0 auto;margin-bottom:12px}.explorer-heading h1{font-size:34px;margin:1px 0 5px}.explorer-heading p{font-size:13px}.address-browser{flex:1;min-height:0;grid-template-columns:minmax(270px,320px) minmax(360px,430px) minmax(380px,1fr)}.address-browser>.panel{height:100%;min-height:0;padding:14px}.address-filter{overflow-y:auto!important}.browser-title{padding-bottom:8px;margin-bottom:8px}.eni-field,.cascade-fields label,.street-field{margin-bottom:5px;font-size:10px}.eni-field>input,.search-select-input,.number-fields input{margin-top:2px;padding:6px 26px 6px 8px;font-size:12px}.number-fields{margin:6px 0;gap:6px}.number-fields legend{margin-bottom:1px}.number-fields input{height:29px;padding-right:8px}.filter-actions .button{padding:7px 13px}.address-map-panel .browser-title{margin-bottom:8px}#address-map{min-height:0}}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(3,1fr)}.explorer-grid{grid-template-columns:repeat(2,1fr)}.job-grid{grid-template-columns:repeat(2,1fr)}.topbar nav a{padding:8px 7px;font-size:13px}.address-browser{grid-template-columns:310px 1fr}.address-map-panel{grid-column:1/-1;min-height:520px}}
@media(max-width:720px){.topbar{height:auto;padding:14px 18px;flex-wrap:wrap;gap:10px}.topbar nav{order:3;overflow:auto;width:100%}.user-menu>span{display:none}.container{padding:26px 16px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1{font-size:32px}.metric-grid,.two-columns,.explorer-grid,.job-grid,.address-browser{grid-template-columns:1fr}.address-map-panel{grid-column:auto}.run-progress{grid-template-columns:1fr}.active-run{align-items:stretch;flex-direction:column}.searchbar{flex-wrap:wrap}.searchbar input{flex-basis:100%}table{min-width:700px}.address-results .address-table{min-width:0}#address-map{min-height:420px}}
.api-heading-actions{display:flex;gap:10px;flex-wrap:wrap}.api-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.api-metrics .metric strong{font:750 21px/1.2 Georgia,serif}.api-columns{grid-template-columns:1fr 1fr}.api-steps{margin:0;padding-left:22px}.api-steps li{padding:0 0 16px 5px}.api-steps li:last-child{padding-bottom:0}.api-steps strong,.api-steps span,.api-steps code{display:block}.api-steps span{color:var(--muted);font-size:13px;margin-top:3px}.api-steps code{background:#f0f1ed;border:1px solid #e2e4df;border-radius:7px;padding:8px 10px;margin-top:7px;overflow-wrap:anywhere}.api-feature-list{display:grid;gap:0}.api-feature-list>div{padding:12px 0;border-bottom:1px solid var(--line)}.api-feature-list>div:last-child{border-bottom:0}.api-feature-list strong,.api-feature-list span{display:block}.api-feature-list span{color:var(--muted);font-size:12px;margin-top:2px}.api-security-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.api-security-grid span{padding:12px;border-radius:9px;background:#edf5f0;color:#25553f;font-size:13px;font-weight:700}.api-note{margin:18px 0 0}
@media(max-width:900px){.api-metrics{grid-template-columns:repeat(2,1fr)}.api-columns{grid-template-columns:1fr}.api-security-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.api-metrics,.api-security-grid{grid-template-columns:1fr}.api-heading-actions{width:100%}.api-heading-actions .button{flex:1}}
.brand-logo{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;flex:0 0 42px}.brand-logo img{display:block;width:42px;height:42px;filter:drop-shadow(0 4px 10px rgba(0,0,0,.16))}.login-logo{display:flex;justify-content:center;margin:-4px 0 22px}.login-logo img{display:block;width:104px;height:104px;filter:drop-shadow(0 14px 24px rgba(16,45,34,.17))}.login-subtitle{text-align:center;margin-bottom:24px}
