/* Paga? — MapLibre 3D, pill bar, cursor Waze, Manrope. */
@font-face{font-family:'Manrope';src:url('lib/manrope.ttf') format('truetype');font-weight:200 800;font-display:swap}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;font-family:'Manrope',system-ui,-apple-system,sans-serif;background:#E9E1D0;overflow:hidden}
#map{position:fixed;inset:0}
.maplibregl-ctrl-attrib{font-size:9px;opacity:.45}
.maplibregl-ctrl-attrib a{color:#6a6a62}

/* pins */
.pin3d{width:0;height:0;position:relative;cursor:pointer}
.pin3d .dot{position:absolute;left:0;top:0;width:16px;height:16px;border-radius:50%;background:var(--c);border:2.5px solid #fff;transform:translate(-50%,-50%);box-shadow:0 2px 6px rgba(0,0,0,.4)}
.pin3d .halo{position:absolute;left:0;top:0;width:34px;height:34px;border-radius:50%;background:var(--c);opacity:.22;transform:translate(-50%,-50%)}
.pin3d[data-state="fora"] .dot{background:#3a3f45}

/* cursor azul 3D estilo Waze */
.wazecursor{width:44px;height:44px;filter:drop-shadow(0 3px 5px rgba(0,0,0,.35))}
.wazecursor svg{width:44px;height:44px;display:block}

/* hint (topo) */
.hint{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 12px);transform:translateX(-50%);z-index:600;
  background:rgba(255,255,255,.95);color:#4a4a44;padding:10px 18px;border-radius:99px;font-size:.88rem;font-weight:600;
  box-shadow:0 3px 14px rgba(0,0,0,.14);max-width:92vw;text-align:center;transition:background .25s,color .25s}
.hint.live{background:#1a7a3f;color:#fff}

/* pill bar (uma barra, cantos de cima arredondados) — o fundo estica até ao fundo do ecrã */
.bar{position:fixed;left:0;right:0;bottom:0;z-index:600;display:flex;justify-content:space-around;gap:2px;
  padding:14px 8px calc(env(safe-area-inset-bottom) + 14px);
  background:#ffffff;border-radius:22px 22px 0 0;box-shadow:0 -8px 26px rgba(0,0,0,.14)}
.rbtn{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:none;
  cursor:pointer;opacity:.4;pointer-events:none;transition:opacity .28s}
.bar.live .rbtn{opacity:1;pointer-events:auto}
.rbtn .ic{width:clamp(44px,14vw,56px);height:clamp(44px,14vw,56px);border-radius:50%;display:grid;place-items:center;background:#c9c6bd;transition:background .28s}
.bar.live .rbtn .ic{background:var(--c)}
.rbtn:active .ic{opacity:.75}
.rbtn img{width:52%;height:52%;filter:brightness(0) invert(1)}
.rbtn span{font-size:.6rem;font-weight:700;color:#6a6a62;text-align:center;line-height:1.12;text-transform:uppercase;letter-spacing:.01em}
.bar.live .rbtn span{color:#3a3a34}

/* toast */
.toast{position:fixed;left:50%;bottom:150px;transform:translateX(-50%) translateY(16px);z-index:800;
  background:#1b1b1a;color:#fff;padding:11px 18px;border-radius:12px;font-size:.9rem;font-weight:600;
  opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;max-width:88vw;text-align:center}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* botões do mapa (3D + localizar) — pilha canto inf. direito */
.mapbtn{position:fixed;right:14px;z-index:850;width:46px;height:46px;border-radius:50%;border:none;background:#fff;color:#3a3a34;
  box-shadow:0 3px 12px rgba(0,0,0,.22);cursor:pointer;display:grid;place-items:center}
.mapbtn svg{width:22px;height:22px}
.mapbtn.on{background:#1a7a3f;color:#fff}
#btn3d{bottom:calc(env(safe-area-inset-bottom) + 178px)}
#btnLoc{bottom:calc(env(safe-area-inset-bottom) + 232px)}

/* FAB admin (só p/ equipa) */
#fabAdd{position:fixed;right:16px;bottom:calc(env(safe-area-inset-bottom) + 116px);z-index:900;width:54px;height:54px;border-radius:50%;
  border:none;background:#1a7a3f;color:#fff;font-size:28px;font-weight:700;box-shadow:0 6px 18px rgba(0,0,0,.35);cursor:pointer}

@media (prefers-reduced-motion:reduce){*{transition:none!important}}
