:root { --forest:#1d4c3b; --deep:#14372b; --paper:#f5f3ed; --panel:#fbfaf6; --line:#d7ddd4; --ink:#19231f; --soft:#66716b; --gold:#d6a54d; }
* { box-sizing:border-box; }
html,body { margin:0; min-height:100%; color:var(--ink); background:var(--paper); font-family:Arial,Helvetica,sans-serif; }
button,input,textarea,select { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
[hidden] { display:none!important; }
.eyebrow { color:#78847d; font-size:9px; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.community-header { position:relative; z-index:30; min-height:64px; display:flex; align-items:center; justify-content:space-between; gap:22px; padding:10px 24px; color:white; background:var(--deep); }
.community-brand { display:flex; align-items:center; gap:10px; color:white; text-decoration:none; font-size:12px; letter-spacing:.15em; }
.community-brand span { width:35px; height:32px; display:grid; place-items:center; border:1px solid #ffffff55; border-radius:50%; color:#e4c174; font-family:Georgia,serif; font-weight:700; }
.community-header nav { display:flex; align-items:center; gap:16px; }
.community-header nav a,.community-header nav button { padding:8px 10px; color:#e5ece8; border:0; background:transparent; text-decoration:none; font-size:10px; font-weight:800; cursor:pointer; }
.library-layout { min-height:calc(100dvh - 108px); display:grid; grid-template-columns:minmax(350px,470px) 1fr; }
.library-panel { padding:36px 30px; overflow-y:auto; background:var(--panel); border-right:1px solid var(--line); }
.library-panel h1,.viewer-panel h1,.legal-content h1 { margin:6px 0 10px; font-family:Georgia,serif; font-size:34px; font-weight:500; letter-spacing:-.03em; }
.library-panel>p { margin:0 0 24px; color:var(--soft); font-size:12px; line-height:1.6; }
.public-search { display:grid; grid-template-columns:1fr auto; gap:8px; }
.public-search label { min-width:0; }
.public-search label span { display:block; margin-bottom:6px; color:#59675f; font-size:9px; font-weight:900; text-transform:uppercase; }
.public-search input,.legal-content input,.legal-content textarea,.public-viewer-page dialog input,.public-viewer-page dialog textarea { width:100%; padding:11px 12px; border:1px solid #c5cdc5; border-radius:5px; background:white; outline:none; }
.public-search input:focus { border-color:var(--forest); box-shadow:0 0 0 3px #1d4c3b16; }
.public-search button,.location-search-actions button,.viewer-actions button,.viewer-tool button,.legal-content button,.support-cta { padding:10px 13px; border:1px solid var(--forest); border-radius:5px; color:white; background:var(--forest); font-size:10px; font-weight:900; cursor:pointer; text-decoration:none; }
.location-search-actions { display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; }
.location-search-actions button { color:#3f594d; border-color:#b7c6bc; background:#edf2ed; }
.library-status { padding:14px 0 8px; color:#738078; font-size:10px; }
.public-results { display:flex; flex-direction:column; gap:9px; }
.public-map-card { display:grid; grid-template-columns:1fr auto; gap:8px; padding:14px; color:inherit; border:1px solid var(--line); border-radius:7px; background:white; text-decoration:none; transition:border-color .15s,transform .15s; }
.public-map-card:hover { border-color:#85a08f; transform:translateY(-1px); }
.public-map-card h2 { margin:4px 0 6px; font-family:Georgia,serif; font-size:18px; font-weight:600; }
.public-map-card p { margin:0 0 8px; color:var(--soft); font-size:10px; line-height:1.45; }
.public-map-card small,.public-map-card em { display:block; color:#829087; font-size:8px; font-style:normal; }
.public-map-card>span { align-self:center; color:#9aa69f; font-size:20px; }
.empty-public { padding:30px 20px; text-align:center; border:1px dashed #bdc8bf; color:var(--soft); }
.library-map-wrap { position:relative; min-height:500px; }
.library-map { position:absolute; inset:0; }
.map-pick-message { position:absolute; z-index:5; top:16px; left:50%; padding:10px 13px; transform:translateX(-50%); color:white; border-radius:5px; background:#14372beF; font-size:10px; font-weight:800; box-shadow:0 8px 25px #0003; }
.map-pick-message button { margin-left:10px; color:#fff; border:1px solid #ffffff66; background:transparent; }
.community-marker { width:28px; height:28px; display:grid; place-items:center; border:3px solid white; border-radius:50% 50% 50% 0; color:white; background:var(--forest); box-shadow:0 3px 10px #0005; transform:rotate(-45deg); cursor:pointer; }
.community-marker span { transform:rotate(45deg); font-size:9px; font-weight:900; }
.community-footer { min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:8px 24px; color:#839088; border-top:1px solid var(--line); background:#eeede6; font-size:9px; }
.community-footer nav { display:flex; gap:13px; }.community-footer a { color:#5e6e65; }

.public-viewer-page { height:100dvh; overflow:hidden; }
.viewer-header { height:64px; }
.viewer-heading { min-width:0; flex:1; }.viewer-heading strong,.viewer-heading small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.viewer-heading strong{font-family:Georgia,serif;font-size:17px;font-weight:500}.viewer-heading small{margin-top:3px;color:#afbeb6;font-size:8px}
.viewer-layout { height:calc(100dvh - 64px); display:grid; grid-template-columns:1fr minmax(320px,390px); }
.public-view-map { position:relative; min-width:0; overflow:hidden; background:#dfe5dc; }
.public-view-map>.maplibregl-map { position:absolute; inset:0; }
.public-overlay-root { position:absolute; z-index:3; inset:0; overflow:hidden; pointer-events:none; }
.public-overlay-layer { position:absolute; top:0; left:0; transform-origin:0 0; pointer-events:none; will-change:transform; }
.public-overlay-layer img,.public-overlay-layer canvas { width:100%; height:100%; display:block; }
.compare-divider { position:absolute; z-index:6; top:0; bottom:0; left:0; width:3px; pointer-events:none; background:white; box-shadow:0 0 0 1px #173b30,0 0 14px #0008; }
.viewer-panel { position:relative; z-index:10; min-width:0; overflow:hidden; border-left:1px solid var(--line); background:var(--panel); }
.viewer-panel-toggle { display:none; }
.viewer-panel-body { height:100%; overflow-y:auto; padding:28px 24px 36px; }
.viewer-panel-body>p { margin:0 0 18px; color:var(--soft); font-size:11px; line-height:1.55; white-space:pre-line; }
.viewer-meta { margin:0 0 16px; display:grid; gap:6px; }.viewer-meta div { display:grid; grid-template-columns:70px 1fr; gap:8px; padding-bottom:6px; border-bottom:1px solid #e2e5df; }.viewer-meta dt { color:#849087;font-size:8px;font-weight:900;text-transform:uppercase}.viewer-meta dd{margin:0;font-size:10px}
.viewer-actions { display:grid; grid-template-columns:1fr 1fr; gap:6px; }.viewer-actions button{min-height:38px}.viewer-actions button:nth-child(1){grid-column:1/-1}
.viewer-tool { margin-top:16px; padding:12px; border:1px solid var(--line); border-radius:6px; background:#f2f3ed; }.viewer-tool label{display:grid;grid-template-columns:1fr;gap:7px}.viewer-tool label span{font-size:10px;font-weight:900}.viewer-tool input{width:100%;accent-color:var(--forest)}.viewer-tool output{color:var(--forest);font-size:9px;font-weight:900}.viewer-tool small{display:block;margin-top:7px;color:#79857e;font-size:8px;line-height:1.4}.viewer-tool button{margin-top:8px;width:100%}
.settings-divider { display:flex; align-items:center; gap:8px; margin:20px 0 10px; color:#859088; font-size:8px; font-weight:900; letter-spacing:.11em; text-transform:uppercase; }.settings-divider:before,.settings-divider:after{content:"";height:1px;flex:1;background:var(--line)}
.viewer-layers,.viewer-sources { display:flex; flex-direction:column; gap:7px; }.viewer-layer{display:grid;grid-template-columns:36px minmax(0,1fr) 28px;gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:5px;background:white}.viewer-layer img{width:36px;height:36px;object-fit:cover;border-radius:4px}.viewer-layer strong,.viewer-layer small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-layer strong{font-size:10px}.viewer-layer small{margin-top:3px;color:#859087;font-size:8px}.viewer-layer input[type="checkbox"]{width:20px;height:20px}.viewer-layer .viewer-opacity{grid-column:2/4;width:100%;accent-color:var(--forest)}.viewer-source{padding:10px;border:1px solid var(--line);background:white}.viewer-source strong,.viewer-source small{display:block}.viewer-source strong{font-family:Georgia,serif;font-size:13px}.viewer-source small{margin-top:5px;color:#6e7b74;font-size:8px;line-height:1.45}.viewer-source a{display:inline-block;margin-top:6px;color:var(--forest);font-size:9px;font-weight:800}
.public-viewer-page dialog { width:min(480px,calc(100% - 24px)); padding:24px; border:1px solid var(--line); background:var(--panel); box-shadow:0 20px 70px #0005; }.public-viewer-page dialog::backdrop{background:#0c2019aa}.public-viewer-page dialog h2{font-family:Georgia,serif;font-weight:500}.public-viewer-page dialog label{display:block;margin:12px 0;color:#53625b;font-size:9px;font-weight:900;text-transform:uppercase}.public-viewer-page dialog label input,.public-viewer-page dialog label textarea{margin-top:6px;text-transform:none}.public-viewer-page dialog form>div{display:flex;justify-content:flex-end;gap:8px}.public-viewer-page dialog button{padding:9px 12px}
.public-toast { position:fixed; z-index:80; left:50%; bottom:18px; max-width:min(420px,calc(100% - 24px)); padding:11px 15px; transform:translateX(-50%); color:white; border-radius:5px; background:var(--deep); box-shadow:0 9px 30px #0004; font-size:10px;font-weight:800; }
.embedded .viewer-header { display:none; }.embedded .viewer-layout { height:100dvh; }.embedded .viewer-panel { display:none; }.embedded .viewer-layout{grid-template-columns:1fr}

.legal-page { min-height:100dvh; display:flex; flex-direction:column; }.legal-content { width:min(840px,calc(100% - 32px)); margin:38px auto 64px; flex:1; }.legal-content h2{margin:30px 0 8px;font-family:Georgia,serif;font-weight:500}.legal-content p,.legal-content li{color:#526159;font-size:12px;line-height:1.7}.legal-content .legal-note{padding:14px;border-left:3px solid var(--gold);background:#f0efe8}.legal-index{display:flex;flex-wrap:wrap;gap:7px;margin:20px 0}.legal-index a{padding:7px 9px;color:var(--forest);border:1px solid var(--line);border-radius:4px;background:white;font-size:9px;font-weight:800;text-decoration:none}.contact-form{max-width:560px;display:grid;gap:12px}.contact-form label{display:grid;gap:5px;color:#526159;font-size:9px;font-weight:900;text-transform:uppercase}.support-card{max-width:650px;padding:24px;border:1px solid var(--line);background:white}.support-card ul{padding-left:20px}.support-cta{display:inline-block;margin-top:10px}

.community-header { position:sticky; top:0; z-index:60; }
.community-header .main-map-back { display:inline-flex!important; align-items:center; min-height:40px; padding:9px 12px; border:1px solid #ffffff55; border-radius:5px; white-space:nowrap; }
@media(max-width:760px){
  .viewer-header { gap:10px; }.viewer-header .community-brand b { display:none; }.viewer-header nav { flex:none; }
  .community-header{min-height:58px;padding:8px 12px}.community-header nav a:nth-child(n+2){display:none}.community-header nav{gap:2px}.library-layout{min-height:calc(100dvh - 96px);display:flex;flex-direction:column}.library-panel{padding:22px 15px;border-right:0}.library-panel h1{font-size:28px}.public-search{grid-template-columns:1fr}.library-map-wrap{min-height:46dvh}.community-footer{padding:8px 12px}.community-footer nav{gap:8px}
  .viewer-header{height:58px}.viewer-heading strong{font-size:13px}.viewer-heading small{display:none}.viewer-layout{height:calc(100dvh - 58px);display:block;position:relative}.public-view-map{height:100%}.viewer-panel{position:absolute;right:0;bottom:0;left:0;max-height:70%;border:0;border-top:1px solid var(--line);border-radius:12px 12px 0 0;box-shadow:0 -8px 25px #142a2140;transform:translateY(calc(100% - 52px));transition:transform .18s ease}.viewer-panel.open{transform:translateY(0)}.viewer-panel-toggle{width:100%;height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border:0;background:var(--panel);font-family:Georgia,serif;font-size:15px}.viewer-panel.open .viewer-panel-toggle span{transform:rotate(180deg)}.viewer-panel-body{height:calc(70dvh - 52px);padding:18px 14px 30px}.viewer-panel h1{font-size:25px}.viewer-actions{grid-template-columns:1fr 1fr}.community-header.viewer-header nav a{display:none}.embedded .viewer-layout{height:100dvh}
}
