/* v0.4 art-direction */
:root{--ink:#223129;--black:#21382f;--sage:#738e79;--bg:#f7f6f2;--line:#e5e6de;--lime:#e8eadb}
body{background:var(--bg)}
.topbar{background:#fcfbf8;position:sticky;top:0;z-index:30;border-color:#e9e8e0;backdrop-filter:blur(12px);min-height:82px}
.brand{font-size:22px}.brand-mark{border-radius:50%;background:#dfe6d8;border-color:#d1d9cc}.nav-link.active{background:#e8eee6}.top-caption{font-size:9px;letter-spacing:1.65px}
.button-dark{background:#254033;border-color:#254033}.button-dark:hover{background:#385a48}
.hero{grid-template-columns:1.1fr .9fr;min-height:520px;border-color:#e5e8df;gap:3vw}
.hero-copy{padding:77px 0 95px}.hero .eyebrow{margin-bottom:28px;color:#6f876c}
.hero h1{font-size:clamp(62px,5.8vw,96px);line-height:1.025;letter-spacing:-5.7px;max-width:780px}.hero h1 em{color:#9c9e81;font-weight:400}
.hero p{font-size:16px;max-width:470px;margin-top:29px;color:#6d756b}
.hero-editorial{position:relative;height:435px;display:flex;align-items:center;justify-content:center;padding:0 10px}
.hero-photo-main{width:min(100%,480px);height:390px;border-radius:5px 125px 5px 5px;overflow:hidden;position:relative;background:#d5dbd2;box-shadow:0 25px 40px #2c3c311a}
.hero-photo-main img{width:100%;height:100%;object-fit:cover;filter:saturate(.85)}
.hero-photo-label{position:absolute;left:18px;bottom:17px;border-radius:3px;padding:9px 12px;background:#fafaf1e8;color:#405747;font-size:9px;font-weight:800;letter-spacing:1.5px}
.hero-side-note{position:absolute;right:-3px;bottom:28px;padding:16px 20px;display:flex;align-items:center;gap:13px;background:#eff0dc;border:1px solid #dce1cf;border-radius:4px;box-shadow:0 12px 24px #202a1e19;font-size:12px;line-height:1.5;color:#556655}
.hero-note-icon{display:grid;place-items:center;background:#47664e;color:white;width:37px;height:37px;border-radius:50%;font-size:19px}
.search-panel{margin-top:-40px;position:relative;z-index:5;box-shadow:0 18px 38px #31432c0e;border-color:#ecece7;border-radius:6px}
.search-main{padding:19px 24px}.search-main input{font-size:16px}.filter-row{padding:17px 16px}.filter-item{border-color:#e9e9e1}
.results-heading{margin-top:52px}.results-heading h2{font-weight:640;font-size:28px;letter-spacing:-1.1px}
.results-tools{display:flex;align-items:center;gap:18px}.view-switch{display:flex;background:#eaece5;border-radius:7px;padding:4px;gap:3px}
.view-button{background:transparent;border:0;color:#69766b;padding:9px 15px;border-radius:5px;font-weight:750;font-size:12px;display:flex;align-items:center;gap:7px;white-space:nowrap}
.view-button.active{background:white;color:#30493b;box-shadow:0 3px 8px #26392817}
.cards-grid{gap:21px}.item-card{border:0;background:#fff;border-radius:6px;box-shadow:0 1px 0 #dce2d8;overflow:hidden}.item-card:hover{box-shadow:0 18px 38px #293b2e22;transform:translateY(-4px)}
.card-image{height:248px;background:#e6e6de}.modern-card-image img{transition:transform .55s ease}.item-card:hover .modern-card-image img{transform:scale(1.035)}
.card-badge{background:#fafbf3ef;color:#475744;letter-spacing:.65px;top:15px;left:15px}.card-body{padding:22px 22px 19px}
.card-brand{color:#879781;font-size:11px}.card-title{font-size:23px}.card-variant{font-size:12px}.card-divider{background:#ecede8}
.card-location{align-items:center}.card-arrow{width:35px;height:35px;border-radius:50%;background:#edf2e8;display:grid;place-items:center;font-size:18px}
.item-card .card-image[data-demo]::after{content:'Symbolfoto · Demo';position:absolute;right:12px;bottom:12px;font-size:10px;color:#515a4f;padding:6px 8px;background:#f7f8eeea;border-radius:3px}
.map-results{display:grid;grid-template-columns:minmax(270px,.39fr) minmax(0,.61fr);height:min(650px,74vh);min-height:460px;border-radius:8px;background:#fff;border:1px solid #e1e4df;overflow:hidden}
.map-side{overflow:hidden;display:flex;flex-direction:column;border-right:1px solid #e4e7e1}.map-side-header{padding:26px;border-bottom:1px solid #ecede7}.map-side-header h3{font-size:25px;letter-spacing:-.9px;margin:10px 0 7px}.map-side-header p{font-size:12px;line-height:1.5;margin:0;color:#7e8a7d}.map-list{overflow-y:auto;flex:1}.map-list-row{display:flex;align-items:center;width:100%;gap:12px;text-align:left;padding:13px 16px;border:0;border-bottom:1px solid #ecefe8;background:white;cursor:pointer}.map-list-row:hover{background:#f4f6f1}.map-list-copy{flex:1;display:flex;flex-direction:column;gap:5px}.map-list-copy b{font-size:12px}.map-list-copy small{font-size:11px;color:#8b938b}.map-mini-image{width:62px;height:55px;overflow:hidden;background:#e6e6dc;border-radius:4px;flex-shrink:0}.map-mini-image img{width:100%;height:100%;object-fit:cover}.map-canvas{width:100%;height:100%;background:#e6ece5;z-index:1}.map-list-empty{padding:25px;color:#777;font-size:12px}.map-unavailable{height:100%;display:grid;place-items:center;padding:30px;text-align:center;font-size:14px;color:#657b66}.map-popup{display:flex;flex-direction:column;gap:7px;min-width:170px}.map-popup b{font-size:13px}.map-popup span,.popup-disclaimer{font-size:11px;color:#7b817b}.popup-action{border:0;background:#254033;color:#fff;padding:8px 10px;margin-top:4px;border-radius:4px;font-size:12px;cursor:pointer}.leaflet-popup-content-wrapper{border-radius:6px}.leaflet-container{font-family:inherit}
.vision-strip{background:#e9ede5;border:0;border-radius:6px;margin-top:65px}.section-title{font-weight:650}.stats{background:#eef1e9;border:0;border-radius:6px}.form-card{border-radius:7px}
.photo-manager{display:flex;flex-direction:column;gap:12px}.photo-head{display:flex;justify-content:space-between;gap:16px;align-items:center}.photo-head strong{font-size:12px}.photo-head span{font-size:11px;color:#8a9589;font-weight:400}.drop-target{display:flex!important;align-items:center;justify-content:center;flex-direction:row!important;min-height:112px;gap:15px;border:1.5px dashed #aebaac;background:#f7faf4;border-radius:7px;cursor:pointer;color:#627564!important}.drop-target:hover,.drop-target.dragover{background:#eef5e9;border-color:#65876a}.drop-icon{font-size:28px;font-weight:300;border:1px solid #b7c8b2;border-radius:50%;width:45px;height:45px;display:grid;place-items:center}.drop-target span:nth-child(2){display:flex;flex-direction:column;gap:5px}.drop-target b{font-size:12px}.drop-target small,.label-caption{font-size:11px;color:#91a091;font-weight:400}.photo-previews{display:flex;gap:10px;flex-wrap:wrap}.preview-item{position:relative;width:93px;height:88px;border-radius:5px;overflow:hidden;border:1px solid #dfe6db;background:#e6eae3}.preview-item img{width:100%;height:100%;object-fit:cover}.preview-item button{position:absolute;top:3px;right:4px;border:0;background:#122c22d9;color:white;border-radius:50%;width:23px;height:23px;font-size:17px;line-height:1;cursor:pointer}.url-option{display:flex;flex-direction:column;gap:8px}.coordinate-control{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.coordinate-control input{min-width:80px;flex:1}.coordinate-control button{padding:12px;flex-shrink:0}.map-pin-field small{font-weight:450;color:#8b948b;line-height:1.4}.pin-dialog{width:min(840px,calc(100% - 22px))}.pin-desc{font-size:13px;color:#6c756c;margin-top:-9px}.pin-map{width:100%;height:410px;border-radius:5px;overflow:hidden;background:#e6eee5}.pin-coordinates{font-size:12px;color:#627463;margin-top:10px;font-weight:700}.detail-thumbs{display:flex;gap:9px;margin-top:10px}.detail-thumb{width:72px;height:64px;padding:0;border:2px solid transparent;border-radius:5px;overflow:hidden;background:#eee;cursor:pointer}.detail-thumb.selected{border-color:#5b8c67}.detail-thumb img{width:100%;height:100%;object-fit:cover}.demo-caution{font-size:11px;color:#846b50;background:#fff6e7;border-radius:5px;padding:11px 12px}.footer-brand{font-weight:600}
@media(max-width:1120px){.hero{grid-template-columns:1.13fr .87fr;gap:18px}.hero h1{font-size:clamp(55px,6vw,74px);letter-spacing:-3.7px}.hero-photo-main{height:335px}.hero-editorial{height:375px}.card-image{height:213px}.results-tools{gap:9px}.result-meta{display:none}}
@media(max-width:740px){.topbar{position:relative}.hero{display:block;min-height:unset}.hero-copy{padding:46px 0 65px}.hero h1{font-size:clamp(52px,10.2vw,74px);letter-spacing:-3.6px}.hero p{font-size:14px}.hero-editorial{height:240px;padding:0 0 15px;margin-top:-35px}.hero-photo-main{width:100%;height:228px;border-radius:5px 72px 5px 5px}.hero-side-note{bottom:6px;right:0}.search-panel{margin-top:22px}.results-heading{align-items:center}.results-heading h2{font-size:23px}.view-button{font-size:11px;padding:8px}.view-button span{display:none}.map-results{height:min(720px,78vh);min-height:480px;grid-template-columns:1fr;grid-template-rows:210px 1fr}.map-side{border-right:0;border-bottom:1px solid #e4e7e1}.map-side-header{padding:15px}.map-side-header h3{font-size:19px;margin:5px 0}.map-side-header p{font-size:11px}.map-list{display:flex;overflow:auto;gap:8px;padding:9px}.map-list-row{min-width:220px;border:1px solid #edf0e8;border-radius:6px;padding:9px}.map-mini-image{width:49px;height:48px}.card-image{height:245px}.photo-head{flex-direction:column;align-items:start;gap:4px}.coordinate-control{display:grid;grid-template-columns:1fr 1fr}.coordinate-control button{grid-column:1/-1}.pin-map{height:330px}.view-switch{padding:3px}}

/* Hide unavailable upload control when R2 is intentionally disabled */
.drop-target.hidden-without-r2{display:none!important}

/* 0.5.2: Always render login errors INSIDE the top-layer dialog. */
.login-status{margin:14px 0 0;padding:12px 14px;border-radius:8px;background:#fff5e5;color:#71451a;border:1px solid #e9cda5;line-height:1.5;font-size:13px}.login-status[data-kind='error']{background:#fdf0ee;color:#923b2b;border-color:#efc7bd}.login-status[data-kind='success']{background:#eaf4ea;color:#25603a;border-color:#c4e2c8}.login-help{font-size:11px!important;line-height:1.5;margin:13px 0 0;color:#7b847b}.login-help a{text-decoration:underline;text-underline-offset:2px}
