:root{--ink:#163e37;--muted:#74807a;--accent:#e68a3c;--bg:#fafbf8;--line:#e7eae4;--white:#fff;--shadow:0 8px 36px #233f3014;font-family:Arial,Helvetica,sans-serif;color:var(--ink);font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#eae7d9}button,input,select,textarea{font:inherit}button,a,select,input{touch-action:manipulation}button{cursor:pointer;color:inherit;border:0;background:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e68a3c;outline-offset:3px}button:disabled{opacity:.5;cursor:wait}a{color:inherit}i,svg.lucide{width:19px;height:19px;flex-shrink:0;stroke-width:1.65}#map{position:fixed;inset:0 0 0 384px}.sidebar{position:fixed;inset:0 auto 0 0;width:384px;background:var(--bg);z-index:10;display:flex;flex-direction:column;box-shadow:4px 0 25px #173c3112}.brand{height:98px;padding:27px 27px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand a{display:flex;gap:12px;text-decoration:none;align-items:center}.brandmark{position:relative;display:flex;align-items:center;justify-content:center;background:var(--ink);color:#fff;border-radius:14px;width:44px;height:44px;font-size:42px;font-weight:bold;line-height:1;padding-bottom:8px}.brandmark span{font-size:20px;position:absolute;right:5px;bottom:2px;color:#f0a453}.brandname{font-size:26px;font-weight:800;letter-spacing:-1.2px}.brandname em{font-weight:400;font-style:normal}.brandname small{font-size:8px;letter-spacing:1.9px;display:block;margin-top:5px;font-weight:600}.lab{font-size:9px;letter-spacing:1.4px;padding:6px 7px;border:1px solid #dce3d9;border-radius:5px;color:#7a8e80}.tabs{display:flex;margin:0 24px;border-bottom:1px solid var(--line);gap:14px}.tabs button{flex:1;padding:20px 0 16px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;font-weight:600;border-bottom:2px solid transparent;color:var(--muted)}.tabs button.active{border-bottom-color:var(--ink);color:var(--ink)}.tabs svg{width:16px}.panel-scroll{overflow-y:auto;flex:1;scrollbar-width:thin}.panel{padding:25px 26px 16px}.eyebrow{font-size:8px;letter-spacing:1.55px;font-weight:700;display:flex;align-items:center;gap:7px;margin:4px 0 16px}.eyebrow span{width:5px;height:5px;background:var(--accent);border-radius:50%}h1{font-size:33px;font-weight:500;letter-spacing:-1.6px;line-height:1.13;margin:0 0 11px}p{font-size:12px;line-height:1.65;margin:8px 0 16px}.intro p{color:var(--muted);font-size:11px}.searchbox{height:50px;background:var(--white);border:1px solid #dce3da;border-radius:11px;display:flex;align-items:center;gap:11px;padding:0 14px;margin-top:23px;box-shadow:0 3px 6px #213b2b04}.searchbox input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:12px}.searchbox kbd{color:#a3aba1;border:1px solid var(--line);font-size:11px;padding:3px 5px;border-radius:3px}.categories{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:15px 0 28px}.categories button{border:1px solid var(--line);border-radius:9px;display:flex;gap:7px;align-items:center;flex-direction:column;padding:12px 0 10px;font-size:10px;background:var(--white)}.categories button.active{border-color:#1d6859;background:#e8f0e9}.categories svg{width:19px;height:19px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}h2{font-size:14px;margin:0}.section-title>span{font-size:10px;color:var(--muted)}.result-list{display:flex;flex-direction:column}.result-row{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:12px 0;border-bottom:1px solid var(--line)}.result-row:hover{background:#e9eee650}.result-icon{width:38px;height:38px;border-radius:11px;background:#f0e8d9;color:#9c6b35;display:grid;place-items:center;flex-shrink:0}.result-icon.sante{background:#e4ede8;color:#4d7a5d}.result-icon.education{background:#ebe9f0;color:#807192}.result-icon.localite{background:#e4ebef;color:#63838b}.result-text{min-width:0;flex:1}.result-text strong{display:block;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-text small{display:block;color:var(--muted);font-size:10px;margin-top:6px}.result-row>span:last-child{font-size:10px;color:#9ba49c;white-space:nowrap}.coverage{display:flex;gap:12px;background:#edf1e8;padding:17px;border-radius:12px;margin:26px 0 12px}.coverage-icon{padding-top:3px}.coverage strong{font-size:11px}.coverage p{font-size:10px;margin:6px 0;color:#758173}.coverage button{font-size:10px;font-weight:600;padding:6px 0}.coverage button span{margin-left:20px}.sidebar-footer{border-top:1px solid var(--line);padding:13px 26px;display:flex;align-items:center;gap:7px;font-size:9px;color:var(--muted);height:47px}.sidebar-footer button{margin-left:auto;height:24px;padding:0}.sidebar-footer svg{width:15px}.statusdot,.map-tag span{display:inline-block;background:#6c9268;width:5px;height:5px;border-radius:50%}.map-top{position:fixed;top:24px;left:408px;right:25px;z-index:5;display:flex;gap:10px;align-items:center}.city-switch{background:var(--white);display:flex;align-items:center;gap:10px;border-radius:11px;padding:12px 15px;box-shadow:var(--shadow)}.city-switch select{appearance:none;border:0;background:transparent;color:var(--ink);font-size:12px;font-weight:600;cursor:pointer;padding-right:10px}.country-code{font-size:9px;color:var(--muted);border-left:1px solid var(--line);padding-left:12px}.map-tag{font-size:9px;letter-spacing:1.5px;background:#fafbf8d9;backdrop-filter:blur(10px);border:1px solid #fff7;border-radius:30px;padding:12px 16px;margin-left:auto;display:flex;align-items:center;gap:8px}.map-controls{position:fixed;right:25px;top:102px;display:flex;flex-direction:column;gap:12px;z-index:6}.map-button{width:43px;height:43px;background:var(--white);box-shadow:var(--shadow);border-radius:11px;display:grid;place-items:center;font-size:12px;font-weight:600}.map-button.active{background:var(--ink);color:#fff}.control-group{border-radius:11px;box-shadow:var(--shadow);overflow:hidden}.control-group .map-button{border-radius:0;box-shadow:none}.control-group .map-button:first-child{border-bottom:1px solid var(--line)}#mobilePanel{display:none}.map-bottom{position:fixed;left:408px;right:25px;bottom:35px;display:flex;align-items:center;justify-content:space-between;gap:12px;z-index:5;pointer-events:none}.legend{display:flex;align-items:center;gap:8px;font-size:9px;background:#fffffff0;padding:12px 14px;border-radius:9px;color:#58675b;box-shadow:var(--shadow)}.legend-line{width:16px;height:3px;background:#d8b77e}.legend-square{width:8px;height:8px;background:#d4cebb;margin-left:7px}.legend-circle{height:6px;width:6px;border-radius:50%;background:#2b7d68;margin-left:7px}.offline-button{pointer-events:auto;display:flex;align-items:center;gap:8px;font-size:11px;background:var(--ink);color:#fff;padding:13px 16px;border-radius:11px;box-shadow:var(--shadow)}.offline-button svg{width:16px}.floating-card{background:var(--white);border:1px solid #d8e0d6;box-shadow:0 12px 50px #162d2b20;border-radius:14px;z-index:7}.layer-panel{position:fixed;right:78px;top:260px;width:260px;padding:20px}.layer-panel h3{font-size:13px;margin:0 0 18px}.layer-panel label{display:flex;align-items:center;gap:9px;font-size:12px;padding:9px 0}.layer-panel input{accent-color:#1c5e51}.layer-panel p{margin-bottom:0}.place-card{position:fixed;left:408px;bottom:100px;width:320px;padding:22px}.place-card .dialog-close{top:10px;right:10px}.place-card h2{font-size:21px;font-weight:500;letter-spacing:-.6px;margin:12px 25px 8px 0}.place-card .category-label{font-size:9px;letter-spacing:1.4px;color:#829083;text-transform:uppercase}.place-meta{font-size:10px;line-height:1.7;color:var(--muted);margin:12px 0}.place-actions{display:flex;gap:8px;margin-top:16px}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 16px;border-radius:9px;font-size:12px;font-weight:600;background:var(--ink);color:white}.secondary{color:var(--ink);border:1px solid var(--line);background:var(--white)}.wide{width:100%}.place-actions .primary{flex:1}.text-button{font-size:10px;color:var(--muted);padding:12px 0 0}.muted{color:var(--muted)}.small{font-size:10px}.route-inputs{background:var(--white);border:1px solid var(--line);border-radius:12px;position:relative;padding:4px 42px 4px 14px;margin-top:22px}.route-inputs label{display:flex;align-items:center;gap:12px;height:49px}.route-inputs label:first-child{border-bottom:1px solid var(--line)}.route-inputs input{width:100%;min-width:0;border:0;outline:0;font-size:12px;background:transparent;color:var(--ink)}.dot{width:9px;height:9px;border:2px solid #387c67;border-radius:50%;flex-shrink:0}.dot.end{border-color:var(--accent);border-radius:2px;background:var(--accent)}#swap{position:absolute;right:11px;top:38px}.modes{display:flex;gap:7px;margin:23px 0 14px}.modes button{flex:1;display:flex;flex-direction:column;align-items:center;gap:9px;border:1px solid var(--line);border-radius:9px;padding:12px 3px;font-size:10px;background:var(--white)}.modes button.active{background:#e3eee7;border-color:#488472}.checkline{font-size:11px;display:flex;align-items:center;gap:8px;margin:15px 0 20px}.checkline input{accent-color:#245d4d}.route-summary{margin:22px 0;border-radius:12px;padding:18px;background:#e9efe5}.route-summary strong{font-size:28px;letter-spacing:-1px}.route-summary p{font-size:10px;margin:8px 0}.warning{font-size:11px;color:#8a5e28;background:#f6eddd;padding:13px;border-radius:8px;line-height:1.6;margin-top:14px}.step{display:flex;gap:11px;padding:13px 0;border-bottom:1px solid var(--line)}.step b{font-size:10px;color:var(--accent);min-width:17px}.step div{font-size:11px;line-height:1.5}.step small{font-size:9px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:20px;padding:35px;max-width:570px;width:calc(100% - 32px);color:var(--ink);background:var(--bg);box-shadow:0 25px 100px #182d2a35}dialog::backdrop{background:#102b2860;backdrop-filter:blur(3px)}dialog h2{font-size:29px;line-height:1.2;letter-spacing:-1px;margin:12px 0 24px}dialog p{font-size:12px}dialog .eyebrow{margin-right:20px}.dialog-close{position:absolute;right:16px;top:16px;width:25px;height:25px;display:grid;place-items:center}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.stat{border:1px solid var(--line);padding:15px;border-radius:9px}.stat strong{font-size:23px;display:block;letter-spacing:-1px}.stat small{font-size:10px;display:block;margin-top:7px;color:var(--muted)}.quality-bar{height:5px;background:#e6e9df;border-radius:4px;overflow:hidden}.quality-bar span{display:block;height:100%;background:#5b8b70}.quality-label{display:flex;justify-content:space-between;font-size:10px;margin:13px 0 7px}textarea{display:block;resize:vertical;width:100%;border:1px solid var(--line);border-radius:8px;padding:12px;margin-top:12px;color:var(--ink);background:var(--white)}#reportForm label{font-size:12px}.loading-pill{position:fixed;left:calc(50% + 192px);top:95px;transform:translateX(-50%);z-index:8;background:white;box-shadow:var(--shadow);border-radius:30px;padding:13px 18px;font-size:11px;display:flex;align-items:center;gap:10px}.spinner{height:12px;width:12px;border-radius:50%;border:2px solid #dbe3d8;border-top-color:#3a7962;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#toast{position:fixed;bottom:95px;left:calc(50% + 190px);transform:translateX(-50%);z-index:30;background:#193f37;color:white;padding:15px 22px;border-radius:12px;max-width:420px;font-size:12px;box-shadow:var(--shadow);line-height:1.6}.maplibregl-ctrl-attrib{font-size:9px!important;background:#ffffffe0!important}.maplibregl-ctrl-scale{font-size:9px;background:#ffffffb3!important;border-color:#7e8d76!important;margin-left:24px!important;margin-bottom:13px!important}.position-marker{width:18px;height:18px;border-radius:50%;background:#2385b1;border:3px solid white;box-shadow:0 0 0 9px #3485ac22}.selected-marker{width:20px;height:20px;background:#ed9c44;border:4px solid #fff;border-radius:50%;box-shadow:0 3px 14px #7e571a50}.endpoint{width:26px;height:26px;border-radius:50%;border:3px solid white;background:#1b6b56;color:white;display:grid;place-items:center;font-size:10px;box-shadow:0 3px 12px #173e3a30}.endpoint.end{background:#d77d32}body.night{--ink:#d7e8dc;--muted:#93a599;--bg:#182e2b;--white:#203a34;--line:#345047;--shadow:0 8px 36px #0003}body.night .brandmark,body.night .primary,body.night .offline-button{background:#4c9177;color:#fff}body.night .coverage,body.night .route-summary{background:#28473b}body.night .map-tag{background:#203c35de}body.night .categories button.active,body.night .modes button.active{background:#355e4e}body.night .warning{background:#463e2b;color:#e1c48e}body.night .city-switch select{color:var(--ink)}[hidden]{display:none!important}@media(max-width:1050px){.sidebar{width:340px}#map{left:340px}.map-top,.map-bottom,.place-card{left:362px}.brand{padding:24px}.brandname{font-size:24px}.panel{padding:24px 22px}.map-tag{display:none}h1{font-size:30px}.loading-pill{left:calc(50% + 170px)}#toast{left:calc(50% + 170px)}}@media(max-width:700px){#map{inset:0}.sidebar{top:auto;bottom:0;width:100%;height:46vh;max-height:470px;border-radius:22px 22px 0 0;transition:transform .25s}.sidebar.collapsed{transform:translateY(calc(100% - 60px))}.brand{display:none}.tabs{margin:0 22px}.tabs button{padding:19px 0 16px;font-size:12px}.tabs svg{width:17px}.panel{padding:19px 22px 20px}.intro{display:none}.searchbox{margin-top:0}.categories{margin:13px 0 20px;display:flex}.categories button{flex:1;flex-direction:row;justify-content:center;padding:10px 0;gap:5px}.categories svg{width:15px}.coverage{margin-top:18px}.sidebar-footer{display:none}.map-top{top:15px;left:16px;right:16px}.city-switch{padding:12px 13px;flex:1}.city-switch select{flex:1}.map-controls{right:16px;top:79px;gap:8px}.map-button{width:39px;height:39px;border-radius:10px}.map-controls .control-group{display:none}#mobilePanel{display:grid}.map-bottom{left:16px;right:auto;bottom:calc(46vh + 14px)}.legend{display:none}.offline-button{padding:10px 12px;font-size:10px}.offline-button svg{width:14px}.place-card{left:16px;right:65px;bottom:calc(46vh + 14px);width:auto;padding:16px}.place-card h2{font-size:19px}.place-card .place-meta{font-size:9px}.place-card p{margin:4px 0}.place-card .place-actions{margin-top:12px}.place-card .text-button{padding-top:9px}.place-card .primary,.place-card .secondary{padding:10px}.maplibregl-ctrl-bottom-right{bottom:46vh!important}.maplibregl-ctrl-bottom-left{bottom:46vh!important}.maplibregl-ctrl-scale{margin-left:16px!important;margin-bottom:61px!important}.loading-pill{left:50%;top:80px;white-space:nowrap}.layer-panel{top:180px;right:63px;width:235px;max-height:calc(54vh - 180px);overflow-y:auto}#toast{left:16px;right:16px;transform:none;bottom:calc(46vh + 20px);max-width:none}.route-inputs{margin-top:16px}h1{font-size:27px}.panel>h1 br{display:none}.panel>h1{font-size:25px}dialog{padding:27px}dialog h2{font-size:25px}}

.leaflet-container{background:#eceade;font-family:Arial,sans-serif}.leaflet-control-attribution{font-size:9px!important;background:#ffffffe0!important}.leaflet-control-scale-line{font-size:9px!important}.leaflet-bottom{z-index:4}.leaflet-pane{z-index:1}.leaflet-top{z-index:2}@media(max-width:700px){.leaflet-bottom{bottom:46vh!important}}
body{color:var(--ink)}body.night .modes button.active{color:#d7e8dc}body.night .result-icon{color:#eed7b4;background:#544a35}body.night .result-icon.sante{color:#c9e4cf;background:#355c49}body.night .legend{background:#203a34e8;color:#d0dfcf}

/* Catalogue and precise street objects */
.catalogue-filters{display:grid;grid-template-columns:1fr;gap:7px;margin:18px 0 4px}.catalogue-filters label{font-size:11px;font-weight:700;color:var(--muted,#64756c);display:flex;justify-content:space-between}.catalogue-filters select{width:100%;padding:10px 30px 10px 12px;border:1px solid #d9dfd2;border-radius:9px;background:#fbfaf4;color:#26463c;font:inherit;font-size:12px}.catalogue-filters select:disabled{display:none}.street-symbol svg{width:100%;height:100%;filter:drop-shadow(0 1px 2px #253e3840)}.legend-water{width:18px;height:4px;border-radius:3px;background:#54a3bb}.legend-signal{font-size:13px;color:#e8ad51;background:#263d3a;border-radius:4px;padding:0 3px}.legend-bus{font-size:9px;font-weight:800;color:white;background:#287895;border-radius:4px;padding:3px 5px}.layer-panel{max-height:calc(100dvh - 180px);overflow:auto}.night .catalogue-filters select{background:#24443c;border-color:#4c6659;color:#e1e9db}@media(max-width:700px){.catalogue-filters{margin-top:12px}.legend{gap:5px;font-size:9px}.layer-panel{max-height:43dvh}.catalogue-filters select{font-size:13px;min-height:42px}}

/* BAO contributions and refined cartography */
:root{--bg:#fbfaf6;--line:#e7e7dd;--shadow:0 8px 32px #193e3320}.map-tag{font-size:10px;letter-spacing:1.2px}.coverage{background:linear-gradient(135deg,#e7eee2,#f3eedf)}.coverage button+button{display:block;color:var(--muted);font-weight:400}.result-icon{box-shadow:inset 0 0 0 1px #ffffff70}.place-card{border-color:#e1d9c9;box-shadow:0 18px 60px #23372e29}.contribution-badge{font-size:10px;background:#f8ecd7;color:#8b5d28;border-radius:6px;padding:7px 9px;display:inline-block}.contribute-place{display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #d3b894;background:#fbf5eb;color:#8b5d28;width:100%;padding:12px;border-radius:9px;margin-top:13px;font-size:11px;font-weight:600}.contribution-section{margin-top:30px;padding-top:25px;border-top:1px solid var(--line)}.contribution-section h2{font-size:18px}.contribution-section h2 span{font-size:12px;background:#e8eadf;border-radius:20px;padding:3px 7px;color:#45634c}.contribution-tools{display:flex;gap:8px;margin:16px 0}.contribution-tools button{flex:1;padding:11px}.contribution-row{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:12px 0}.contribution-row>button:first-child{flex:1;text-align:left;padding:5px 0}.contribution-row strong{display:block;font-size:12px}.contribution-row small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.contribution-row>button:last-child{min-width:36px;min-height:36px;font-size:11px}#contributionArchive summary{font-size:11px;cursor:pointer;color:var(--muted);padding:12px 0}.contribution-marker{position:relative;width:32px;height:32px;display:grid;place-items:center;padding:0;background:transparent;border:0}.contribution-dot{display:grid;place-items:center;width:28px;height:28px;border:3px solid #fffaf0;border-radius:50%;background:#b96d30;color:white;font-size:21px;line-height:1;box-shadow:0 2px 10px #69492c55}.contribution-name{position:absolute;left:38px;top:50%;transform:translateY(-50%);white-space:nowrap;max-width:190px;overflow:hidden;text-overflow:ellipsis;border:1px solid #e3c99d;border-radius:7px;padding:6px 9px;font-size:11px;font-weight:700;color:#855224;background:#fffcf4;box-shadow:0 3px 10px #76582e22}.map-attribution{position:fixed;right:14px;bottom:6px;z-index:8;display:flex;align-items:center;gap:9px;background:#fffffff2;border:1px solid #dddccf;border-radius:8px;box-shadow:0 2px 10px #22372c12;padding:2px 5px 2px 10px;font-size:11px;color:#3c554b;max-width:calc(100% - 420px)}.map-attribution a{text-decoration:underline}.map-attribution button{display:flex;align-items:center;gap:5px;min-height:30px;font-size:11px;padding:3px 5px;flex-shrink:0}.map-attribution svg{width:15px;height:15px}.pick-banner{position:fixed;top:90px;left:calc(50% + 190px);transform:translateX(-50%);background:#174c40;color:#fff;z-index:12;border-radius:12px;padding:13px 16px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow);font-size:12px;max-width:calc(100% - 450px)}.pick-banner button{color:#fff;border:1px solid #8da99e;border-radius:6px;padding:7px 9px}.picking,.picking canvas{cursor:crosshair!important}#contributionDialog{max-height:calc(100dvh - 30px);overflow:auto;width:min(560px,calc(100% - 28px));padding:30px}#contributionDialog h2{font-size:26px;margin-bottom:22px}#contributionForm label{display:block;font-size:11px;font-weight:600;margin:13px 0}#contributionForm input,#contributionForm select{display:block;width:100%;border:1px solid #d6ddcf;border-radius:8px;background:var(--white);color:var(--ink);padding:11px 12px;margin-top:7px;font-size:13px}#contributionForm textarea{font-size:12px;margin-top:7px}#contributionForm .text-button{padding:0;display:flex;gap:7px;align-items:center;color:#317664;font-size:11px;min-height:32px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.local-note{font-size:11px;background:#eef1e5;padding:11px 13px;border-radius:8px;color:#5c6c57}body.night .map-attribution{background:#213a33;color:#dfebdf;border-color:#456056}body.night .contribute-place{background:#483e2d;color:#ebc89e;border-color:#786245}body.night .local-note{background:#29473c;color:#cedbc9}body.night .coverage{background:#28473b}body.night .contribution-badge{background:#52452f;color:#ead2ab}@media(max-width:1050px) and (min-width:701px){.map-attribution{max-width:calc(100% - 370px)}}@media(max-width:700px){.map-attribution{bottom:calc(46vh + 3px);right:8px;max-width:calc(100% - 16px);font-size:11px}.map-attribution button{min-height:34px}.map-attribution #attributionNotice{line-height:1.4}.map-bottom{bottom:calc(46vh + 47px)}.map-attribution:has(#attributionNotice:not([hidden])){bottom:calc(46vh + 4px)}.pick-banner{left:16px;right:65px;top:72px;transform:none;max-width:none;font-size:11px;padding:11px;flex-wrap:wrap}.pick-banner span{flex:1;min-width:120px}.place-card{max-height:calc(54vh - 94px);overflow:auto;bottom:calc(46vh + 43px)}#contributionDialog{padding:24px}.form-grid{gap:10px}#contributionForm input,#contributionForm select{font-size:16px}.contribution-marker{width:32px;height:32px}.contribution-name{max-width:130px}}

/* Shared BAO registry and place geometry. */
.published-marker .contribution-dot{background:#1b7763}.published-marker .contribution-name{border-color:#a8c7b8;background:#f3faf4;color:#235d4b}.contribution-badge.published{background:#dfefe4;color:#23614d}.community-card{background:#edf2e8;border:1px solid #d7e2d2;border-radius:12px;padding:15px;margin:17px 0}.community-card strong{font-size:12px}.community-card p{font-size:11px;margin:8px 0}.community-card a,.community-card button{font-size:11px;line-height:1.5;display:block;margin:7px 0}.place-shape{margin-top:12px;padding:12px;background:#eef1e8;border-radius:10px}.place-shape strong{font-size:11px}.place-shape p{font-size:10px;margin:6px 0}.place-shape button{font-size:11px;padding:10px;width:100%}.place-shape small{display:block;font-size:9px;color:var(--muted);line-height:1.5;margin-top:8px}.place-card{max-height:calc(100dvh - 120px);overflow:auto}.footprint-editor,.share-contribution{border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.footprint-editor strong{font-size:12px}.footprint-editor .secondary{font-size:11px;padding:11px}#contributionForm .checkline{display:flex;align-items:flex-start;gap:10px;font-size:11px;font-weight:400;line-height:1.6}#contributionForm .checkline input{width:18px;height:18px;margin:1px 0 0;flex-shrink:0}.share-contribution .primary{margin-top:12px}#communityDialog{max-height:calc(100dvh - 30px);overflow:auto;width:min(600px,calc(100% - 28px))}.review-item{padding:18px 0;border-bottom:1px solid var(--line)}.review-item h3{font-size:17px;margin:0 0 10px}.review-item label{font-size:11px;display:block;margin-top:15px}.review-item textarea{width:100%;min-height:65px}.review-item>.secondary{padding:10px;font-size:12px}body.night .community-card,body.night .place-shape{background:#29453b;border-color:#476351}body.night .contribution-badge.published{background:#315f4b;color:#d3ead9}@media(max-width:700px){.place-card{max-height:calc(54vh - 94px)}body:has(.sidebar.collapsed) .map-attribution{bottom:65px}body:has(.sidebar.collapsed) .map-bottom{bottom:109px}body:has(.sidebar.collapsed) .place-card{bottom:110px;max-height:calc(100dvh - 205px)}#communityDialog{padding:24px}}
/* BAO Immersion: real imagery is always separate from the schematic atlas. */
.tabs{gap:10px}.tabs button{font-size:11px}.tabs svg{width:15px}.street-camera-button{color:#a65e25;background:#fff4df;border:1px solid #e4be87}.street-live{font-size:7px;letter-spacing:.8px;background:#e0eee7;color:#326c56;padding:4px 5px;border-radius:4px;margin-left:auto}.street-context{display:flex;gap:10px;align-items:center;padding:14px 0 18px}.street-context strong{display:block;font-size:12px;line-height:1.5}.street-context small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.street-title{margin-top:25px}.street-seed{display:flex;gap:12px;align-items:center;width:100%;text-align:left;border-radius:12px;border:1px solid #d7e3db;padding:17px 13px;margin-bottom:10px;background:linear-gradient(130deg,#e7efe4,#f6f3e8);color:#22483e}.street-seed>span:nth-child(2){flex:1}.street-seed strong{display:block;font-size:13px}.street-seed small{display:block;font-size:10px;line-height:1.6;margin-top:5px;color:#66796e}.street-seed-symbol{display:grid;place-items:center;width:37px;height:43px;border-radius:10px;background:#244d41;color:#f1d7a6;font-size:26px}.street-source-box{margin-top:23px;border:1px solid var(--line);padding:15px;border-radius:12px}.street-source-box strong{font-size:12px}.street-source-box p{font-size:11px;color:var(--muted)}.street-external{display:block;font-size:11px;text-decoration:none;line-height:1.5;padding-top:13px;color:var(--ink)}.street-external:hover{text-decoration:underline}.street-status{padding:12px 13px;background:#f0eee5;border-left:3px solid #cc9a5b;border-radius:5px;line-height:1.65;font-size:11px;color:#645c47;margin:16px 0}.street-photo-row{display:flex;gap:12px;align-items:center;text-align:left;width:100%;padding:10px 0;border-bottom:1px solid var(--line)}.street-photo-row img{width:80px;height:60px;object-fit:cover;border-radius:8px;background:#dce7df}.street-photo-row strong{font-size:12px;display:block}.street-photo-row small{display:block;font-size:10px;line-height:1.6;color:var(--muted);margin-top:5px}.street-link-box,.street-contribute{border-top:1px solid var(--line);padding:17px 0;font-size:12px}.street-link-box summary,.street-contribute summary{cursor:pointer;font-weight:600}.street-link-box label{display:block;font-size:11px;margin:15px 0 8px}.street-link-box input{width:100%;border:1px solid var(--line);border-radius:8px;padding:11px;margin-bottom:10px;background:var(--white);color:var(--ink)}.street-link-box p,.street-contribute p{font-size:10px;color:var(--muted)}.street-contribute ol{padding-left:18px;line-height:1.7;font-size:11px}.street-contribute li{margin:8px 0}.street-contribute a{font-size:11px}.street-anchor{display:grid;place-items:center;width:26px;height:26px;border:3px solid #fff;background:#bd722f;color:white;border-radius:50%;box-shadow:0 0 0 8px #d99f492e}.street-photo-pin{width:26px;height:26px;border:2px solid white;border-radius:50%;background:#278f82;color:white;box-shadow:0 2px 6px #0003}.street-route{background:#e8eee4;border-radius:12px;padding:14px;margin:18px 0}.street-route strong{display:block;font-size:20px}.street-route label{display:block;font-size:10px;margin-top:12px}.street-route input{width:100%;accent-color:#275948;margin:15px 0}.street-route>div{display:flex;justify-content:space-between;gap:5px}.street-route button{padding:10px;font-size:10px}.street-route p{font-size:10px;margin-bottom:0}.street-stage{position:fixed;z-index:15;left:408px;right:24px;bottom:24px;height:65vh;min-height:350px;background:#172d29;color:#fff;border-radius:16px;box-shadow:0 20px 75px #132d3255;overflow:hidden;display:flex;flex-direction:column;border:1px solid #71898055}.street-stage[hidden]{display:none}.street-stage>header{display:flex;align-items:center;gap:10px;padding:15px 19px;background:#183a32;flex-shrink:0}.street-stage>header>div{flex:1;min-width:0}.street-stage .eyebrow{font-size:7px;margin:0 0 7px;color:#b9cbb7}.street-stage header strong{font-size:15px;display:block}.street-stage header small{display:block;font-size:10px;line-height:1.5;margin-top:5px;color:#c5d2c9}.street-icon-button{font-size:28px;color:white;width:34px;height:34px;border-radius:8px;background:#ffffff12}.street-stage>footer{padding:10px 16px 13px;flex-shrink:0;border-top:1px solid #ffffff17;background:#18332d}.street-stage footer p{font-size:10px;line-height:1.5;color:#d2ddd4;margin:0 0 10px}.street-view-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.street-view-actions button,.street-view-actions a{font-size:10px;color:#fff;padding:7px 9px;border:1px solid #89a19370;border-radius:6px;text-decoration:none}.street-view-actions button[aria-pressed=true]{background:#547b65}.street-view-actions a{margin-left:auto;border-color:transparent;color:#d9bf8e}.street-stage.expanded{inset:16px;height:auto;min-height:0;z-index:30}#streetViewer{flex:1;min-height:0;position:relative;background:#0d1e19}#streetViewer iframe,#streetViewer pnx-photo-viewer{width:100%;height:100%;border:0;display:block}#streetViewer .street-flat{width:100%;height:100%;display:block;object-fit:contain}.street-view-error{color:#ffdfaa;background:#402d20;margin:0;padding:12px 16px;font-size:11px}.street-open .map-bottom{visibility:hidden}.street-open .map-controls{top:95px;gap:7px}.street-open .map-controls .control-group,.street-open #tilt,.street-open #layersButton{display:none}.place-shape #viewStreet{margin-top:8px;width:100%;font-size:11px}.night .street-status{background:#403c2d;color:#f1d4aa}.night .street-route{background:#2d4538}.night .street-source-box{border-color:#465c4e}.night .street-seed{background:#2e493e;color:#edf6ef}.night .street-seed small{color:#c5d3c9}
.panel-scroll{overflow-x:hidden}.street-context>div,.street-seed>span:nth-child(2){min-width:0;overflow-wrap:anywhere}.street-source-box .primary{white-space:normal}
@media(max-width:1100px) and (min-width:701px){.street-stage{left:362px;right:18px;bottom:20px;height:67vh}.street-stage.expanded{left:14px;right:14px;top:14px;bottom:14px;height:auto}}
@media(max-width:700px){.tabs{gap:10px}.tabs button{font-size:11px}.street-stage{left:10px;right:10px;top:75px;bottom:auto;height:calc(56vh - 80px);min-height:240px;z-index:15;border-radius:12px}.street-stage>header{padding:10px 13px}.street-stage header small{font-size:9px}.street-stage header strong{font-size:12px}.street-stage .eyebrow{display:none}.street-stage footer{padding:8px 10px}.street-stage footer p{display:none}.street-view-actions{gap:5px}.street-view-actions button,.street-view-actions a{font-size:9px;padding:6px}.street-view-actions a{margin-left:0}.street-stage.expanded{inset:8px 8px calc(8px + env(safe-area-inset-bottom));height:auto;min-height:0}.street-stage.expanded footer p{display:block}.street-open .map-controls{top:83px}.street-open #theme,.street-open #locate{display:none}.street-open #openStreet{display:none}.street-live{display:none}.street-contribute ol{font-size:12px}}

#streetViewer pnx-photo-viewer{position:relative;isolation:isolate;overflow:hidden;color:#163e37}

/* National details and contribution editor */
.enrich-tools{border:1px solid var(--line);border-radius:12px;padding:13px;margin:4px 0 22px;background:var(--white)}.enrich-tools label{display:block;font-size:10px;font-weight:700;letter-spacing:.3px;margin-bottom:8px}.enrich-tools select{width:100%;border:0;background:transparent;color:var(--ink);font-size:12px;padding:5px 0}.enrich-tools small{display:block;font-size:10px;color:var(--muted);line-height:1.5;margin-top:8px}.object-details{margin:18px 0;border-top:1px solid var(--line);padding-top:15px}.object-details h3{font-size:13px;margin:0 0 12px}.detail-origin{font-size:9px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}.object-details dl{margin:7px 0 15px}.object-details dl>div{display:grid;grid-template-columns:1fr 1.25fr;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:11px;line-height:1.5}.object-details dt{color:var(--muted)}.object-details dd{margin:0;overflow-wrap:anywhere;font-weight:500}.object-details dd a{color:#287d68}.object-details .small{margin:8px 0}.attribute-group{border:1px solid var(--line);border-radius:9px;padding:12px;margin:10px 0}.attribute-group summary{font-size:12px;font-weight:600;cursor:pointer;min-height:24px}.attribute-group input{min-width:0}.attribute-group .form-grid{column-gap:12px}.coverage-tags{display:grid;grid-template-columns:1fr 1fr;gap:8px}.coverage-tags span{font-size:11px;border-radius:8px;background:#edf2e8;padding:12px}.coverage-tags b{display:block;font-size:20px;margin-bottom:4px}.review-details{font-size:12px;display:grid;grid-template-columns:1fr 1.3fr;gap:8px}.review-details dd{margin:0;overflow-wrap:anywhere}.drawing-banner{max-width:calc(100% - 445px);width:660px;flex-wrap:wrap}.drawing-banner span{flex-basis:100%}.drawing-banner button{min-height:36px}.drawing-banner button:disabled{cursor:default}.place-card{width:350px}.place-shape button+button{margin-top:8px}body.night .coverage-tags span{background:#29473c}@media(max-width:1050px) and (min-width:701px){.place-card{width:320px}}@media(max-width:700px){.place-card{width:calc(100% - 85px)}.drawing-banner{width:auto;max-width:none;left:12px;right:60px}.drawing-banner button{font-size:11px;flex:1}.attribute-group .form-grid{grid-template-columns:1fr}.object-details dl>div{font-size:12px}.enrich-tools select{font-size:16px}}

/* v0.7 — distinct place and entrance, source audit */
.arrival-card{margin:20px 0;padding:17px;background:#eef3ed;border:1px solid #dce6d8;border-radius:15px}.arrival-card h3{margin:9px 0;font-size:18px}.arrival-card p{font-size:12px;line-height:1.55}.arrival-item{padding:13px 0;border-top:1px solid #d4dfd0}.arrival-item>strong{display:flex;align-items:center;gap:8px;font-size:13px}.arrival-number{display:inline-grid;place-items:center;border-radius:50%;background:var(--ink);color:white;width:22px;height:22px;font-size:11px;flex-shrink:0}.arrival-item small{display:block;font-size:10px;line-height:1.5;color:#53675e;margin:7px 0}.arrival-item dl{display:grid;grid-template-columns:70px 1fr;font-size:11px;margin:10px 0;gap:6px}.arrival-item dd{margin:0;text-align:right;overflow-wrap:anywhere}.arrival-actions{display:flex;gap:7px;flex-wrap:wrap}.arrival-actions button{font-size:11px;padding:10px 11px;min-height:38px}.arrival-marker{height:32px;width:32px;border-radius:50%;background:#1e6c55;color:white;font-size:13px;font-weight:bold;border:3px solid white;box-shadow:0 2px 8px #12362d66;display:grid;place-items:center}.arrival-marker.focused{background:#a45e22;outline:3px solid #e6b77d}.arrival-route-note{border-left:3px solid #8fae80;background:#eff3e9;font-size:12px;padding:12px;line-height:1.55}.object-quality{background:#fff5df;border-radius:10px;margin:12px 0;padding:12px;font-size:12px;line-height:1.5}.object-quality summary{cursor:pointer;font-weight:bold}.object-quality small{color:#6b634e}.arrival-editor .form-grid{margin-top:12px}.arrival-editor [hidden]{display:none}.audit-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.audit-cards button{background:#edf2e9;border:1px solid #dce4d4;border-radius:14px;padding:17px;text-align:left;display:flex;flex-direction:column;gap:8px}.audit-cards button strong{font-size:27px;font-weight:500;letter-spacing:-1px}.audit-cards button span{font-size:12px;line-height:1.4}.audit-cards button small{font-size:10px;color:#587161}.audit-good{padding:14px 16px;border:1px solid var(--line);border-radius:12px;font-size:12px}.audit-good p{font-size:11px;margin-bottom:0}.audit-table-wrap{overflow-x:auto;margin-bottom:20px}.audit-table{border-collapse:collapse;width:100%;font-size:11px}.audit-table th,.audit-table td{text-align:right;padding:9px 6px;border-bottom:1px solid var(--line)}.audit-table th:first-child{text-align:left;font-weight:500}.audit-table thead th{background:#f0f2eb}.audit-method{font-size:12px;line-height:1.6;margin:18px 0}.audit-method summary{cursor:pointer;font-weight:600}#auditDialog{max-width:640px}#auditDialog h3{font-size:17px;margin-top:24px}#auditDialog p{line-height:1.55}.coverage #auditLink{display:block;margin-top:8px;font-weight:700;color:#1b6652}.source-observation{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:10px;font-size:11px;line-height:1.5}.source-observation p{margin:6px 0}.source-observation code{font-size:10px;overflow-wrap:anywhere}@media(max-width:500px){.audit-cards{gap:8px}.audit-cards button{padding:13px}.audit-cards button strong{font-size:24px}.arrival-actions{display:grid;grid-template-columns:1fr}.arrival-actions button{width:100%}.audit-table{font-size:10px}.audit-table th,.audit-table td{padding:8px 4px}}

/* v0.8 — precise pins and direct GPS entry */
.gps-entry{display:flex;align-items:center;gap:7px;margin-top:7px;font-size:11px;min-height:36px}.gps-entry svg{width:15px;height:15px}.pin-coordinates{display:block;font-size:17px;font-variant-numeric:tabular-nums;letter-spacing:.1px;padding:14px 12px;margin:12px 0;border-radius:10px;background:#edf3e9;overflow-wrap:anywhere;user-select:text}.place-card .place-actions button{min-width:0}#coordinatesDialog{max-width:460px}#coordinatesDialog h2{font-size:25px}#coordinatesForm>label{display:block;font-weight:600;font-size:12px;margin-bottom:8px}#coordinatesInput{width:100%;min-width:0;padding:14px;border:1px solid #b8cabb;border-radius:9px;font-size:16px;background:var(--white);color:var(--ink)}.inspect-toggle{border-bottom:1px solid var(--line);padding-bottom:10px}.night .pin-coordinates{background:#2b483c}

/* MapLibre places each marker from the canvas origin. Keeping a contribution
   in normal flow adds 32px per earlier marker and makes it drift from the map. */
.maplibregl-marker.contribution-marker{position:absolute;top:0;left:0}

/* Collection and a bounded offline download */
#collectionDialog{max-width:680px}#collectionDialog h2,#offlineDialog h2{font-size:25px}#collectionText{width:100%;font:12px/1.5 monospace;padding:12px;margin:8px 0 12px;border:1px solid var(--line);border-radius:9px;background:var(--white);color:var(--ink);resize:vertical}.collection-help{font-size:12px;margin:15px 0}.collection-help summary{cursor:pointer;font-weight:600}.collection-help p{font-size:11px;overflow-wrap:anywhere}.collection-rows{max-height:280px;overflow:auto;margin:12px 0}.collection-row{display:flex;gap:10px;padding:12px;border:1px solid var(--line);border-radius:9px;margin-bottom:8px;font-size:12px}.collection-row input{width:18px;height:18px;flex-shrink:0}.collection-row span{min-width:0;overflow-wrap:anywhere}.collection-row small{display:block;color:var(--muted);margin-top:5px;line-height:1.5}.collection-row .duplicate-note{color:#9d641e}.collection-row.invalid{display:block;background:#fff2e4}.csv-file{font-size:12px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.csv-file input{max-width:100%;font-size:11px}.offline-size{font-size:22px;font-weight:600}#offlineProgress{width:100%;height:12px;accent-color:#206c57}#offlineStatus{min-height:38px}#offlineDialog{max-width:460px}.night .collection-row.invalid{background:#493b2c}@media(max-width:700px){#collectionText{font-size:16px}.collection-row{font-size:13px}}

#collectionDialog .contribution-tools{flex-wrap:wrap}#collectionDialog .csv-file{min-width:0;flex:1 1 220px}#collectionDialog .csv-file input{width:100%;min-width:0}#saved .contribution-tools{flex-wrap:wrap}#saved .contribution-tools button{min-width:90px}@media(max-width:500px){#collectionDialog .contribution-tools{display:grid;grid-template-columns:minmax(0,1fr)}#collectionDialog .csv-file{display:block}#collectionDialog .csv-file input{display:block;margin-top:8px}}

/* Semantic cartography: compact key, expanded material legend. */
.legend-toggle{pointer-events:auto;display:flex;gap:9px;color:var(--ink);background:var(--white);font-size:11px;min-height:44px;border:1px solid var(--line)}
.legend-toggle svg{width:14px;height:14px}.legend-palette{display:flex;gap:3px}.legend-palette b{display:block;width:8px;height:17px;border-radius:3px;background:#a5c696}.legend-palette b:nth-child(2){background:#849198}.legend-palette b:nth-child(3){background:#91c9dc}
#mapLegendDialog{max-width:650px;max-height:calc(100dvh - 32px);overflow:auto}.cartography-legend{display:grid;grid-template-columns:1fr 1fr;gap:24px}.legend-section h3{font-size:12px;margin:4px 0 14px}.legend-section p,.legend-note{font-size:11px;color:var(--muted);line-height:1.6}.legend-note{padding-top:14px;border-top:1px solid var(--line)}.cartography-key{display:flex;align-items:center;gap:11px;font-size:11px;line-height:1.5;margin:11px 0}.map-swatch{display:block;flex:0 0 30px;width:30px;height:16px;border-radius:4px;background:var(--swatch);border:1px solid #51634c25}.map-swatch.line{height:8px;border-radius:3px}.map-swatch.unknown,.map-swatch.dashed{height:4px;background:repeating-linear-gradient(90deg,var(--swatch) 0 4px,transparent 4px 8px);border:0;border-radius:0}.map-swatch.unknown{height:3px;background:repeating-linear-gradient(90deg,var(--swatch) 0 2px,transparent 2px 6px)}
.contribution-dot svg{width:16px;height:16px;stroke-width:2}.contribution-status{position:absolute;right:-1px;bottom:-1px;width:13px;height:13px;display:grid;place-items:center;border:1.5px solid #fff;border-radius:50%;background:#b96d30;color:#fff;font-size:10px;line-height:1;z-index:1;pointer-events:none}.published-marker .contribution-status{background:#1b7763}
@media(max-width:700px){.legend-toggle{display:flex;padding:9px 11px;min-height:40px}.map-bottom{gap:8px}.cartography-legend{grid-template-columns:1fr;gap:12px}#mapLegendDialog{padding:25px}.legend-toggle svg{display:none}}
