:root{color-scheme:dark;--bg:#101619;--panel:#151d21;--line:#2b363b;--muted:#92a4aa;--accent:#b5f4cf}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#ecf2f1;font:14px/1.5 system-ui,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;background:#202b30;border:1px solid var(--line);border-radius:8px;padding:9px 14px}button:hover{background:#334249}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button.active{background:var(--accent);color:#12231a;border-color:var(--accent)}header{height:88px;display:flex;align-items:center;padding:0 28px;gap:24px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:14px;align-items:center}.brand-icon{font-size:36px;color:var(--accent)}h1{font-size:19px;letter-spacing:3px;margin:0}p{margin:0}.brand p{color:var(--muted);font-size:12px}.location{margin-left:auto;font-size:10px;letter-spacing:1.6px;color:var(--muted)}.location i{display:inline-block;width:4px;height:4px;background:var(--accent);border-radius:50%;margin:0 12px}header>button{font-size:12px}main{display:flex;height:calc(100dvh - 88px)}#workspace{position:relative;flex:1;min-width:0}#map{height:100%;background:#222c30}.leaflet-tile-pane{filter:brightness(.8) saturate(.65)}#map.satellite .leaflet-tile-pane{filter:brightness(.9)}.toolbar{position:absolute;z-index:500;top:22px;left:22px;right:22px;display:flex;justify-content:space-between;gap:12px;pointer-events:none}.segmented{display:flex;gap:4px;padding:4px;background:#121b20ed;border:1px solid #3c484d;border-radius:12px;pointer-events:auto;box-shadow:0 4px 20px #0003}.segmented button{border:0;background:transparent;font-size:12px;padding:8px 14px}.segmented button.active{background:#e3eee9;color:#14261c}.leaflet-control-zoom{margin-top:96px!important}.leaflet-bar a{background:#172227!important;color:#fff!important;border-color:#455057!important}.map-caption{position:absolute;bottom:38px;left:24px;z-index:450;font-size:11px;letter-spacing:2px;background:#152025df;padding:10px 14px;border-radius:8px}.map-caption span{display:block;font-size:10px;color:var(--muted);letter-spacing:.6px}#status{position:absolute;bottom:106px;left:24px;right:24px;z-index:500;background:#142127eb;border:1px solid #43534f;padding:10px 14px;border-radius:10px;font-size:12px;max-width:540px}aside{width:352px;flex-shrink:0;padding:25px 18px 0;background:var(--panel);display:flex;flex-direction:column;border-left:1px solid var(--line)}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:0 4px 18px}h2{margin:0;font-size:17px}.panel-heading span{font-size:12px;color:var(--muted)}.filters{display:flex;gap:6px}.filters button{flex:1;font-size:12px;padding:9px 7px}.filters b{margin-left:4px;font-size:11px}.panel-hint{font-size:11px;color:var(--muted);margin:18px 4px}#list{overflow:auto;flex:1;padding-bottom:20px}.card{width:100%;display:flex;text-align:left;align-items:center;gap:12px;background:transparent;border:1px solid transparent;border-bottom:1px solid var(--line);padding:12px 5px;border-radius:8px}.card.selected{border:1px solid var(--accent);background:#23392f}.card img,.placeholder{width:84px;height:66px;object-fit:cover;border-radius:6px;background:#26363b;flex-shrink:0}.placeholder{display:grid;place-items:center;color:var(--muted);font-size:20px}.card-text{min-width:0}.card strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.card small{display:block;color:var(--muted);font-size:10px;margin-top:6px}.badge{color:var(--accent);font-size:10px}#gallery{position:absolute;inset:0;z-index:460;background:var(--bg);overflow:auto;padding:92px 22px 160px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;align-content:start}#gallery:not([hidden]){display:grid}#gallery .card{display:block;padding:0;overflow:hidden;background:var(--panel);height:240px}#gallery img,#gallery .placeholder{width:100%;height:164px;border-radius:0}#gallery .card-text{padding:12px}.camera{width:28px;height:28px;position:relative}.camera .dot{position:absolute;left:9px;top:9px;width:10px;height:10px;background:var(--accent);border:2px solid #143129;border-radius:50%;box-shadow:0 0 0 3px #ffffff25}.camera .arrow{position:absolute;left:11px;top:-7px;border-left:3px solid transparent;border-right:3px solid transparent;border-bottom:10px solid var(--accent)}.pano-marker{background:#c9e9ff;color:#132d3b;border:2px solid #223b46;border-radius:20px;padding:3px;font-size:10px;font-weight:bold;text-align:center}.drone{color:#122c21;background:var(--accent);border:2px solid #fff;border-radius:50%;text-align:center;box-shadow:0 0 0 6px #b5f4cf30}dialog{position:fixed;inset:auto 374px 30px auto;margin:0;width:min(660px,calc(100vw - 410px));max-height:80dvh;padding:0;background:#151e23;border:1px solid #53625f;border-radius:14px;color:#fff;z-index:1200;box-shadow:0 18px 80px #0008}dialog[open]{display:flex;flex-direction:column}.viewer-head{display:flex;gap:12px;justify-content:space-between;padding:16px 20px}.viewer-head h2{font-size:14px;overflow-wrap:anywhere}.viewer-head p{font-size:11px;color:var(--muted);margin-top:5px}.viewer-head button{align-self:start}#media{min-height:200px;overflow:hidden;position:relative;background:#0b1114}#media img,#media video{display:block;width:100%;max-height:52dvh;object-fit:contain}#panorama{height:48dvh;min-height:260px}footer{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;gap:14px;font-size:11px}footer a{color:var(--accent);white-space:nowrap}footer span{color:var(--muted)}#sheetToggle{display:none}#debug{position:fixed;z-index:2000;bottom:0;left:0;background:#000e;max-width:90vw;font-size:11px;padding:8px}#debug[hidden]{display:none}#debug pre{max-height:30vh;overflow:auto}.empty{color:var(--muted);padding:24px 8px;font-size:12px}
@media(max-width:800px){header{height:74px;padding:0 16px;gap:10px}h1{font-size:15px;letter-spacing:2px}.brand-icon{font-size:28px}.location{display:none}header>button{margin-left:auto;font-size:11px;padding:8px}main{height:calc(100dvh - 74px)}aside{position:absolute;z-index:600;bottom:0;width:100%;height:180px;border-radius:20px 20px 0 0;padding:8px 16px 0;transition:height .2s}aside.expanded{height:65dvh}#sheetToggle{display:flex;justify-content:center;gap:14px;background:none;border:0;padding:3px}.panel-heading{display:none}.filters{margin-top:10px}.panel-hint{margin:10px 4px}#list{min-height:0}.toolbar{top:14px;left:12px;right:12px}.segmented button{padding:7px 10px}.map-caption{display:none}#status{bottom:198px;left:12px;right:12px}dialog{inset:auto 10px 190px 10px;width:auto;max-height:65dvh}.viewer-head{padding:12px}#media img,#media video{max-height:35dvh}#panorama{height:35dvh;min-height:180px}#gallery{padding:80px 12px 210px;grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}footer{padding:10px 12px}.leaflet-bottom{bottom:180px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}


#layers[hidden]{display:none}.gallery-mode #map{visibility:hidden}.gallery-mode .map-caption{display:none}#sheetToggle{touch-action:pan-x}

dialog.panorama-original{inset:5dvh 4vw auto;width:92vw;max-height:90dvh}dialog.panorama-original #panorama{height:66dvh}dialog footer{flex-wrap:wrap}dialog footer #viewerNote{flex:1;min-width:130px}
/* Readable desktop UI and media viewers */
body{font-size:16px}header{height:100px}h1{font-size:20px}.brand p{font-size:15px}.location{font-size:12px}header>button{font-size:15px;padding:11px 16px}main{height:calc(100dvh - 100px)}aside{width:clamp(360px,30vw,440px);padding:26px 20px 0}.panel-heading h2{font-size:21px}.panel-heading span{font-size:15px}.panel-hint{font-size:13px;line-height:1.6}.filters{gap:8px}.filters button{font-size:16px;padding:12px 9px}.filters b{font-size:14px}.segmented button{font-size:16px;padding:10px 18px}.card{gap:15px;padding:17px 7px;margin-bottom:5px;min-height:118px}.card img,.placeholder{width:106px;height:82px}.card strong{font-size:15px;line-height:1.5}.card small{font-size:13px;margin-top:5px;line-height:1.5}.badge{display:block;font-size:12px;margin-top:5px;letter-spacing:.5px}.card-text{flex:1}.map-caption{font-size:13px}.map-caption span{font-size:12px}#status{font-size:14px;max-width:660px;padding:12px 16px}.empty{font-size:15px}#gallery{grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:20px;padding-top:108px}#gallery .card{height:290px;min-height:0}#gallery img,#gallery .placeholder{height:180px}#gallery .card-text{display:block;padding:13px 15px}.leaflet-control-zoom{margin-top:108px!important}.leaflet-control-zoom a{width:40px!important;height:40px!important;line-height:40px!important;font-size:26px!important}.pano-marker{font-size:12px;padding:4px}.leaflet-tooltip{font-size:13px}.leaflet-popup-content{font-size:16px}.leaflet-control-attribution{font-size:12px}
#viewer{border-radius:14px}#viewer[open]{display:flex}.viewer-head{align-items:center;gap:12px;padding:15px 20px}.viewer-head>div{flex:1;min-width:0}.viewer-head h2{font-size:17px;line-height:1.4}.viewer-head p{font-size:13px;line-height:1.5}.viewer-head button{min-width:44px;min-height:44px;align-self:center;font-size:20px}.viewer-head button[hidden]{display:none}dialog footer{font-size:14px;gap:16px;padding:12px 20px;flex-shrink:0}dialog footer #viewerNote{font-size:13px;line-height:1.5}dialog::backdrop{background:#03070bef;backdrop-filter:blur(5px)}
dialog.photo-lightbox,dialog.panorama-original{inset:12px;margin:0;width:calc(100vw - 24px);height:calc(100dvh - 24px);max-width:none;max-height:none;background:#080e12;border:1px solid #36464d;overflow:hidden}
dialog.photo-lightbox #media,dialog.panorama-original #media{flex:1;min-height:0;width:100%;background:#05090c}
dialog.photo-lightbox #media img{height:100%;width:100%;max-height:none;object-fit:contain}dialog.panorama-original #panorama{height:100%;min-height:0;position:relative}.panorama-stage{position:absolute;inset:0}.panorama-loading{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;padding:24px;background:#0a1218}.panorama-loading p{font-size:18px;max-width:600px}.panorama-loading span{font-size:15px;color:var(--muted)}.panorama-loading progress{width:min(360px,80%);height:9px;accent-color:var(--accent)}.panorama-stage .pnlm-load-box{display:none!important}.pnlm-controls{transform:scale(1.3);transform-origin:top left}.pnlm-zoom-controls{margin-left:14px;margin-top:14px}
#photoNav{position:absolute;top:50%;left:18px;right:18px;display:flex;justify-content:space-between;pointer-events:none}#photoNav[hidden]{display:none}#photoNav button{pointer-events:auto;width:48px;height:56px;font-size:24px;background:#142029db;border-color:#799087}dialog.video-viewer{inset:auto calc(clamp(360px,30vw,440px) + 20px) 25px auto;width:min(760px,calc(100vw - clamp(360px,30vw,440px) - 55px));max-height:83dvh}dialog.video-viewer #media video{width:100%;max-height:55dvh}#viewer:fullscreen{inset:0;width:100vw;height:100dvh;border:0;border-radius:0;max-height:none}#viewer:fullscreen #media{flex:1;min-height:0}
@media(min-width:1360px){aside{width:420px}dialog.video-viewer{right:440px;width:min(800px,calc(100vw - 470px))}}
@media(min-width:1800px){aside{width:440px}dialog.video-viewer{right:460px}}
@media(max-width:1100px){.location{display:none}header>button{margin-left:auto}.toolbar{left:14px;right:14px}.segmented button{padding:10px 12px}}
@media(max-width:800px){header{height:82px;padding:0 14px;gap:8px}h1{font-size:18px;letter-spacing:1.5px}.brand{gap:9px}.brand p{font-size:13px}.brand-icon{font-size:28px}header>button{font-size:13px;padding:10px;min-height:42px}main{height:calc(100dvh - 82px)}aside{width:100%;padding:8px 14px 0;height:204px}aside.expanded{height:68dvh}#sheetToggle{min-height:32px;font-size:15px}.filters button{font-size:15px;padding:10px 8px}.panel-hint{font-size:12px;margin:9px 4px}.card{padding:13px 5px;min-height:106px;gap:13px}.card img,.placeholder{width:98px;height:76px}.card strong{font-size:15px}.card small{font-size:13px}.segmented button{font-size:14px;padding:9px 12px}.toolbar{left:10px;right:10px;gap:8px}.leaflet-control-zoom{margin-top:88px!important}.leaflet-bottom{bottom:204px}#status{bottom:220px;font-size:13px;padding:10px 12px}#gallery{padding:90px 12px 235px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}#gallery .card{height:264px}#gallery img,#gallery .placeholder{height:158px}#gallery .card-text{padding:10px}dialog.photo-lightbox,dialog.panorama-original{inset:5px;width:calc(100vw - 10px);height:calc(100dvh - 10px);border-radius:9px}.viewer-head{padding:10px;gap:7px;align-items:flex-start}.viewer-head h2{font-size:14px}.viewer-head p{font-size:12px;max-height:60px;overflow:auto}.viewer-head button{min-width:40px;min-height:42px;padding:7px;font-size:19px}dialog footer{padding:10px 12px;font-size:13px;gap:8px}dialog footer #viewerNote{font-size:12px}#photoNav{left:10px;right:10px}#photoNav button{width:40px;height:48px;font-size:20px}.panorama-loading p{font-size:16px}dialog.video-viewer{inset:auto 8px 214px;width:calc(100vw - 16px);max-height:calc(100dvh - 225px)}dialog.video-viewer #media{min-height:0}dialog.video-viewer #media video{max-height:36dvh}.pnlm-controls{transform:scale(1.2)}}

/* Warm cartographic finish */
@font-face{font-family:Manrope;src:url('/assets/Manrope-Variable.ttf') format('truetype');font-weight:200 800;font-style:normal;font-display:swap}
:root{color-scheme:light;--bg:#f4f2ec;--panel:#fffdf9;--line:#d8ddd5;--text:#263c3c;--muted:#647875;--accent:#287f86;--accent-ink:#fff;--copper:#a86f4d;--shadow:0 8px 24px rgba(38,60,60,.10)}
body{background:var(--bg);color:var(--text);font-family:Manrope,system-ui,sans-serif}
button{color:var(--text);background:#fffdf9;border-color:#cbd5d1;border-radius:10px;box-shadow:0 1px 2px rgba(38,60,60,.04)}
button:hover{background:#e9f1ee;border-color:#9bb7b3}button.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
button:focus-visible,a:focus-visible{outline-color:var(--copper)}
header{height:116px;padding:0 28px;color:#fff;border:0;background:linear-gradient(90deg,rgba(31,40,39,.78),rgba(31,40,39,.56)),url('/assets/header-map.jpg') center/cover no-repeat;box-shadow:0 2px 12px rgba(38,60,60,.18)}
header .brand-icon{color:#f0c8a4;text-shadow:0 1px 5px #0008}header .brand p,.location{color:#f3eee4}.location i{background:#e7b389;box-shadow:0 0 0 3px rgba(231,179,137,.18)}
header>button{background:rgba(255,253,249,.94);color:var(--text);border-color:#fff;box-shadow:0 3px 12px #0003}header>button:hover{background:#fff}
main{height:calc(100dvh - 116px)}
#map{background:#dbe3dc}.leaflet-tile-pane,#map.satellite .leaflet-tile-pane{filter:none}
.toolbar{top:20px}.segmented{background:rgba(255,253,249,.94);border-color:#d2dad4;border-radius:12px;box-shadow:var(--shadow)}.segmented button{color:var(--text)}.segmented button.active{background:var(--accent);color:#fff}
.leaflet-bar{box-shadow:var(--shadow)!important}.leaflet-bar a{background:#fffdf9!important;color:var(--text)!important;border-color:#d3dbd6!important}.leaflet-bar a:hover{background:#e7f0ed!important}
.map-caption{color:var(--text);background:rgba(255,253,249,.95);border:1px solid #d6ded9;border-radius:10px;box-shadow:var(--shadow)}.map-caption span{color:var(--muted)}
#status{color:var(--text);background:rgba(255,253,249,.96);border-color:#bfd0c9;border-radius:11px;box-shadow:var(--shadow)}
aside{background:var(--panel);border-left-color:#d9dfd9;box-shadow:-5px 0 20px rgba(38,60,60,.05)}.panel-heading span,.panel-hint,.card small,.empty{color:var(--muted)}
.filters button{background:#f5f6f1}.filters button.active{background:#e1efeb;color:#1f666b;border-color:#a6c8c3}.filters button.active b{color:#1f666b}
.card{color:var(--text);border-bottom-color:#e0e5df;border-radius:10px}.card:hover{background:#f2f6f3}.card.selected{border-color:#78aaa7;background:#e6f2ef}.card img,.placeholder{background:#e6ebe5}.placeholder{color:var(--muted)}.badge{color:var(--copper)}
#gallery{background:var(--bg)}#gallery .card{background:#fffdf9;border:1px solid #dce3dd;box-shadow:0 3px 12px rgba(38,60,60,.07)}#gallery .card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}
.camera{width:44px;height:44px}.camera .dot{left:11px;top:11px;width:22px;height:22px;background:var(--accent);border:3px solid #fff;border-radius:50%;box-shadow:0 1px 6px rgba(19,60,60,.38)}.camera .arrow{left:17px;top:-2px;border-left-width:5px;border-right-width:5px;border-bottom:14px solid var(--accent);filter:drop-shadow(0 1px 1px rgba(255,255,255,.8))}
.pano-marker{color:#1e5d62;background:#fffaf0;border:2px solid var(--accent);border-radius:18px;padding:5px 7px;box-shadow:0 2px 8px rgba(38,60,60,.22)}.drone{color:#fff;background:var(--copper);border-color:#fffaf0;box-shadow:0 0 0 6px rgba(168,111,77,.20)}
dialog{background:#172529;border-color:#536a68;color:#fff;box-shadow:0 20px 80px rgba(15,28,29,.45)}.viewer-head p,footer span,dialog footer #viewerNote{color:#b9c9c4}dialog footer{border-top:1px solid rgba(204,222,215,.16)}footer a{color:#93d3d0}.viewer-head button,#photoNav button{background:#263a3d;color:#fff;border-color:#627b78}.viewer-head button:hover,#photoNav button:hover{background:#355458}
@media(max-width:800px){header{height:94px;padding:0 16px;background-position:center}main{height:calc(100dvh - 94px)}.brand p{color:#f3eee4}aside{border-radius:18px 18px 0 0;border-left:0;box-shadow:0 -5px 20px rgba(38,60,60,.10)}.leaflet-bottom{bottom:204px}}
