:root{
  --forest:#0c2a18; --forest-2:#0f3a20; --emerald:#0f7a29; --emerald-l:#46d15f;
  --paper:#f5f8f5; --line:rgba(255,255,255,.14); --ink:#0c2a18;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#fff;background:var(--forest)}

.q-header{display:flex;align-items:center;gap:1rem;padding:.6rem 1rem;background:var(--forest-2);
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1000}
.q-brand{display:flex;align-items:center;gap:.5rem;color:#fff;text-decoration:none;font-weight:700}
.q-brand span{color:var(--emerald-l)}
.q-title{font-weight:600;opacity:.8}
.q-auth{margin-left:auto;font-size:.9rem;opacity:.9}
.q-auth a{color:var(--emerald-l)}

.q-layout{display:grid;grid-template-columns:1fr 380px;height:calc(100% - 53px)}
.q-map-wrap{position:relative}
#map{position:absolute;inset:0}
.q-map-hint{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:500;
  background:rgba(12,42,24,.85);padding:.5rem .9rem;border-radius:999px;font-size:.82rem;pointer-events:none}

.q-panel{background:var(--forest-2);border-left:1px solid var(--line);padding:1.1rem;overflow-y:auto}
.q-panel h1{font-size:1.15rem;margin:.2rem 0 1rem}

.q-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem}
.q-metrics div{background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:10px;padding:.55rem}
.q-label{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;opacity:.6}
.q-value{font-weight:700}

.q-field{display:block;margin-bottom:.8rem}
.q-field span{display:block;font-size:.78rem;opacity:.75;margin-bottom:.3rem}
.q-field select,.q-contact input,.q-contact textarea{width:100%;padding:.55em .7em;border-radius:10px;
  border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;font-size:.95rem}
.q-field option{color:#111}
.q-check{display:flex;align-items:center;gap:.5rem;font-size:.85rem;margin-bottom:1rem;opacity:.9}

.q-price{display:flex;flex-direction:column;gap:.15rem;padding:.9rem;border-radius:12px;
  background:linear-gradient(135deg,var(--emerald),#0b5f20);margin-bottom:.7rem}
.q-price-total{font-size:2rem;font-weight:800;line-height:1}
.q-price-note{font-size:.8rem;opacity:.9;min-height:1em}

.q-lineitems{list-style:none;margin:0 0 1rem;padding:0;font-size:.85rem}
.q-lineitems li{display:flex;justify-content:space-between;padding:.28rem 0;border-bottom:1px dashed var(--line)}

.q-contact{border:1px solid var(--line);border-radius:12px;padding:.7rem;margin:.4rem 0 1rem}
.q-contact legend{padding:0 .4rem;font-size:.82rem;opacity:.8}
.q-contact input,.q-contact textarea{margin-bottom:.5rem}

.q-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.q-btn{flex:1;min-width:110px;padding:.7em 1em;border-radius:10px;border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.08);color:#fff;font-weight:600;cursor:pointer}
.q-btn:hover:not(:disabled){background:rgba(255,255,255,.16)}
.q-btn.primary{background:var(--emerald);border-color:transparent}
.q-btn.primary:hover:not(:disabled){background:#0b8f31}
.q-btn.ghost{width:100%;margin-bottom:1rem;flex:none}
.q-btn:disabled{opacity:.45;cursor:not-allowed}

.q-output{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.9rem}
.q-output .q-actions{margin-top:.6rem}

body.busy{cursor:progress}
body.busy .q-btn{pointer-events:none;opacity:.6}

/* Draw the Geoman toolbar a touch clearer on dark imagery */
.leaflet-pm-toolbar .leaflet-pm-icon-polygon{filter:none}

/* Locate-me button */
.eas-locate{font-size:18px;line-height:26px;text-align:center;font-weight:700;color:var(--forest)}
.eas-locate.busy{opacity:.5;pointer-events:none}
/* Keep the geocoder search legible on the dark theme */
.leaflet-control-geocoder{border-radius:8px}
.leaflet-control-geocoder-form input{min-width:230px}

@media (max-width:820px){
  .q-layout{grid-template-columns:1fr;height:auto}
  .q-map-wrap{height:52vh}
  #map{position:relative;height:100%}
  .q-panel{border-left:none;border-top:1px solid var(--line)}
}
