/* ACABAMENTO PREMIUM — botões, seções, animações e modo leve */
:root {
  --acc: #7fd8b8; --acc-solid: #1f8f68; --acc-ink: #ffffff; --on-bg: rgba(255,255,255,.16); --ink: #eef2fa; --mut: #9aa6c0;
  --glass-1: rgba(26, 31, 48, .82); --glass-2: rgba(14, 17, 28, .84); --line: rgba(255, 255, 255, .12);
  --ease: cubic-bezier(.16, 1, .3, 1);
}
body { font-family: Inter, "Segoe UI", system-ui, -apple-system, Roboto, sans-serif; }

/* painel lateral antigo, HUD e blocos repetidos saem: a informação fica no cartão do apto */
.sidebar-panel, .sidebar-toggle-tab, .bottom-left-hud, .bottom-right-dock { display: none !important; }

/* ---------- abertura ---------- */
#app-loader { position: fixed; inset: 0; z-index: 999; display: grid; place-items: center; background: radial-gradient(ellipse at 50% 40%, #1b2438, #0a0d16 70%); color: var(--ink); transition: opacity .8s ease, visibility .8s; }
#app-loader.done { opacity: 0; visibility: hidden; pointer-events: none; }
#app-loader .box { text-align: center; padding: 24px; animation: rise .9s var(--ease) both; }
#app-loader .mk { display: inline-block; padding: 5px 11px; border-radius: 8px; background: #0aa65b; color: #fff; font: 800 13px system-ui; letter-spacing: .08em; }
#app-loader h1 { margin: 14px 0 4px; font: 700 clamp(22px, 5vw, 34px)/1.15 Inter, system-ui; letter-spacing: -.01em; color: #fff; }
#app-loader p { margin: 0; color: var(--mut); font-size: 13.5px; }
#app-loader .bar { width: min(280px, 66vw); height: 3px; margin: 22px auto 0; border-radius: 3px; overflow: hidden; background: rgba(255, 255, 255, .1); }
#app-loader .bar i { display: block; width: 40%; height: 100%; border-radius: 3px; background: #dfe6f5; animation: slide 1.15s ease-in-out infinite; }
@keyframes slide { 0% { transform: translateX(-110%); } 100% { transform: translateX(290%); } }
@keyframes rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes pop { from { opacity: 0; transform: translateY(12px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes slideL { from { opacity: 0; transform: translateX(-18px); } to { opacity: 1; transform: none; } }
@keyframes dockUp { from { opacity: 0; transform: translate(-50%, 18px); } to { opacity: 1; transform: translate(-50%, 0); } }

/* ---------- entrada da interface depois da abertura ---------- */
body:not(.ready) #nav, body:not(.ready) #nv-dock { opacity: 0; }
body.ready #nav { animation: rise .7s var(--ease) both; }
body.ready #nv-dock { animation: dockUp .7s .12s var(--ease) both; }

/* ---------- vidro único para tudo ---------- */
.nv-glass, #apt-info-card, #dn-pop, .mrv-toast, #pwa-install {
  background: linear-gradient(160deg, var(--glass-1), var(--glass-2)) !important;
  border: 1px solid var(--line) !important;
  box-shadow: 0 16px 44px rgba(3, 6, 14, .42), inset 0 1px 0 rgba(255, 255, 255, .06) !important;
}

/* ---------- barra superior ---------- */
#nav { max-width: calc(100vw - 32px) !important; }
.nv-bar { gap: 8px !important; border-radius: 18px !important; }
.nv-seg { position: relative; }
.nv-seg button { position: relative !important; z-index: 1 !important; background: transparent !important; box-shadow: none !important; transition: color .25s ease !important; }
.nv-seg button.on { color: #fff !important; }
.nv-seg-ind { position: absolute; top: 3px; bottom: 3px; left: 0; width: 0; border-radius: 9px; background: var(--on-bg); box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); transition: transform .42s var(--ease), width .42s var(--ease); }
.nv-search input:focus { border-color: var(--acc) !important; box-shadow: 0 0 0 3px rgba(52, 224, 161, .16); }
.nv-menu, .nv-results { animation: pop .26s var(--ease) both; }
.nv-menu.open, .nv-results.open { display: block; }
.nv-menu { max-height: 70vh; overflow: auto; }

/* ---------- reação de botões (toque e mouse) ---------- */
#nav button, #nv-dock button, #nv-blockpanel button, #apt-info-card button, .com-btn, .com-tabs button, #dn-pop .seg button { transition: transform .16s var(--ease), background .2s ease, color .2s ease, box-shadow .2s ease, border-color .2s ease !important; }
#nav button:active, #nv-dock button:active, #nv-blockpanel button:active, #apt-info-card button:active, .com-btn:active, .com-tabs button:active, #dn-pop .seg button:active { transform: scale(.95); }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 2px solid var(--acc); outline-offset: 2px; }

/* ---------- barra inferior (câmeras, luzes, cômodos, relógio) ---------- */
#nv-dock { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(env(safe-area-inset-bottom, 0px) + 16px); z-index: 58; display: flex; align-items: center; gap: 2px; padding: 5px; border-radius: 16px; max-width: calc(100vw - 16px); overflow-x: auto; scrollbar-width: none; font: 600 12.5px Inter, system-ui, sans-serif; color: var(--ink); }
#nv-dock::-webkit-scrollbar { display: none; }
#nv-dock .sep { flex: none; width: 1px; height: 20px; margin: 0 4px; background: var(--line); }
#nv-dock .nv-cams, #nv-dock .nv-tools, #nv-dock .nv-rooms { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; flex: none; }
#nv-dock .nv-rooms { display: none; gap: 2px; }
#nv-dock .nv-rooms.on { display: flex; }
#nv-dock button { all: unset; cursor: pointer; flex: none; display: flex; align-items: center; gap: 6px; padding: 8px 12px; border-radius: 11px; font: 600 12.5px Inter, system-ui, sans-serif; color: #cfd8ea; white-space: nowrap; }
#nv-dock button:hover { background: rgba(255, 255, 255, .1); color: #fff; }
#nv-dock button.on { background: var(--on-bg); color: #fff; }
#nv-dock button#nv-luz.on { background: rgba(255, 205, 90, .2); color: #ffdf9a; box-shadow: none; }
#nv-dock #dn-clock { background: rgba(255, 255, 255, .07) !important; border: 0 !important; border-radius: 11px; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
#nv-dock .nv-tools button#nv-portas { display: none; }
#nv-dock .nv-tools.doors button#nv-portas { display: flex; }

/* ---------- painel do bloco ---------- */
#nv-blockpanel { top: auto !important; bottom: calc(env(safe-area-inset-bottom, 0px) + 78px) !important; max-height: calc(100vh - 190px); overflow: auto; width: 300px !important; }
#nv-blockpanel.on { animation: slideL .45s var(--ease) both; }
.bp-cell { transition: transform .16s var(--ease), background .2s, border-color .2s !important; }
.bp-cell.free small { color: #6f7b96; }
.bp-who { margin: 8px 0 2px; padding: 10px; border-radius: 12px; background: rgba(255, 255, 255, .05); border: 1px solid var(--line); font-size: 12px; color: #cfd8ea; }
.bp-who b { display: block; color: #fff; font-size: 13.5px; }
.bp-who .acts { display: flex; gap: 6px; margin-top: 8px; }
.res-btn { all: unset; box-sizing: border-box; flex: 1; cursor: pointer; text-align: center; padding: 8px 10px; border-radius: 10px; font: 700 12px Inter, system-ui, sans-serif; color: #fff; background: rgba(255, 255, 255, .1); }
.res-btn:hover { background: rgba(255, 255, 255, .17); }
.res-btn.pri { background: var(--acc-solid); color: #fff; }
.res-btn.pri:hover { background: #24a077; }
.res-btn.wa { background: #1e9e55; color: #fff; }

/* Cores calmas em todos os botões: nada de verde neon sobre o 3D */
.nv-ctx button.on, .bp-modes button.on, .aic-chips button.on, #apt-info-card .aic-chips button.on, .com-tabs button.on, #dn-pop .seg button.on, .res-chip.on { background: var(--on-bg) !important; color: #fff !important; border-color: rgba(255,255,255,.28) !important; box-shadow: none !important; }
.bp-cell.cur { background: #ff6a00 !important; border-color: #ffb27a !important; box-shadow: 0 0 14px rgba(255,106,0,.55); }
.bp-cell.cur b, .bp-cell.cur small { color: #fff !important; }
.bp-cell:hover { background: rgba(255,255,255,.14) !important; border-color: rgba(255,255,255,.3) !important; }
.bp-cell.erik { border-color: rgba(255,255,255,.1) !important; background: rgba(255,255,255,.07) !important; }
#nv-blockpanel .bp-btn, #apt-info-card .aic-enter, .com-btn.pri, #pwa-install .go { background: var(--acc-solid) !important; color: #fff !important; box-shadow: none !important; }
#nv-blockpanel .bp-btn.ghost { background: rgba(255,255,255,.08) !important; color: #dfe6f5 !important; }
.com-btn.wa, .nv-item .wa, .res-wa-test { background: #1e9e55 !important; color: #fff !important; }
#apt-info-card .aic-type { background: rgba(255,255,255,.05) !important; border-color: var(--line) !important; color: #dfe6f5 !important; }
#apt-info-card .aic-type b { color: #fff !important; }
#apt-info-card .aic-title span { color: var(--mut) !important; }
.nv-crumbs button.cur { color: #fff !important; }
.nv-lupa svg { stroke: #cfd8ea !important; }
.nv-item:hover, .nv-item.sel { background: rgba(255,255,255,.1) !important; }
.nv-item .ic, .nv-item .go, .nv-item .tg { color: #dfe6f5 !important; }
.nv-item .tg { background: rgba(255,255,255,.1) !important; }
#dn-clock:hover { border-color: rgba(255,255,255,.3) !important; }
#dn-time-label { color: #dfe6f5 !important; }
#dn-pop input[type=range], #dn-pop input[type=checkbox], .res-consent input { accent-color: var(--acc-solid); }

/* ---------- cartão do apartamento ---------- */
#apt-info-card { left: 16px !important; bottom: calc(env(safe-area-inset-bottom, 0px) + 78px) !important; width: 310px !important; max-height: calc(100vh - 216px) !important; }
#apt-info-card.visible { animation: slideL .42s var(--ease) both; }
#apt-info-card .aic-who { margin-top: 10px; padding: 11px; border-radius: 12px; background: rgba(255, 255, 255, .05); border: 1px solid var(--line); }
#apt-info-card .aic-who b { display: block; font-size: 14.5px; color: #fff; }
#apt-info-card .aic-who small { display: block; color: var(--mut); font-size: 11.5px; margin-top: 2px; }
#apt-info-card .aic-who .tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 7px; }
#apt-info-card .aic-who .tags span { padding: 2px 8px; border-radius: 999px; font-size: 10.5px; font-weight: 700; color: #dfe6f5; background: rgba(255, 255, 255, .1); }
#apt-info-card .aic-who .acts { display: flex; gap: 6px; margin-top: 9px; }
#apt-info-card details { margin-top: 8px; }
#apt-info-card summary { cursor: pointer; font: 700 11.5px Inter, system-ui; color: var(--mut); padding: 4px 0; list-style-position: inside; }

/* ---------- cartão premium do apartamento ---------- */
#nv-blockpanel { width: 320px !important; }
.apt-hero { padding: 14px; border-radius: 16px; color: #fff; background: linear-gradient(155deg, rgba(255,255,255,.1), rgba(255,255,255,.03)); border: 1px solid rgba(255,255,255,.14); border-top: 3px solid #ff6a00; }
.ah-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.ah-kicker { font: 700 11px Inter, system-ui, sans-serif; letter-spacing: .1em; color: #ffb27a; }
.ah-num { margin-top: 1px; font: 800 26px/1.1 Inter, system-ui, sans-serif; letter-spacing: -.02em; }
.ah-pill { flex: none; padding: 5px 11px; border-radius: 999px; font: 800 11.5px Inter, system-ui, sans-serif; color: #fff; background: rgba(255,255,255,.15); }
.ah-pill.sacada { background: #1f8f68; }
.ah-pill.terreo { background: #8a6a33; }
.ah-facts { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 10px; }
.ah-facts span { padding: 3px 9px; border-radius: 8px; font: 600 11.5px Inter, system-ui, sans-serif; color: #dfe6f5; background: rgba(255,255,255,.08); }
.ah-facts .pcd { background: #1f5fc4; color: #fff; }
.ah-person { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding-top: 11px; border-top: 1px solid rgba(255,255,255,.1); }
.ah-person i { flex: none; width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; font: 800 16px Inter, system-ui, sans-serif; font-style: normal; color: #fff; background: #ff6a00; }
.ah-person div { min-width: 0; }
.ah-person b { display: block; font: 700 14.5px Inter, system-ui, sans-serif; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ah-person small { font-size: 11px; color: var(--mut); }
.bp-all { all: unset; display: block; box-sizing: border-box; cursor: pointer; padding: 2px 2px 9px; font: 700 12.5px Inter, system-ui, sans-serif; color: #ffb27a; }
.bp-all:hover { color: #fff; }
.bp-who { margin-top: 0; padding: 0 !important; background: none !important; border: 0 !important; }
.bp-actions { display: grid; grid-template-columns: 1.2fr 1fr; gap: 6px; margin-top: 8px; }
.bp-actions .bp-btn { margin: 0 !important; }
.bp-toggle { all: unset; box-sizing: border-box; display: flex; justify-content: space-between; width: 100%; margin-top: 8px; padding: 9px 11px; border-radius: 10px; cursor: pointer; font: 700 12px Inter, system-ui, sans-serif; color: #cfd8ea; background: rgba(255,255,255,.05); }
.bp-toggle:hover { background: rgba(255,255,255,.1); }
.bp-toggle span { transition: transform .2s; font-size: 15px; line-height: 1; }
.bp-toggle.open span { transform: rotate(90deg); }
.bp-more { margin-top: 8px; animation: rise .25s var(--ease) both; }
#apt-info-card .aic-title, #apt-info-card .aic-sub { display: none; }
#apt-info-card .aic-head { justify-content: flex-end; }

/* ---------- abas do apartamento ---------- */
.apt-tabs { display: flex; gap: 2px; margin-top: 10px; padding: 3px; border-radius: 11px; background: rgba(255,255,255,.06); }
.apt-tabs button { all: unset; flex: 1; cursor: pointer; text-align: center; padding: 7px 2px; border-radius: 8px; font: 700 11.5px Inter, system-ui, sans-serif; color: #b9c3dc; transition: background .2s, color .2s; }
.apt-tabs button:hover { color: #fff; }
.apt-tabs button.on { background: var(--on-bg); color: #fff; }
.bp-apt { font: 700 14px Inter, system-ui, sans-serif; color: #fff; }
.bp-who .aic-who, #apt-info-card .aic-who { margin-top: 6px; padding: 11px; border-radius: 12px; background: rgba(255,255,255,.05); border: 1px solid var(--line); font-size: 12.5px; color: #dfe6f5; }
.aic-who b { display: block; font-size: 14.5px; color: #fff; }
.aic-who small { display: block; color: var(--mut); font-size: 11.5px; margin-top: 3px; }
.aic-who .acts { display: flex; gap: 6px; margin-top: 9px; }
.aic-who .tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 7px; }
.aic-who .tags span { padding: 2px 8px; border-radius: 999px; font-size: 10.5px; font-weight: 700; color: #dfe6f5; background: rgba(255,255,255,.1); }
.aic-who .kv { margin-top: 6px; color: #fff; }
.aic-who .kv i { display: block; font-style: normal; font-size: 10.5px; color: var(--mut); }
.aic-who .kind { display: inline-block; margin: 0 4px 2px 0; padding: 3px 11px; border-radius: 999px; font: 800 12px Inter, system-ui, sans-serif; background: rgba(255,255,255,.12); color: #fff; }
.aic-who .kind.sacada { background: #1f8f68; }
.aic-who .kind.terreo { background: #7a5c2e; }
.aic-who .kind.pcd { background: #2363b8; }
.aic-who table { width: 100%; margin-top: 8px; border-collapse: collapse; font-size: 11.5px; }
.aic-who td { padding: 3px 0; border-bottom: 1px solid rgba(255,255,255,.07); }
.aic-who td:last-child { text-align: right; font-weight: 700; color: #fff; }
.vaga-form { display: flex; gap: 6px; margin-top: 9px; }
.vaga-form input { flex: 1; min-width: 0; box-sizing: border-box; padding: 8px 10px; border-radius: 9px; border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.07); color: #fff; font: 600 13px Inter, system-ui, sans-serif; }
.vaga-form .res-btn { flex: none; }

/* ---------- modais ---------- */
.modal-overlay { transition: opacity .25s ease; }
.modal-overlay.active .gallery-modal-content { animation: pop .34s var(--ease) both; }
.area-note { margin-top: 12px; padding: 12px; border-radius: 12px; background: rgba(255, 255, 255, .05); border: 1px solid var(--line); color: #cfd8ea; font-size: 13px; line-height: 1.45; }
.area-note b { color: #fff; }

/* ---------- qualidade ---------- */
#dn-pop { bottom: calc(env(safe-area-inset-bottom, 0px) + 78px) !important; top: auto !important; left: 50% !important; transform: translateX(-50%); }
#dn-pop.open { animation: fadeUp .3s var(--ease) both; }
@keyframes fadeUp { from { opacity: 0; margin-bottom: -10px; } to { opacity: 1; margin-bottom: 0; } }
#dn-pop h5 { margin: 12px 0 6px; font: 700 11px Inter, system-ui; color: var(--mut); text-transform: uppercase; letter-spacing: .07em; }
#dn-pop .q-info { margin-top: 2px; font-size: 11px; color: var(--mut); }

/* ---------- avisos: sobem acima da barra inferior ---------- */
#mrv-toasts { bottom: calc(env(safe-area-inset-bottom, 0px) + 78px) !important; }
#pwa-install { bottom: calc(env(safe-area-inset-bottom, 0px) + 78px) !important; }

/* ---------- MODO LEVE: sem desfoque nem animações ---------- */
html[data-q="leve"] *, html[data-q="leve"] *::before, html[data-q="leve"] *::after { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
html[data-q="leve"] .nv-glass, html[data-q="leve"] #apt-info-card, html[data-q="leve"] #dn-pop, html[data-q="leve"] .mrv-toast, html[data-q="leve"] #pwa-install { background: #161b2a !important; box-shadow: none !important; }
html[data-q="leve"] #vignette { display: none; }

/* ---------- celular ---------- */
@media (max-width: 900px) {
  #nv-dock { left: 8px; right: 8px; transform: none; max-width: none; bottom: calc(env(safe-area-inset-bottom, 0px) + 8px); justify-content: flex-start; }
  body.ready #nv-dock { animation: rise .6s var(--ease) both; }
  #nv-dock button { padding: 10px 12px; min-height: 24px; }
  body #nv-blockpanel, body #apt-info-card { left: 8px !important; right: 8px !important; width: auto !important; bottom: calc(env(safe-area-inset-bottom, 0px) + 64px) !important; max-height: 44vh !important; }
  #dn-pop { left: 8px !important; right: 8px !important; width: auto !important; transform: none; bottom: calc(env(safe-area-inset-bottom, 0px) + 64px) !important; }
  #mrv-toasts { top: auto !important; bottom: calc(env(safe-area-inset-bottom, 0px) + 64px) !important; }
  #pwa-install { bottom: calc(env(safe-area-inset-bottom, 0px) + 64px) !important; }
}
/* ---------- CELULAR: botões grandes, uma linha no topo, barra de app embaixo ---------- */
@media (max-width: 900px) {
  body #nav { left: 8px; right: 8px; gap: 6px; }
  body #nav .nv-bar { flex-wrap: nowrap !important; align-items: center; padding: 5px !important; gap: 4px !important; border-radius: 16px !important; }
  body #nav .nv-brand { display: none; }
  body #nav .nv-back, body #nav .nv-more { flex: none; width: 44px; height: 44px; border-radius: 12px; }
  body #nav .nv-seg { flex: 1 1 auto; min-width: 0; }
  body #nav .nv-seg button { min-height: 44px; padding: 0 2px; font-size: 11.5px; justify-content: center; flex: 1 1 auto; }
  /* lupa recolhida: abre por cima dos botões ao tocar */
  body #nav .nv-search { order: 0; flex: 0 0 44px; min-width: 44px; height: 44px; }
  body #nav .nv-search input { display: none; }
  body #nav .nv-lupa { left: 0; width: 44px; height: 44px; background: rgba(255,255,255,.07); border-radius: 12px; }
  body #nav .nv-bar.searching .nv-seg, body #nav .nv-bar.searching .nv-more, body #nav .nv-bar.searching .nv-back { display: none; }
  body #nav .nv-bar.searching .nv-search { flex: 1 1 100%; }
  body #nav .nv-bar.searching .nv-search input { display: block; height: 44px; padding-left: 44px; font-size: 16px; }
  body #nav .nv-results { position: fixed; left: 8px; right: 8px; top: calc(env(safe-area-inset-top, 0px) + 68px); max-height: 60vh; min-width: 0; }
  body #nav .nv-menu { position: fixed; left: auto; right: 8px; top: calc(env(safe-area-inset-top, 0px) + 68px); }
  body #nav .nv-menu button { min-height: 44px; font-size: 14px; }
  body #nav .nv-crumbs { display: none; }
  body #nav .nv-ctx { width: 100%; box-sizing: border-box; overflow-x: auto; scrollbar-width: none; }
  body #nav .nv-ctx button { min-width: 38px; min-height: 38px; }

  /* barra inferior estilo aplicativo: ícone em cima, nome embaixo */
  #nv-dock { padding: 4px; border-radius: 16px; justify-content: space-around; }
  #nv-dock .sep, #nv-dock [data-c="frente"], #nv-dock [data-c="lateral"], #nv-dock [data-c="fundos"], #nv-dock [data-c="orbita"] { display: none !important; }
  #nv-dock .nv-cams.on, #nv-dock .nv-tools, #nv-dock .nv-rooms.on { display: contents; }
  #nv-dock .nv-tools button#nv-portas { display: none; }
  #nv-dock .nv-tools.doors button#nv-portas { display: flex; }
  #nv-dock button { flex: 1 0 auto; flex-direction: column; justify-content: center; gap: 2px; min-width: 56px; min-height: 50px; padding: 4px 6px; box-sizing: border-box; font-size: 11px; text-align: center; border-radius: 12px; }
  #nv-dock button span { font-size: 11px; }
  #nv-dock [data-c="inicio"]::before { content: "🏠"; font-size: 17px; line-height: 1; }
  #nv-dock [data-c="aerea"]::before { content: "🛰️"; font-size: 17px; line-height: 1; }
  #nv-dock .nv-rooms button { min-width: 62px; }
  #nv-dock #dn-clock { flex-direction: column; display: flex; align-items: center; min-width: 56px; }
  html body.in-apt #nv-dock #nv-lazer { display: none; }

  /* painéis como folha inferior: toque na alça para recolher */
  body #nv-blockpanel, body #apt-info-card { bottom: calc(env(safe-area-inset-bottom, 0px) + 70px) !important; max-height: 52vh !important; padding-top: 22px !important; border-radius: 18px !important; }
  #nv-blockpanel::before, #apt-info-card::before { content: ""; position: absolute; left: 50%; top: 8px; width: 42px; height: 5px; margin-left: -21px; border-radius: 5px; background: rgba(255,255,255,.3); }
  body #nv-blockpanel.min, body #apt-info-card.min { max-height: 76px !important; overflow: hidden !important; }
  .bp-cell { min-height: 44px; }
  .bp-all { min-height: 30px; display: flex; align-items: center; }
  .bp-modes { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
  .bp-modes button { white-space: nowrap; flex: none; min-height: 40px; box-sizing: border-box; display: flex; align-items: center; }
  .apt-tabs button { min-height: 40px; display: flex; align-items: center; justify-content: center; font-size: 12.5px; }
  .res-btn, #nv-blockpanel .bp-btn, #apt-info-card .aic-enter { min-height: 44px; display: flex !important; align-items: center; justify-content: center; font-size: 13.5px !important; }
  #apt-info-card .aic-chips button { min-height: 40px; }
  #apt-info-card select { min-height: 42px; font-size: 16px; }
  .vaga-form input { font-size: 16px; min-height: 44px; }
  .bp-modes::-webkit-scrollbar, body #nav .nv-ctx::-webkit-scrollbar { display: none; }

  /* comunidade em tela cheia, com abas roláveis */
  #com-modal .gallery-modal-content, #resident-edit-modal .gallery-modal-content, #auth-modal .gallery-modal-content { width: 100vw !important; max-width: 100vw !important; height: 100dvh; max-height: 100dvh; border-radius: 0; box-sizing: border-box; padding: 18px 14px calc(env(safe-area-inset-bottom, 0px) + 20px); overflow-y: auto; }
  #auth-modal .gallery-modal-content { height: auto; border-radius: 18px; width: calc(100vw - 24px) !important; max-width: calc(100vw - 24px) !important; }
  .com-tabs { flex-wrap: nowrap !important; overflow-x: auto; scrollbar-width: none; }
  .com-tabs button { white-space: nowrap; flex: none; min-height: 40px; box-sizing: border-box; display: flex; align-items: center; }
  .com-btn { min-height: 42px; box-sizing: border-box; display: inline-flex !important; align-items: center; justify-content: center; }
  .com-form input, .com-form select, .com-form textarea, #resident-edit-modal input { font-size: 16px !important; min-height: 44px; box-sizing: border-box; }
  #dn-pop .seg button { min-height: 40px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; }
  #layout-ed { bottom: calc(env(safe-area-inset-bottom, 0px) + 70px) !important; }
  #mrv-toasts, #pwa-install, #dn-pop { bottom: calc(env(safe-area-inset-bottom, 0px) + 70px) !important; }
}
@media (max-height: 500px) and (orientation: landscape) {
  body #nv-blockpanel, body #apt-info-card { left: 8px !important; right: auto !important; width: 300px !important; max-height: calc(100vh - 74px) !important; bottom: calc(env(safe-area-inset-bottom, 0px) + 58px) !important; }
}
@media (prefers-reduced-motion: reduce) {
  #app-loader .bar i { animation: none; width: 100%; }
}
