:root { --ink:#18352c; --green:#34745c; --lime:#d6eb85; --paper:#f5f2e9; --white:#fff; --muted:#687b73; --line:#d9ded7; --orange:#e67542; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Gowun Dodum",sans-serif; }
button,select,textarea,input { font:inherit; }
button { cursor:pointer; }
main { width:min(1480px,calc(100% - 44px)); margin:auto; }
.topbar { height:92px; display:flex; align-items:center; justify-content:space-between; }
.brand { display:flex; gap:13px; align-items:center; color:inherit; text-decoration:none; }
.brand-mark { display:grid; place-items:center; width:42px; height:48px; background:var(--ink); color:var(--lime); border-radius:50% 50% 48% 48% / 42% 42% 58% 58%; font-weight:800; }
.brand strong { display:block; font-size:20px; line-height:1; }
.brand small { display:block; margin-top:6px; color:var(--muted); font:700 9px/1 Manrope,sans-serif; letter-spacing:1.8px; }
.top-actions { display:flex; align-items:center; gap:22px; }
.text-button { border:0; background:transparent; color:var(--ink); }
.permission-control { display:flex; align-items:center; gap:9px; padding:8px 12px; background:#fff9; border:1px solid var(--line); border-radius:99px; }
.status-dot,.live-dot { width:8px; height:8px; border-radius:50%; background:#55a56f; box-shadow:0 0 0 4px #55a56f25; }
.permission-control select { border:0; color:var(--ink); background:transparent; outline:0; }
.hero-card { min-height:680px; display:grid; grid-template-columns:38% 62%; overflow:hidden; border-radius:28px; background:var(--ink); box-shadow:0 22px 60px #18352c20; }
.hero-copy { padding:76px 66px; color:white; position:relative; overflow:hidden; }
.hero-copy:after { content:""; position:absolute; width:280px; height:280px; border:65px solid #4d7d6728; border-radius:50%; bottom:-170px; right:-110px; }
.eyebrow { margin:0 0 22px; color:var(--lime); font:800 11px/1 Manrope,sans-serif; letter-spacing:2.5px; }
h1 { margin:0; font-size:clamp(54px,5.2vw,82px); font-weight:400; line-height:1.08; letter-spacing:-4px; }
h1 em { color:var(--lime); font-style:normal; }
.hero-description { max-width:350px; margin:34px 0 52px; color:#d8e0dc; font-size:17px; line-height:1.85; }
.hero-meta { display:flex; gap:40px; padding-top:30px; border-top:1px solid #ffffff22; }
.hero-meta div { display:flex; flex-direction:column; }
.hero-meta strong { font:700 29px/1 Manrope,sans-serif; color:var(--lime); }
.hero-meta span { margin-top:9px; color:#afbeb8; font-size:13px; }
.map-shell { position:relative; min-height:680px; }
#map { position:absolute; inset:0; background:#d8e1da; }
.map-overlay,.legend { position:absolute; z-index:2; background:#fffffff0; box-shadow:0 5px 18px #18352c18; backdrop-filter:blur(8px); }
.top-left { top:22px; left:22px; display:flex; align-items:center; gap:10px; padding:12px 16px; border-radius:12px; }
.hint { left:50%; bottom:25px; transform:translateX(-50%); padding:13px 19px; border-radius:99px; white-space:nowrap; color:var(--muted); font-size:13px; }
.legend { display:flex; align-items:center; gap:7px; right:18px; top:18px; padding:10px 13px; border-radius:10px; font-size:11px; }
.legend i { display:block; width:8px; height:8px; border-radius:50%; margin-left:5px; }.legend b{font-weight:400;color:var(--muted)}
.level-1{background:#78a98b}.level-3{background:#e8b959}.level-5{background:#de654d}
.how-to { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin:38px 0 70px; background:var(--line); border:1px solid var(--line); border-radius:20px; overflow:hidden; }
.how-to div { padding:30px; background:#faf8f1; }.how-to span{color:var(--green);font:800 11px Manrope;letter-spacing:1px}.how-to strong{display:block;margin:10px 0 5px;font-size:18px}.how-to p{margin:0;color:var(--muted);font-size:14px}
.modal-backdrop { position:fixed; z-index:20; inset:0; display:grid; place-items:center; padding:20px; background:#10251f99; backdrop-filter:blur(7px); }
.modal-backdrop[hidden] { display:none; }
.report-modal { position:relative; width:min(540px,100%); max-height:94vh; overflow:auto; padding:38px; border-radius:24px; background:#fbfaf5; box-shadow:0 30px 80px #071a1466; }
.report-modal .eyebrow{margin-bottom:9px;color:var(--green)}.report-modal h2{margin:0;font-size:30px}.coordinate{margin:5px 0 24px;color:var(--muted);font:600 11px Manrope}
.close-button{position:absolute;right:23px;top:20px;width:36px;height:36px;border:0;border-radius:50%;background:#edf0ea;color:var(--ink);font-size:24px}
.upload-box{height:165px;display:grid;place-items:center;overflow:hidden;border:1.5px dashed #aebbb4;border-radius:15px;background:#f2f3ed;cursor:pointer}.upload-box input{display:none}.upload-box img{width:100%;height:100%;object-fit:cover}.upload-box span{text-align:center}.upload-box b{display:grid;place-items:center;width:43px;height:43px;margin:0 auto 9px;border-radius:50%;background:var(--ink);color:var(--lime);font-size:24px}.upload-box strong,.upload-box small{display:block}.upload-box small{margin-top:5px;color:var(--muted);font-size:11px}
fieldset{border:0;padding:0;margin:25px 0}legend,.description-label{font-weight:700;margin-bottom:10px}legend small,.description-label small{color:var(--orange);font-size:11px;margin-left:3px}.intensity-options{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.intensity-options input{position:absolute;opacity:0}.intensity-options span{display:grid;place-items:center;height:62px;border:1px solid var(--line);border-radius:11px;background:white;font:700 17px Manrope;color:var(--ink)}.intensity-options small{font:400 9px "Gowun Dodum";color:var(--muted)}.intensity-options input:checked+span{border-color:var(--orange);background:#fff1e9;color:var(--orange);box-shadow:inset 0 0 0 1px var(--orange)}
.description-label{display:block}textarea{display:block;width:100%;height:88px;margin-top:10px;padding:13px;border:1px solid var(--line);border-radius:11px;resize:vertical;outline:0}textarea:focus{border-color:var(--green)}.form-error{min-height:18px;margin:8px 0;color:#b64433;font-size:12px}.submit-button{width:100%;display:flex;justify-content:space-between;padding:15px 18px;border:0;border-radius:11px;background:var(--ink);color:white}.submit-button span{color:var(--lime)}
.toast{position:fixed;z-index:30;left:50%;bottom:30px;transform:translate(-50%,25px);padding:13px 20px;border-radius:99px;background:var(--ink);color:#fff;opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}
.maplibregl-popup-content{padding:0!important;border-radius:16px!important;overflow:hidden;box-shadow:0 16px 44px #17372b35!important}.detail-card{width:260px}.detail-card img{display:block;width:100%;height:145px;object-fit:cover}.detail-body{padding:15px}.detail-top{display:flex;justify-content:space-between;align-items:center}.detail-level{padding:5px 8px;border-radius:99px;background:#fff0e8;color:#c95431;font-weight:700}.detail-card p{margin:11px 0;color:#40564e;line-height:1.5}.detail-card small{color:#84918c}.maplibregl-popup-close-button{font-size:20px;padding:7px;color:white;text-shadow:0 1px 4px #000;background:#0003!important}
@media(max-width:900px){main{width:min(100% - 24px,700px)}.hero-card{grid-template-columns:1fr}.hero-copy{padding:50px 35px}.map-shell{min-height:560px}.how-to{grid-template-columns:1fr}.legend{display:none}}
@media(max-width:520px){.topbar{height:75px}.text-button{display:none}.hero-copy{padding:42px 25px}.hero-meta{gap:23px}.report-modal{padding:28px 20px}.intensity-options span{height:58px}.hint{max-width:85%;white-space:normal;text-align:center}}

/* City Tree Club에서 영감을 받은 playful neighborhood map */
:root{
  --ink:#152d26;
  --green:#1e4d3f;
  --lime:#cfff56;
  --paper:#f4f1e7;
  --lavender:#b9a8ff;
  --violet:#806df0;
  --orange:#ff7657;
  --line:#152d26;
  --muted:#53665f;
}
body{
  background-color:var(--lavender);
  background-image:radial-gradient(#7664d8 1px,transparent 1px);
  background-size:18px 18px;
}
main{width:min(1440px,calc(100% - 34px));}
.topbar{
  height:82px;
  margin:14px 0;
  padding:0 20px;
  border:2px solid var(--ink);
  border-radius:18px;
  background:var(--paper);
  box-shadow:5px 5px 0 var(--ink);
}
.brand-mark{
  width:45px;height:45px;
  border:2px solid var(--ink);
  border-radius:50% 48% 42% 52%;
  background:var(--lime);color:var(--ink);
  box-shadow:3px 3px 0 var(--ink);
  transform:rotate(-7deg);
}
.brand strong{font-size:19px;letter-spacing:-.5px}.brand small{color:#735fe0}
.text-button{padding:8px 13px;border:1.5px solid var(--ink);border-radius:99px;background:white;font-weight:700;box-shadow:2px 2px 0 var(--ink)}
.permission-control{border:2px solid var(--ink);background:var(--lime);box-shadow:3px 3px 0 var(--ink)}
.status-dot{background:var(--ink);box-shadow:none}.permission-control select{font-weight:700}
.hero-card{
  min-height:calc(100vh - 125px);
  grid-template-columns:34% 66%;
  padding:12px;
  gap:12px;
  overflow:visible;
  border:2px solid var(--ink);
  border-radius:25px;
  background:var(--paper);
  box-shadow:8px 8px 0 var(--ink);
}
.hero-copy{
  min-height:640px;
  padding:58px 42px 38px;
  overflow:hidden;
  border:2px solid var(--ink);
  border-radius:16px;
  background:var(--green);
}
.hero-copy:before{
  content:"☺";
  position:absolute;right:22px;top:18px;
  display:grid;place-items:center;width:54px;height:54px;
  border:2px solid var(--ink);border-radius:48% 52% 45% 55%;
  background:var(--lavender);color:var(--ink);font:800 28px Manrope;
  transform:rotate(8deg);box-shadow:3px 3px 0 var(--ink);
}
.hero-copy:after{width:240px;height:240px;border:0;background:repeating-radial-gradient(circle,var(--lime) 0 4px,transparent 5px 14px);opacity:.13;bottom:-110px;right:-75px}
.eyebrow{display:inline-block;margin-bottom:28px;padding:8px 10px;border:1.5px solid var(--lime);border-radius:99px;color:var(--lime);font-size:9px}
h1{font-family:Manrope,"Gowun Dodum",sans-serif;font-size:clamp(43px,4vw,67px);font-weight:800;line-height:1.03;letter-spacing:-4px}
h1 em{display:inline-block;margin-top:8px;padding:1px 8px 7px;background:var(--lime);color:var(--ink);font-style:normal;transform:rotate(-1.5deg)}
.hero-description{margin:30px 0 42px;color:#e9eee8;font-size:15px;line-height:1.75}
.hero-meta{gap:12px;padding-top:0;border:0;flex-wrap:wrap}.hero-meta div{min-width:85px;padding:13px;border:1.5px solid #d4dfd8;border-radius:10px;background:#fff;color:var(--ink);box-shadow:3px 3px 0 #0c201a}.hero-meta strong{color:var(--ink);font-size:21px}.hero-meta span{margin-top:5px;color:var(--muted);font-size:11px}
.map-shell{min-height:640px;border:2px solid var(--ink);border-radius:16px;background:#b4a3ff;overflow:hidden}
#map{inset:8px;border:2px solid var(--ink);border-radius:11px;overflow:hidden}
.map-overlay,.legend{border:1.5px solid var(--ink);box-shadow:3px 3px 0 var(--ink);backdrop-filter:none}
.top-left{top:23px;left:23px;background:var(--lime)}.live-dot{background:var(--ink);box-shadow:none}
.hint{bottom:22px;background:var(--lavender);color:var(--ink);font-weight:700}
.legend{right:23px;top:23px;background:var(--paper)}
.maplibregl-ctrl-group{border:1.5px solid var(--ink)!important;box-shadow:3px 3px 0 var(--ink)!important}.maplibregl-ctrl button{background-color:var(--lavender)!important}
.how-to{gap:12px;margin-top:30px;background:transparent;border:0;overflow:visible}.how-to div{position:relative;border:2px solid var(--ink);border-radius:15px;background:var(--paper);box-shadow:5px 5px 0 var(--ink)}.how-to div:nth-child(2){background:var(--lime)}.how-to div:nth-child(3){background:#ffd9cf}.how-to span{color:#735fe0}.how-to strong{font-family:Manrope,"Gowun Dodum"}
.modal-backdrop{background:#1a3029a8}.report-modal{border:2px solid var(--ink);border-radius:18px;background:var(--lavender);box-shadow:8px 8px 0 var(--ink)}.report-modal .eyebrow{color:var(--ink);border-color:var(--ink);background:var(--lime)}.close-button{border:1.5px solid var(--ink);background:var(--paper);box-shadow:2px 2px 0 var(--ink)}
.upload-box{border:2px dashed var(--ink);background:var(--paper)}.upload-box b{border:1.5px solid var(--ink);background:var(--lime);color:var(--ink);box-shadow:2px 2px 0 var(--ink)}
.intensity-options span,textarea{border:1.5px solid var(--ink);box-shadow:2px 2px 0 var(--ink)}.intensity-options input:checked+span{border-color:var(--ink);background:var(--lime);color:var(--ink);box-shadow:3px 3px 0 var(--ink)}
.submit-button{border:2px solid var(--ink);background:var(--lime);color:var(--ink);font-weight:800;box-shadow:4px 4px 0 var(--ink)}.submit-button:active,.text-button:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.submit-button span{color:var(--ink)}
.toast{border:2px solid var(--ink);background:var(--lime);color:var(--ink);font-weight:700;box-shadow:4px 4px 0 var(--ink)}
.maplibregl-popup-content{border:2px solid var(--ink);box-shadow:5px 5px 0 var(--ink)!important}.detail-level{background:var(--lime);color:var(--ink)}
@media(max-width:900px){main{width:min(100% - 22px,700px)}.hero-card{grid-template-columns:1fr;padding:8px}.hero-copy{min-height:auto;padding:48px 30px}.map-shell{min-height:590px}.how-to{grid-template-columns:1fr}.legend{display:none}}
@media(max-width:520px){.topbar{height:68px;margin:9px 0;padding:0 12px}.brand-mark{width:39px;height:39px}.brand strong{font-size:16px}.top-actions{gap:7px}.permission-control{padding:6px 8px}.hero-card{min-height:auto}.hero-copy{padding:42px 22px 30px}.hero-copy:before{display:none}h1{font-size:42px}.map-shell{min-height:540px}.hero-meta div{min-width:calc(33% - 8px);padding:10px}.top-left{top:20px;left:20px}.hint{bottom:20px}.report-modal{padding:28px 19px}}

/* Map-only centered layout */
body{
  min-height:100vh;
  background:#f5d84b;
  background-image:none;
}
main{
  width:100%;
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:28px;
}
.topbar,.hero-copy,.how-to{display:none;}
.hero-card{
  display:block;
  width:min(1180px,100%);
  min-height:0;
  height:calc(100vh - 56px);
  max-height:820px;
  padding:10px;
  border:3px solid var(--ink);
  border-radius:25px;
  background:#f5d84b;
  box-shadow:9px 9px 0 var(--ink);
}
.map-shell{
  width:100%;
  height:100%;
  min-height:0;
  border:2px solid var(--ink);
  border-radius:15px;
  background:#f5d84b;
}
#map{inset:7px;}
@media(max-width:700px){
  main{padding:13px;}
  .hero-card{height:calc(100vh - 26px);padding:7px;border-radius:19px;box-shadow:6px 6px 0 var(--ink);}
  .map-shell{min-height:0;}
}

.welcome-popup{
  position:fixed;
  z-index:100;
  inset:0;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(0,0,0,.48);
}
.welcome-popup[hidden]{display:none;}
.welcome-popup-card{
  position:relative;
  width:min(430px,88vw);
  max-height:88vh;
  overflow:hidden;
  padding:18px;
  border:2px solid #000;
  border-radius:16px;
  background:#fff;
}
.welcome-popup-card img{
  display:block;
  width:100%;
  max-height:calc(88vh - 36px);
  object-fit:contain;
}
.welcome-popup-close{
  position:absolute;
  z-index:2;
  top:12px;
  right:12px;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  padding:0;
  border:1px solid #000;
  border-radius:50%;
  background:#fff;
  color:#000;
  font-size:25px;
  line-height:1;
}
.tutorial-card{width:min(560px,92vw);padding:20px;overflow:visible;}
.tutorial-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;color:#000;}
.tutorial-head strong{font-size:18px;}.tutorial-head span{font:700 12px Manrope,sans-serif;}
.tutorial-viewport{
  position:relative;
  width:100%;
  height:390px;
  overflow:hidden;
  border:1px solid #000;
  border-radius:10px;
  background:#f3efe2;
}
.welcome-popup-card,.tutorial-card{background:#fff;}
.tutorial-slide{background:#f3efe2;}
.tutorial-track{
  display:flex;
  width:400%;
  height:100%;
  transition:transform .38s cubic-bezier(.22,.8,.25,1);
}
.tutorial-slide{
  width:25%;
  height:100%;
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:190px auto;
  align-items:center;
  justify-items:center;
  align-content:center;
  gap:10px;
  padding:20px 34px;
  color:#000;
}
.tutorial-slide img{
  display:block;
  width:min(180px,48%);
  height:180px;
  max-height:none;
  object-fit:contain;
}
.tutorial-slide>div{width:min(430px,100%);text-align:center;}
.tutorial-slide h2{
  margin:0 0 14px;
  font:800 20px/1.3 Manrope,"Gowun Dodum",sans-serif;
  letter-spacing:-.7px;
}
.tutorial-slide p{
  margin:0;
  color:#303632;
  font-size:14px;
  line-height:1.75;
}
.tutorial-dots{display:flex;justify-content:center;gap:7px;margin:15px 0;}
.tutorial-dots i{display:block;width:7px;height:7px;border:1px solid #000;border-radius:50%;background:#fff;transition:.2s;}
.tutorial-dots i.active{width:22px;border-radius:99px;background:#f7dc45;}
.tutorial-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.tutorial-actions button{padding:12px;border:1px solid #000;border-radius:8px;background:#fff;color:#000;font-weight:700;}
.tutorial-actions button:last-child{background:#f7dc45;}.tutorial-actions button:disabled{opacity:.35;cursor:default;}

/* Mobile app layout */
@media(max-width:700px){
  html,body{width:100%;height:100%;}
  body{min-height:100svh;overflow:hidden;}
  main{
    width:100%;
    height:100svh;
    min-height:0;
    padding:10px 10px 12px;
    gap:10px;
    overflow:hidden;
  }
  .map-logo-header{
    width:100%;
    height:66px;
    flex:0 0 66px;
  }
  .map-logo-header img{
    width:auto;
    height:58px;
    max-width:72vw;
  }
  .hero-card{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    flex:1 1 auto;
    border-width:1.5px!important;
    border-radius:12px!important;
  }
  .map-shell,#map{border-radius:10px!important;}
  .top-left{
    top:12px;
    left:12px;
    max-width:calc(100% - 76px);
    padding:8px 10px;
    gap:7px;
    border-radius:8px;
    font-size:12px;
    line-height:1.2;
  }
  .live-dot{width:7px;height:7px;flex:0 0 7px;}
  .maplibregl-ctrl-bottom-right{right:8px;bottom:8px;}
  .maplibregl-ctrl-bottom-right .maplibregl-ctrl{margin:0;}
  .maplibregl-ctrl-group button{width:34px;height:34px;}
  .welcome-popup{padding:14px;}
  .welcome-popup-card{
    width:min(360px,100%);
    max-height:90svh;
    padding:12px;
    border-radius:14px;
  }
  .welcome-popup-card img{max-height:calc(90svh - 24px);}
  .welcome-popup-close{top:9px;right:9px;width:34px;height:34px;font-size:22px;}
  .tutorial-card{width:100%;padding:14px;}
  .tutorial-card img{max-height:none;}
  .tutorial-head{margin-bottom:11px;}.tutorial-head strong{font-size:15px;}
  .tutorial-actions button{padding:11px 8px;}
  .tutorial-viewport{height:430px;}
  .tutorial-slide{grid-template-columns:1fr;grid-template-rows:170px auto;gap:7px;padding:13px 17px;align-content:center;}
  .tutorial-slide img{width:min(150px,52%);height:160px;}
  .tutorial-slide h2{margin-bottom:9px;font-size:17px;}
  .tutorial-slide p{font-size:12.5px;line-height:1.6;}
}
@media(max-width:390px){
  .map-logo-header{height:58px;flex-basis:58px;}
  .map-logo-header img{height:51px;max-width:68vw;}
  .top-left{font-size:11px;}
}

.site-footer{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:32px;
  border:0;
  border-top:1px solid #000;
  background:#fff;
  color:#000;
  font:700 13px Manrope,"Gowun Dodum",sans-serif;
  letter-spacing:.2px;
}
.site-footer{gap:14px;flex-wrap:wrap;padding:0 12px;}
.site-footer a{color:#000;text-underline-offset:2px;}
.map-credit{font-size:10px;font-weight:400;color:#555;}
.map-status{
  position:absolute;
  z-index:4;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f3efe2;
  color:#000;
  font-size:13px;
}
#map-loading{background:rgba(243,239,226,.72);pointer-events:none;}
.map-status[hidden]{display:none;}
.map-error{flex-direction:column;gap:8px;text-align:center;padding:24px;}
.map-error strong{font-size:17px;}.map-error span{color:#555;}
.map-error button{padding:9px 14px;border:1px solid #000;border-radius:7px;background:#fff;color:#000;}
main{min-height:calc(100vh - 32px);padding-bottom:4px;}
@media(max-width:700px){
  body{overflow:hidden;}
  main{height:calc(100svh - 30px);min-height:0;padding-bottom:2px;}
  .site-footer{height:30px;font-size:11px;}
  .map-credit{display:none;}
}

.map-top-element{
  width:clamp(340px,34vw,480px);
  min-width:340px;
  aspect-ratio:933 / 1305;
  height:auto;
  flex:0 0 auto;
  pointer-events:none;
}
.map-top-element img{display:block;width:100%;height:100%;object-fit:contain;}
@media(max-width:700px){
  .map-top-element{width:230px;min-width:230px;height:auto;}
}

/* Compact black frame, flat controls */
.hero-card{
  width:min(940px,calc(100% - 40px));
  height:min(650px,calc(100vh - 210px));
  min-height:480px;
  border:2px solid #111;
  border-radius:14px;
  box-shadow:none;
}
.map-shell,#map{border-radius:11px;}
.map-overlay,
.maplibregl-ctrl-group,
.submit-button,
.close-button,
.text-button,
.permission-control,
.upload-box b,
.intensity-options span,
textarea{
  border-color:#111!important;
  box-shadow:none!important;
}
.maplibregl-ctrl-group{border:1px solid #111!important;}
button{box-shadow:none!important;}
@media(max-width:700px){
  .hero-card{
    width:100%;
    height:calc(100vh - 125px);
    min-height:430px;
    border-radius:11px;
  }
}

/* Green map field + single yellow frame */
body{background:#124c38;}
.hero-card{
  padding:0;
  border:3px solid #f7dc45;
  border-radius:18px;
  background:#124c38;
  box-shadow:none;
}
.map-shell{
  border:0;
  border-radius:14px;
  background:#124c38;
}
#map{
  inset:0;
  border:0;
  border-radius:14px;
}
@media(max-width:700px){
  .hero-card{padding:0;border-radius:14px;box-shadow:none;}
}

/* Ivory map chrome */
.top-left,.hint{background:#f3efe2;color:#244b3e;}
.maplibregl-ctrl-group{background:#f3efe2!important;}
.maplibregl-ctrl button{background-color:#f3efe2!important;}
.maplibregl-ctrl button:hover{background-color:#e7e0cf!important;}

/* Centered logo header and ivory page */
body{background:#f3efe2;}
main{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
}
.map-logo-header{
  height:92px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.map-logo-header img{
  display:block;
  width:auto;
  height:78px;
  max-width:min(360px,80vw);
}
.hero-card{height:calc(100vh - 166px);}
@media(max-width:700px){
  main{gap:10px;}
  .map-logo-header{height:68px;}
  .map-logo-header img{height:56px;}
  .hero-card{height:calc(100vh - 104px);}
}

/* Final color lock */
body{background:#fff!important;}
.hero-card{
  border:2px solid #000!important;
  box-shadow:none!important;
}
.map-shell,#map{border:0!important;}
button,
button *,
.map-overlay,
.map-overlay *,
.maplibregl-ctrl button,
.submit-button,
.close-button{
  color:#000!important;
}
.maplibregl-ctrl-group,
.maplibregl-ctrl button,
.map-overlay{
  border-color:#000!important;
  box-shadow:none!important;
}
.maplibregl-ctrl-group,
.maplibregl-ctrl button,
.maplibregl-ctrl button:hover{
  background:#fff!important;
  background-color:#fff!important;
}
.admin-button{
  position:absolute;
  z-index:3;
  top:23px;
  right:23px;
  padding:12px 16px;
  border:1px solid #000;
  border-radius:10px;
  background:#f3efe2;
  font-weight:700;
}
.admin-button.active{background:#f7dc45;}
.delete-report{
  width:100%;
  margin-top:14px;
  padding:9px 12px;
  border:1px solid #000;
  border-radius:7px;
  background:#fff;
  color:#000;
  font-weight:700;
}
.delete-report:hover{background:#f7dc45;}

/* Larger logo, smaller map */
.map-logo-header{height:138px;}
.map-logo-header img{
  height:120px;
  max-width:min(520px,84vw);
}
.hero-card{
  width:min(820px,calc(100% - 60px));
  height:min(540px,calc(100vh - 250px));
  min-height:390px;
}
@media(max-width:700px){
  .map-logo-header{height:98px;}
  .map-logo-header img{height:84px;max-width:82vw;}
  .hero-card{
    width:100%;
    height:calc(100vh - 145px);
    min-height:390px;
  }
}

/* Balanced vertical composition */
main{
  width:100%;
  min-height:100vh;
  justify-content:flex-start;
  gap:22px;
  padding:26px 24px 64px;
  overflow:hidden;
}
.map-logo-header{
  width:min(900px,100%);
  height:132px;
  flex:0 0 132px;
}
.map-logo-header img{
  height:122px;
  max-width:min(530px,84vw);
}
.hero-card{
  width:min(900px,calc(100% - 32px));
  height:520px;
  min-height:520px;
  flex:0 0 520px;
  border-radius:16px;
}
.map-shell,#map{border-radius:14px;}
.map-top-element{
  width:clamp(260px,28vw,360px);
  min-width:260px;
  height:290px;
  aspect-ratio:auto;
  margin-top:-6px;
  overflow:hidden;
}
.map-top-element img{
  width:100%;
  height:auto;
  object-fit:contain;
  object-position:top center;
}
.top-left{
  background:#fff!important;
  color:#000!important;
}
@media(max-width:700px){
  main{gap:14px;padding:16px 13px 42px;}
  .map-logo-header{height:92px;flex-basis:92px;}
  .map-logo-header img{height:84px;max-width:82vw;}
  .hero-card{
    width:100%;
    height:500px;
    min-height:500px;
    flex-basis:500px;
  }
  .map-top-element{
    width:220px;
    min-width:220px;
    height:230px;
    margin-top:0;
  }
  .top-left{top:16px;left:16px;padding:10px 12px;}
}
