.ntbox-page{max-width:1240px;margin:auto;padding:20px}.ntbox-page header{margin-bottom:20px}.ntbox-page h1{margin:0 0 8px}
.ntbox-app{--ntbox-brand:#0D7585;--ntbox-brand-dark:#095864;--ntbox-brand-soft:#e7f4f5;box-sizing:border-box;font:15px/1.4 system-ui,sans-serif;color:#26323d;position:relative;isolation:isolate}.ntbox-app *{box-sizing:border-box}.ntbox-app [hidden]{display:none!important}
.ntbox-app[data-presentation=page]{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);grid-template-areas:"controls map" "result map";gap:12px;align-items:start;grid-template-rows:min-content 1fr}
.ntbox-mapbox{grid-area:map;position:relative;min-width:0;border-radius:12px;overflow:hidden;background:#edf0f3}.ntbox-app[data-presentation=page] #ntbox-map{height:650px;min-height:450px}
.ntbox-panel{grid-area:controls}.ntbox-resultcard{grid-area:result}.ntbox-panel,.ntbox-resultcard{background:#fff;border:1px solid #b7d4d8;border-radius:10px;box-shadow:0 2px 8px #24314120;min-width:0}
.ntbox-panel-body{position:relative;padding:12px 14px}.ntbox-resultcard{padding:12px 14px}
.ntbox-app p{margin:8px 0}.ntbox-app h2{font-size:17px;margin:6px 0}.ntbox-app h3{font-size:15px;margin:8px 0}.ntbox-app fieldset{border:0;padding:0;margin:12px 0 0}.ntbox-app legend{font-size:13px}
.ntbox-panel label[for=ntbox-address]{display:block;font-weight:650;margin:6px 0}.ntbox-panel input[type=text]{width:100%;min-height:44px;border:1px solid #60949c;border-radius:6px;padding:10px;font:inherit;background:#fff;color:#202b35}
.ntbox-checks{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}.ntbox-checks label{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:5px 8px;border-radius:6px;cursor:pointer}.ntbox-checks label:has(input:checked){background:var(--ntbox-brand-soft);outline:2px solid var(--ntbox-brand)}.ntbox-checks input{width:20px;height:20px;margin:0;accent-color:var(--ntbox-brand)}
.ntbox-app :is(#ntbox-search,#ntbox-retry-layers){min-width:44px;min-height:44px;padding:10px 14px;border:0;border-radius:6px;background:var(--ntbox-brand);color:#fff;cursor:pointer;font:600 14px system-ui,sans-serif}.ntbox-app :is(#ntbox-search,#ntbox-retry-layers):hover{background:var(--ntbox-brand-dark)}.ntbox-app button:disabled,.ntbox-app fieldset:disabled{opacity:.6;cursor:not-allowed}.ntbox-app #ntbox-search{margin-top:8px}
.ntbox-app :is(button,input,summary):focus-visible{outline:3px solid var(--ntbox-brand);outline-offset:2px}.ntbox-app summary{min-height:44px;cursor:pointer;padding:10px 0}.ntbox-app #ntbox-location,.ntbox-app #ntbox-maphelp,.ntbox-note{font-size:12px;color:#48545f}.ntbox-legend{display:flex;gap:12px;list-style:none;padding:0;margin:6px 0;font-size:12px}.ntbox-legend span[aria-hidden]{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px}
.ntbox-est{position:absolute;bottom:28px;right:8px;border:1px solid #b7d4d8;border-radius:14px;background:#fff;padding:4px 8px;font-size:11px;pointer-events:none;z-index:2}.ntbox-technical{margin-top:6px;border-top:1px solid #dbe0e5}.ntbox-technical summary{font-size:13px;font-weight:650}.ntbox-technical p{font-size:12px}
#ntbox-map-status:not(:empty){margin-top:8px;border-top:1px solid #d5dce2;padding-top:8px;font-size:12px;color:#344b60}#ntbox-retry-layers{margin-top:8px}#ntbox-progress{position:absolute;top:0;left:0;right:0;height:3px;background:var(--ntbox-brand);opacity:.7}
.ntbox-mapbox .maplibregl-ctrl-group button{width:44px;height:44px;padding:0;margin:0;border-radius:0;background:#fff;color:var(--ntbox-brand)}.ntbox-mapbox .maplibregl-ctrl-group button:hover{background:var(--ntbox-brand-soft)}.ntbox-mapbox .maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon,.ntbox-mapbox .maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:none!important;display:grid;place-items:center;font:26px Arial,sans-serif}.ntbox-mapbox .maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon::before{content:"+"}.ntbox-mapbox .maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon::before{content:"\2212"}
html:has(body.ntbox-embed),body.ntbox-embed,body.ntbox-embed>main{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:#edf0f3}.ntbox-embed .ntbox-app,.ntbox-embed .ntbox-mapbox,.ntbox-embed #ntbox-map{height:100%;width:100%;border-radius:0}.ntbox-embed .ntbox-panel{position:absolute;z-index:3;top:12px;left:12px;width:min(340px,calc(100% - 84px));max-height:none;overflow:visible}.ntbox-embed .ntbox-resultcard{position:absolute;z-index:3;bottom:34px;left:12px;width:min(340px,calc(100% - 24px));max-height:32%;overflow:auto;overscroll-behavior:contain}.ntbox-embed #ntbox-maphelp{font-size:12px}.ntbox-embed .ntbox-est{right:8px;bottom:32px}.ntbox-embed .maplibregl-ctrl-top-right{top:2px;right:2px}
@media(max-width:760px){.ntbox-page{padding:12px}.ntbox-app[data-presentation=page]{grid-template-columns:1fr;grid-template-areas:"controls" "result" "map"}.ntbox-app[data-presentation=page] #ntbox-map{height:460px}.ntbox-embed .ntbox-resultcard{bottom:34px;max-height:30%}.ntbox-embed .ntbox-est{top:110px;bottom:auto;right:8px;max-width:64px;text-align:center}.ntbox-embed .ntbox-panel-body{padding:12px 10px}}
@media(prefers-reduced-motion:reduce){.ntbox-app *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Keep native attribution sizing; reserve a separate corner for the estimate label. */
.ntbox-app .ntbox-est,.ntbox-embed .ntbox-est{top:110px;bottom:auto;right:8px;max-width:64px;text-align:center}
.ntbox-mapbox .maplibregl-ctrl-attrib-button{padding:0;min-width:24px;min-height:24px}

.ntbox-color{display:inline-block;width:14px;height:14px;border-radius:50%;border:1px solid #555}.ntbox-app .ntbox-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Options always open, sized by their content. Long technical details stay in
   the separate result card. Small frames use document flow, not panel scroll. */
.ntbox-panel{overflow:visible;max-height:none}.ntbox-panel-body{overflow-wrap:anywhere}
.ntbox-address-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}
.ntbox-address-row label{grid-column:1/-1}.ntbox-address-row input{min-width:0}.ntbox-app .ntbox-address-row #ntbox-search{margin:0}
.ntbox-embed.ntbox-flow,.ntbox-embed.ntbox-flow>main{height:auto;min-height:100%;overflow:visible}
html:has(body.ntbox-flow){height:auto;min-height:100%;overflow-y:auto;overflow-x:hidden}
.ntbox-flow .ntbox-app{display:grid;height:auto;min-height:100vh;padding:8px;gap:8px;grid-template-columns:minmax(0,1fr);grid-template-areas:"controls" "map" "result"}
.ntbox-flow .ntbox-panel,.ntbox-flow .ntbox-resultcard{position:static;width:auto;max-height:none;overflow:visible}
.ntbox-flow .ntbox-mapbox{height:auto;min-height:320px;border-radius:10px}
.ntbox-flow #ntbox-map{height:clamp(320px,55svh,540px)}
@media(max-width:760px){.ntbox-app[data-presentation=page]{grid-template-areas:"controls" "map" "result"}}

/* Empty success status must not reserve a caption row. */
#ntbox-location:empty{display:none}

/* NT Box-only shell and compact states. Shared Fiber/admin styles are untouched. */
body.ntbox-full{margin:0;background:#f5f9fa;color:#26323d;font-family:system-ui,sans-serif}
.ntbox-page{padding:12px}.ntbox-flow .ntbox-app{align-content:start}
.ntbox-app .ntbox-panel-body{padding:12px}.ntbox-app .ntbox-checks{margin-bottom:0}
.ntbox-app #ntbox-result h2{margin:0;line-height:1.4}
.ntbox-app #ntbox-result[data-verdict=covered] h2{color:var(--ntbox-brand-dark)}
.ntbox-app .ntbox-resultcard:has(#ntbox-result:empty):has(#ntbox-map-status:empty):has(#ntbox-retry-layers[hidden]){display:none}
.ntbox-app #ntbox-map-status:empty{display:none}
.ntbox-app .maplibregl-ctrl-attrib a{color:#095864}
.ntbox-app .maplibregl-ctrl-attrib-button:focus-visible{outline:3px solid var(--ntbox-brand);outline-offset:2px}

/* Preserve MapLibre's native attribution control and hit area; tint only its glyph. */
.ntbox-app .maplibregl-ctrl-attrib-button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%230D7585' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}
.ntbox-app .maplibregl-ctrl-attrib-button:focus{box-shadow:0 0 2px 2px var(--ntbox-brand)}
