/* ===== Design system · Dark SaaS (compartilhado) ===== */
:root{color-scheme:dark;--red:#E11D48;--mus:#F59E0B;--bg:#0B0E14;--bg2:#0F1320;--card:#141A28;--card2:#1B2232;--line:#252D41;--text:#E8ECF4;--mut:#8D97AD;--grn:#22C55E;--blu:#38BDF8;--r:14px;
  --ac:color-mix(in srgb,var(--red) 58%,#fff);--acs:color-mix(in srgb,var(--red) 16%,transparent);--bun:var(--bg);--ink:var(--text);
  --glass:rgba(11,14,20,.78);--glass2:rgba(20,26,40,.85);--hov:rgba(255,255,255,.06);--sh1:0 1px 2px rgba(0,0,0,.45);--sh2:0 20px 44px -14px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.04);
  --gut:clamp(14px,4vw,28px);--wrap:1200px;--ease:cubic-bezier(.2,.8,.2,1)}
html[data-theme=light]{color-scheme:light;--bg:#F3F5F9;--bg2:#FFFFFF;--card:#FFFFFF;--card2:#EDF0F6;--line:#DFE4EE;--text:#131A2A;--mut:#5B677E;--ac:color-mix(in srgb,var(--red) 88%,#000);--acs:color-mix(in srgb,var(--red) 11%,transparent);
  --glass:rgba(243,245,249,.82);--glass2:rgba(255,255,255,.88);--hov:rgba(15,23,42,.05);--sh1:0 1px 2px rgba(15,23,42,.08);--sh2:0 18px 40px -14px rgba(15,23,42,.25),0 0 0 1px rgba(15,23,42,.05)}
html[data-theme=light] .mt img{filter:none}html[data-theme=light] input::placeholder{color:#9aa5ba}html[data-theme=light] dialog::backdrop{background:rgba(15,23,42,.45)}
*,*::before,*::after{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;-webkit-tap-highlight-color:transparent}
body{font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--text);min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased;
  background:radial-gradient(900px 480px at 88% -8%,color-mix(in srgb,var(--red) 15%,transparent),transparent 62%),radial-gradient(700px 400px at -5% 110%,color-mix(in srgb,var(--blu) 8%,transparent),transparent 60%),var(--bg);background-attachment:fixed;
  padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
img,svg,canvas{max-width:100%}
h1,h2,h3{letter-spacing:-.02em;font-weight:750;line-height:1.2}
button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}a{color:var(--ac)}
small{color:var(--mut)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:var(--r);padding:11px 18px;min-height:44px;font-weight:700;color:var(--on-red,#fff);text-decoration:none;text-align:center;
  background:linear-gradient(180deg,color-mix(in srgb,var(--red) 86%,#fff),var(--red));box-shadow:0 8px 20px -8px color-mix(in srgb,var(--red) 80%,transparent),inset 0 1px 0 rgba(255,255,255,.18);transition:transform .15s var(--ease),filter .15s}
.btn:hover{filter:brightness(1.1)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;pointer-events:none}
.btn.alt{background:var(--card2);color:var(--text);border:1px solid var(--line);box-shadow:none}.btn.alt:hover{border-color:var(--mut)}
.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line);box-shadow:none}.btn.ghost:hover{background:var(--hov)}
.btn.wa{background:linear-gradient(180deg,#2bd46a,#16a34a);color:#04210f;width:100%;font-size:16px;min-height:52px;box-shadow:0 10px 24px -10px rgba(34,197,94,.7)}
.btn.sm{padding:6px 12px;min-height:34px;font-size:13px;border-radius:10px!important}

input,select,textarea{width:100%;padding:11px 14px;min-height:46px;font-size:16px;border:1px solid var(--line);border-radius:12px;background:var(--bg2);transition:border-color .15s,box-shadow .15s}
input::placeholder,textarea::placeholder{color:#5d6781}textarea{resize:vertical}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--red);box-shadow:0 0 0 4px var(--acs)}
input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--red)}input[type=range]{padding:0;min-height:32px}
label{display:block;font-weight:600;font-size:13px;color:var(--mut);margin:14px 0 6px}
:focus-visible{outline:2px solid var(--ac);outline-offset:2px}::selection{background:var(--red);color:#fff}

dialog{border:1px solid var(--line);color:var(--text);background:var(--card);box-shadow:var(--sh2);overscroll-behavior:contain}
dialog::backdrop{background:rgba(5,7,12,.7);backdrop-filter:blur(6px)}
dialog[open]{animation:pop .28s var(--ease)}@keyframes pop{from{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}

.card{background:var(--card);padding:18px;margin-bottom:14px;border-radius:var(--r);border:1px solid var(--line);box-shadow:var(--sh1)}
.card>b:first-child{display:block;font-size:16px;margin-bottom:6px}
.empty{color:var(--mut);padding:18px;text-align:center}.hide{display:none!important}
::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-thumb{background:var(--line);border-radius:9px}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* mapa (tiles escurecidos via filtro) */
.smap{position:relative;height:55dvh;min-height:300px;overflow:hidden;background:#0d1117;touch-action:none;border-radius:var(--r);margin:12px 0;user-select:none;border:1px solid var(--line)}
.mt,.mr,.mk{position:absolute;left:0;top:0;width:100%;height:100%}.mr,.mk{pointer-events:none}.mt{overflow:hidden}
.mt img{position:absolute;left:0;top:0;width:256px;height:256px;max-width:none;filter:invert(1) hue-rotate(180deg) brightness(.82) contrast(.92) saturate(.6)}
.pin{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;margin:-18px 0 0 -18px;width:36px}
.dv{width:36px;height:36px;border-radius:50%;background:var(--red);display:grid;place-items:center;border:3px solid #fff;box-shadow:0 0 0 6px var(--acs),0 2px 8px #000a;font-size:18px}.dv.off{background:#64748b}
.dn{background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:0 6px;font-size:12px;white-space:nowrap;margin-top:3px}.fl{font-size:26px;filter:drop-shadow(0 2px 4px #000)}
.mz{position:absolute;right:8px;top:8px;display:flex;flex-direction:column;gap:6px}.mz button{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--text);font-size:20px;font-weight:700}
.ma{position:absolute;right:4px;bottom:2px;font-size:10px;background:#000a;color:#bbb;padding:0 4px}
