
:root{--bg:#0b1320;--card:#111a2e;--text:#e8eefc;--accent:#00a6ff;--muted:#94a3b8}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Arial,sans-serif;background:var(--bg);color:var(--text)}
.container{max-width:900px;margin:0 auto;padding:24px}
.header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{font-size:clamp(28px,4vw,40px);font-weight:800;letter-spacing:.3px}
.subtitle{color:var(--muted);margin-top:4px}
.card{background:var(--card);border:1px solid #1f2a44;border-radius:16px;padding:24px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.button{appearance:none;border:none;background:var(--accent);color:#00131f;padding:12px 16px;border-radius:10px;font-weight:700;cursor:pointer;transition:transform .05s ease,box-shadow .2s ease;box-shadow:0 6px 16px rgba(0,166,255,.35)}
.button.secondary{background:#1e293b;color:#cbd5e1;border:1px solid #2a3b59;box-shadow:none}
.button.link{background:transparent;color:#7dd3fc;border:0;padding:0 4px;box-shadow:none}
.button:hover{transform:translateY(-1px)}
.helper{font-size:14px;color:var(--muted)}
.preview{display:flex;gap:16px;align-items:flex-start}
.preview img{max-width:220px;border-radius:12px;border:1px solid #1f2a44}
.input{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.input input[type=text]{padding:12px;border-radius:10px;border:1px solid #2a3b59;background:#0c1628;color:var(--text)}
.small{font-size:12px;color:#94a3b8}
.row{display:flex;gap:18px;align-items:flex-start}.row>.col{flex:1}
.toggle{margin-top:10px}.coords{font-size:12px;color:#cbd5e1;margin-top:6px}

/* maps */
#map{height:70vh!important;min-height:500px!important;border-radius:12px;border:1px solid #1f2a44;position:relative}
#pick-map{height:320px;border-radius:12px;border:1px solid #1f2a44;margin-top:8px}
.leaflet-popup-content img{max-width:240px;display:block;border-radius:8px;margin-top:8px}
.legend{position:fixed;right:16px;bottom:16px;background:rgba(17,26,46,.9);backdrop-filter:blur(6px);padding:10px 12px;border:1px solid #1f2a44;border-radius:12px;font-size:12px;color:#cbd5e1}
.map-error{position:absolute;inset:0;display:none;align-items:center;justify-content:center;padding:20px;text-align:center;color:#fde68a;background:rgba(15,23,42,.9);border-radius:12px;border:1px dashed #f59e0b}
