/* Milia — visual do App v8 (handoff do Renato, design_handoff_milia_app_admin, 15/10/2026).
   Base comum das telas novas: tokens dos 3 temas (Milia · Escuro · Claro, seguem o data-paleta do
   brand.js), tipografia (Plus Jakarta Sans; Nunito só nos números grandes), componentes e o shell v8
   (barra superior, barra de abas com o globo no meio, menu lateral, painel de notificações).
   Só vale com <html class="v8"> (o shell.js põe a classe). Ramo local app-v8 — nada publicado ainda. */

/* ---------- tokens ---------- */
html.v8, html.v8[data-paleta="milia"] {
  --screen: linear-gradient(180deg,#071B33 0%,#0A2440 55%,#0B2E47 100%);
  --bg0:#071B33; --bg1:#0A2440; --bg2:#0B2E47; --bg2t:rgba(11,46,71,0);
  --pop:#0E2C47; --hdr:rgba(7,27,51,0.9); --tab:rgba(6,22,40,0.94); --glass:rgba(30,44,62,0.85);
  --card:#F2F6F8; --fg:255,255,255; --ink:#F2F6F8; --ink2a:#E3EAF0; --ink2b:#D7E2EA; --ink2c:#C9D6E2;
  --muted:#9DB1C4; --dim:#6F8599; --acc:#7FF0D4; --amb:#F5C46B; --amb2:#F7DDA6;
  --surf:rgba(255,255,255,0.05); --cta:#7FF0D4;
}
html.v8[data-paleta="escuro"] {
  --screen: linear-gradient(180deg,#0D0F12 0%,#111418 55%,#14181C 100%);
  --bg0:#0D0F12; --bg1:#111418; --bg2:#14181C; --bg2t:rgba(20,24,28,0);
  --pop:#1C2026; --hdr:rgba(13,15,18,0.9); --tab:rgba(12,14,17,0.95); --glass:rgba(40,44,50,0.88);
  --card:#F2F4F6; --fg:255,255,255; --ink:#F2F4F6; --ink2a:#E2E5E9; --ink2b:#D3D8DD; --ink2c:#C2C8CF;
  --muted:#99A2AC; --dim:#6E7781; --acc:#7FF0D4; --amb:#F5C46B; --amb2:#F7DDA6;
  --surf:rgba(255,255,255,0.05); --cta:#7FF0D4;
}
html.v8[data-paleta="claro"] {
  --screen: linear-gradient(180deg,#F6F8FB 0%,#F3F6F9 55%,#EEF2F6 100%);
  --bg0:#F6F8FB; --bg1:#F3F6F9; --bg2:#EEF2F6; --bg2t:rgba(238,242,246,0);
  --pop:#FFFFFF; --hdr:rgba(246,248,251,0.92); --tab:rgba(255,255,255,0.96); --glass:rgba(255,255,255,0.94);
  --card:#E4F6F1; --fg:15,42,74; --ink:#0F2A4A; --ink2a:#1D3758; --ink2b:#2A4466; --ink2c:#3A5272;
  --muted:#5D708A; --dim:#8696AA; --acc:#0E9C88; --amb:#A3650B; --amb2:#7A4C08;
  --surf:#FFFFFF; --cta:#19BFA6;
}
html.v8 {
  --on-cta:#062033;            /* texto sobre o mint */
  --teal:#1BB5AE;              /* bolhas da pessoa, avatar */
  --chip-on-bg:rgba(127,240,212,0.14); --chip-on-bd:rgba(127,240,212,0.55);
  --v8-font:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --v8-num:'Nunito','Plus Jakarta Sans',system-ui,sans-serif;
  --v8-tb-h:100px;             /* barra superior no celular (52 de status + 48) */
}

/* ---------- base ---------- */
html.v8 body { font-family: var(--v8-font); color: var(--ink); background: var(--bg0); background-image: var(--screen); background-attachment: fixed; -webkit-font-smoothing: antialiased; }
html.v8 body button, html.v8 body input, html.v8 body select, html.v8 body textarea { font-family: inherit; }
html.v8 a { color: var(--acc); }
html.v8 ::placeholder { color: var(--dim); }
.v8-scroll-x { display: flex; gap: 10px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.v8-scroll-x::-webkit-scrollbar { display: none; }

/* ---------- tipografia ---------- */
.v8-h1 { font-size: 30px; font-weight: 800; line-height: 1.08; letter-spacing: -0.8px; margin: 0; text-wrap: balance; }
.v8-h1 em, .v8-h1 b { font-style: normal; color: var(--acc); }
.v8-sub { font-size: 14px; line-height: 1.5; color: var(--muted); margin: 6px 0 0; text-wrap: pretty; }
.v8-rot { font-size: 11px; font-weight: 800; letter-spacing: 1.2px; text-transform: uppercase; color: var(--dim); }
.v8-sec-t { font-size: 18px; font-weight: 800; letter-spacing: -0.3px; margin: 0; }
.v8-num { font-family: var(--v8-num); font-weight: 900; letter-spacing: -1.5px; line-height: 1; }
.v8-muted { color: var(--muted); } .v8-dim { color: var(--dim); } .v8-acc { color: var(--acc); } .v8-amb { color: var(--amb); }

/* ---------- componentes ---------- */
.v8-card { background: var(--surf); border: 1px solid rgba(var(--fg),0.08); border-radius: 20px; padding: 16px; }
html.v8[data-paleta="claro"] .v8-card { box-shadow: 0 1px 2px rgba(15,42,74,0.05), 0 6px 20px rgba(15,42,74,0.05); }
.v8-card-m { border-radius: 16px; padding: 14px; }
.v8-fala { background: var(--card); color: #0F2A4A; border-radius: 20px; padding: 14px 16px; }   /* card claro (fala da Milia) */
.v8-cta { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; padding: 0 22px; border: 0; border-radius: 999px; background: var(--cta); color: var(--on-cta); font-size: 15.5px; font-weight: 800; text-decoration: none; cursor: pointer; box-shadow: 0 10px 30px rgba(127,240,212,0.25); transition: transform .12s; }
.v8-cta:active { transform: scale(.97); }
.v8-cta.bloco { display: flex; width: 100%; }
.v8-cta[disabled] { opacity: .45; pointer-events: none; box-shadow: none; }
.v8-btn2 { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 18px; border-radius: 999px; background: rgba(var(--fg),0.06); border: 1px solid rgba(var(--fg),0.12); color: var(--ink); font-size: 14.5px; font-weight: 800; text-decoration: none; cursor: pointer; }
.v8-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 14px; border-radius: 999px; background: rgba(var(--fg),0.04); border: 1px solid rgba(var(--fg),0.1); color: var(--ink2a); font-size: 13px; font-weight: 700; white-space: nowrap; cursor: pointer; }
.v8-chip.on, .v8-chip[aria-pressed="true"], .v8-chip[aria-selected="true"] { background: var(--chip-on-bg); border-color: var(--chip-on-bd); color: var(--acc); }
.v8-selo { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: 999px; font-size: 10.5px; font-weight: 800; letter-spacing: .4px; white-space: nowrap; background: rgba(127,240,212,0.14); color: var(--acc); }
.v8-selo.amb { background: rgba(245,196,107,0.16); color: var(--amb); }
.v8-selo.neu { background: rgba(var(--fg),0.08); color: var(--ink2c); }
.v8-seg { display: flex; gap: 3px; padding: 3px; border-radius: 12px; background: rgba(var(--fg),0.07); }
.v8-seg > button, .v8-seg > a { flex: 1; min-height: 34px; border: 0; border-radius: 9px; background: transparent; color: var(--ink2c); font-size: 12.5px; font-weight: 800; cursor: pointer; display: flex; align-items: center; justify-content: center; text-decoration: none; }
.v8-seg > .on, .v8-seg > [aria-selected="true"] { background: var(--cta); color: var(--on-cta); }
.v8-input { display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 16px; border-radius: 16px; background: rgba(var(--fg),0.06); border: 1px solid rgba(var(--fg),0.12); color: var(--ink); }
.v8-input input { flex: 1; min-width: 0; border: 0 !important; outline: 0; background: transparent !important; color: var(--ink) !important; font-size: 15px; padding: 0 !important; min-height: 0 !important; box-shadow: none !important; }
.v8-input:focus-within { border-color: var(--chip-on-bd); }
.v8-barra { height: 8px; border-radius: 999px; background: rgba(var(--fg),0.1); overflow: hidden; }
.v8-barra > i { display: block; height: 100%; border-radius: 999px; background: var(--acc); }
.v8-lin { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid rgba(var(--fg),0.06); }
.v8-lin:last-child { border-bottom: 0; }
.v8-vazio { padding: 22px 16px; text-align: center; color: var(--muted); font-size: 13.5px; line-height: 1.5; }
.v8-globo { width: 20px; height: 20px; flex: none; }
.v8-carregando { height: 76px; border-radius: 18px; background: linear-gradient(90deg, rgba(var(--fg),0.04) 0%, rgba(var(--fg),0.09) 50%, rgba(var(--fg),0.04) 100%); background-size: 200% 100%; animation: mShine 1.4s linear infinite; }

/* sheet (folha de baixo) */
.v8-sheet-fundo { position: fixed; inset: 0; z-index: 100; background: rgba(3,11,22,0.55); animation: mFadeIn .2s ease both; }
.v8-sheet { position: fixed; left: 0; right: 0; bottom: 0; max-height: 84vh; overflow-y: auto; z-index: 101; background: var(--bg1); border-radius: 26px 26px 0 0; padding: 10px 18px calc(24px + env(safe-area-inset-bottom,0px)); display: flex; flex-direction: column; gap: 14px; box-shadow: 0 -10px 40px rgba(0,0,0,0.35); animation: mUp .3s cubic-bezier(.2,.8,.2,1) both; }
.v8-sheet::before { content: ""; align-self: center; width: 40px; height: 5px; border-radius: 3px; background: rgba(var(--fg),0.25); flex: none; }
@media (min-width: 901px) { .v8-sheet { left: 50%; right: auto; width: 480px; margin-left: -240px; } }

/* entrada das telas e cards */
.v8-in { animation: mFade .4s cubic-bezier(.2,.8,.2,1) both; }

/* ---------- keyframes (nomes do protótipo) ---------- */
@keyframes mFade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes mDrop{from{opacity:0;transform:translateY(-40px) scale(.96)}to{opacity:1;transform:none}}
@keyframes mPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.85}}
@keyframes mRing{0%{transform:scale(.8);opacity:.7}100%{transform:scale(1.9);opacity:0}}
@keyframes mReelUp{from{transform:translateY(0)}to{transform:translateY(-50%)}}
@keyframes mReelDown{from{transform:translateY(-50%)}to{transform:translateY(0)}}
@keyframes mOrbit{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes mGlow{0%,100%{transform:scale(1);opacity:.55}50%{transform:scale(1.12);opacity:.9}}
@keyframes mFadeIn{from{opacity:0}to{opacity:1}}
@keyframes mSlideIn{from{transform:translateX(-100%)}to{transform:none}}
@keyframes mKen{from{transform:scale(1.02) translate(0,0)}to{transform:scale(1.1) translate(-1.5%,-1%)}}
@keyframes mShine{0%{background-position:150% 0}60%,100%{background-position:-50% 0}}
@keyframes mUp{from{transform:translateY(100%)}to{transform:none}}
@keyframes mBlink{0%,80%,100%{opacity:.25}40%{opacity:1}}

/* ================= shell v8 ================= */
/* barra superior: menu à esquerda, logo no centro, sino à direita */
html.v8 .tb { background: var(--hdr); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border-bottom: 0; box-shadow: none; color: var(--ink); }
html.v8 .tb-btn { width: 40px; height: 40px; border-radius: 50%; background: rgba(var(--fg),0.07); border: 1px solid rgba(var(--fg),0.1); color: var(--ink); }
html.v8 .tb-btn:hover { background: rgba(var(--fg),0.12); color: var(--ink); }
html.v8 .tb-btn .badge-n { top: -3px; right: -3px; min-width: 18px; height: 18px; border-radius: 9px; background: #F5C46B; color: #062033; font-size: 10.5px; border: 2px solid var(--bg0); }
html.v8 .tb-menu { margin-left: 0; color: var(--ink); }
html.v8 .v8-menu-ic { width: 18px; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
html.v8 .v8-menu-ic i { display: block; height: 2px; border-radius: 1px; background: var(--ink); }
html.v8 .v8-menu-ic i:nth-child(1) { width: 18px; } html.v8 .v8-menu-ic i:nth-child(2) { width: 13px; } html.v8 .v8-menu-ic i:nth-child(3) { width: 8px; background: var(--cta); }
html.v8 .tb-brand { color: var(--ink); }
html.v8 .tb-brand .wm { height: 20px; width: auto; }
html.v8 .tb-pergunte { background: rgba(var(--fg),0.07); border: 1px solid rgba(var(--fg),0.1); color: var(--ink); border-radius: 999px; }

/* sidebar do PC no tema v8 */
html.v8 .sb { background: linear-gradient(180deg,var(--bg1) 0%,var(--bg0) 100%); border-right: 1px solid rgba(var(--fg),0.07); color: var(--ink); }
html.v8 .sb nav a { color: var(--ink2c); border-radius: 12px; font-weight: 700; }
html.v8 .sb nav a.on, html.v8 .sb nav a:hover { color: var(--acc); background: rgba(127,240,212,0.1); }
html.v8 .sb .brand, html.v8 .sb-foot { color: var(--ink); }

@media (max-width: 900px) {
  html.v8 .tb { height: auto; min-height: 60px; padding: calc(8px + env(safe-area-inset-top,0px)) 16px 8px; gap: 10px; display: grid; grid-template-columns: 40px 1fr 40px; align-items: center; }
  html.v8 .tb .tb-menu { grid-column: 1; grid-row: 1; }
  html.v8 .tb .tb-brand { display: flex; grid-column: 2; grid-row: 1; justify-self: center; gap: 6px; }
  html.v8 .tb #tb-sino { grid-column: 3; grid-row: 1; }
  html.v8 .tb .tb-title, html.v8 .tb .grow, html.v8 .tb .tb-pergunte, html.v8 .tb .nav-user { display: none !important; }

  /* barra de abas: Início · Voos · Milia (globo elevado) · Ofertas · Carteira */
  html.v8 .tabbar { height: calc(76px + env(safe-area-inset-bottom,0px)); padding: 8px 8px env(safe-area-inset-bottom,0px); background: var(--tab); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-top: 1px solid rgba(var(--fg),0.07); box-shadow: none; grid-template-columns: repeat(5, 1fr) !important; align-items: start; }
  html.v8 .tabbar a { display: flex; flex-direction: column; align-items: center; gap: 4px; color: var(--dim); font-size: 10.5px; font-weight: 700; text-decoration: none; background: none !important; padding: 0; min-height: 0; }
  html.v8 .tabbar a.on { color: var(--acc); }
  html.v8 .tabbar a.on::before, html.v8 .tabbar a::after { display: none !important; }
  html.v8 .tabbar a svg { width: 24px; height: 24px; }
  html.v8 .tabbar a.v8-tab-milia { gap: 3px; }
  html.v8 .tabbar .v8-tab-globo { position: relative; width: 46px; height: 46px; margin-top: -18px; border-radius: 50%; background: var(--bg0); box-shadow: 0 0 0 4px var(--bg0); display: block; }
  html.v8 .tabbar a.on .v8-tab-globo { box-shadow: 0 0 0 4px var(--bg0), 0 0 0 6px #7FF0D4; }
  html.v8 .tabbar .v8-tab-globo img { width: 46px; height: 46px; display: block; }
  html.v8 body.has-shell .app-main, html.v8 body.has-shell .page-main { padding-bottom: calc(100px + env(safe-area-inset-bottom,0px)); }
}

/* menu lateral v8 */
html.v8 .side-fundo { background: rgba(3,11,22,0.6); backdrop-filter: none; }
html.v8 .side { background: linear-gradient(180deg,var(--bg1) 0%,var(--bg0) 100%); color: var(--ink); border-radius: 0 28px 28px 0; box-shadow: none; width: min(318px, 88vw); padding: calc(18px + env(safe-area-inset-top,0px)) 16px calc(24px + env(safe-area-inset-bottom,0px)); gap: 14px; border-right: 0; }
html.v8 .side-hd { border-bottom: 0; padding: 0; margin: 0; }
html.v8 .side-hd .avatar { width: 46px; height: 46px; font-size: 18px; font-weight: 900; color: #062033; }
html.v8 .side-hd b { font-size: 16px; font-weight: 800; color: var(--ink); }
html.v8 .side-hd span { color: var(--muted); font-size: 12px; }
html.v8 .side-hd .tb-btn { width: 34px; height: 34px; }
html.v8 .side .side-plano { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 14px; background: rgba(127,240,212,0.08); border: 1px solid rgba(127,240,212,0.25); text-decoration: none; color: var(--ink); }
html.v8 .side .side-plano > div { flex: 1; min-width: 0; }
html.v8 .side .side-plano span { display: block; font-size: 10px; font-weight: 800; letter-spacing: 1px; color: var(--acc); text-transform: uppercase; }
html.v8 .side .side-plano b { display: block; font-size: 15px; font-weight: 800; color: var(--ink); }
html.v8 .side .side-plano em { flex: none; font-style: normal; padding: 7px 12px; border-radius: 999px; background: var(--cta); color: #062033; font-size: 12px; font-weight: 800; white-space: nowrap; margin: 0; }
html.v8 .v8-espec { display: flex; flex-direction: column; gap: 2px; padding: 8px 12px; border-radius: 14px; background: var(--surf); border: 1px solid rgba(var(--fg),0.08); text-decoration: none; color: var(--ink); }
html.v8 .v8-espec > div { display: flex; align-items: center; gap: 8px; }
html.v8 .v8-espec b { flex: 1; font-size: 13px; font-weight: 800; }
html.v8 .v8-espec em { font-style: normal; font-size: 12px; font-weight: 800; color: var(--acc); }
html.v8 .v8-espec small { font-size: 11px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html.v8 .v8-espec svg { color: var(--acc); flex: none; }
html.v8 .v8-grupo { display: flex; flex-direction: column; }
html.v8 .v8-grupo > .v8-rot { padding: 4px 4px 0; font-size: 11px; letter-spacing: 1px; }
html.v8 .v8-grupo a { display: flex; align-items: center; gap: 10px; padding: 11px 4px; border-bottom: 1px solid rgba(var(--fg),0.06); text-decoration: none; color: var(--ink); }
html.v8 .v8-grupo a:hover { background: rgba(var(--fg),0.03); }
html.v8 .v8-grupo a > div { flex: 1; min-width: 0; }
html.v8 .v8-grupo a b { display: block; font-size: 14px; font-weight: 700; }
html.v8 .v8-grupo a small { display: block; font-size: 11.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html.v8 .v8-grupo a > i { font-style: normal; color: var(--dim); font-size: 16px; }
html.v8 .v8-tema { display: flex; align-items: center; gap: 10px; padding: 2px 4px; }
html.v8 .v8-tema > span { font-size: 12.5px; font-weight: 700; color: var(--muted); }
html.v8 .v8-tema .side-tema-op { flex: 1; display: flex; padding: 3px; border-radius: 10px; background: rgba(var(--fg),0.07); gap: 2px; }
html.v8 .v8-tema .side-tema-op button { flex: 1; height: 28px; border: 0; border-radius: 8px; background: transparent; color: var(--ink2c); font-size: 12px; font-weight: 800; cursor: pointer; }
html.v8 .v8-tema .side-tema-op button.on { background: var(--cta); color: #062033; }
html.v8 .side .side-link { color: var(--muted); padding: 8px 4px; }
html.v8 .side .side-link:hover { color: var(--ink); }
html.v8 .v8-side-pe { display: flex; align-items: center; gap: 8px; color: var(--dim); font-size: 12px; padding: 4px 4px 0; }
html.v8 .v8-side-pe img { width: 18px; height: 18px; opacity: .7; }

/* painel de notificações (sino) */
html.v8 .pop-fundo.open { background: rgba(3,11,22,0.35); }
html.v8 #pop-sino { background: var(--pop); border: 1px solid rgba(var(--fg),0.1); border-radius: 22px; box-shadow: 0 20px 50px rgba(0,0,0,0.35); color: var(--ink); max-height: min(560px, 75vh); overflow-y: auto; padding: 0; }
html.v8 #pop-sino .hd { padding: 14px 16px 8px; border: 0; display: flex; align-items: center; gap: 8px; background: transparent; }
html.v8 #pop-sino .hd b { font-size: 16px; font-weight: 800; }
html.v8 #pop-sino .v8-ler { font-size: 12.5px; font-weight: 800; color: var(--acc); background: none; border: 0; cursor: pointer; padding: 0; }
html.v8 #pop-sino .sino-cfg { color: var(--muted); }
html.v8 #pop-sino .n-item { display: grid; grid-template-columns: 32px 1fr; gap: 10px; align-items: start; padding: 12px 16px; margin: 0; border: 0; border-top: 1px solid rgba(var(--fg),0.06); border-radius: 0; box-shadow: none; color: var(--ink); background: transparent; }
html.v8 #pop-sino .n-item:hover { background: rgba(var(--fg),0.03); }
html.v8 #pop-sino .n-item.novo { background: rgba(127,240,212,0.05); }
html.v8 #pop-sino .n-item > svg { display: none; }
html.v8 #pop-sino .n-item .ic-chip { width: 32px; height: 32px; border-radius: 9px; background: rgba(127,240,212,0.12); color: var(--acc); }
html.v8 #pop-sino .n-item .t { color: var(--ink); font-size: 13.5px; font-weight: 800; }
html.v8 #pop-sino .n-item .d { color: var(--ink2b); font-size: 12.5px; line-height: 1.4; }
html.v8 #pop-sino .n-item.novo .t::after { background: var(--acc); }
/* aviso em bilhete não passa por cima do menu aberto */
html.v8 body.side-aberto .aviso-bilhete { display: none; }
html.v8 #pop-sino .sino-todas { border-top: 1px solid rgba(var(--fg),0.06); color: var(--acc); padding: 12px 16px; font-weight: 800; background: transparent; }
html.v8 #pop-sino .vazio-n { color: var(--muted); }
@media (max-width: 900px) { html.v8 #pop-sino { left: 12px !important; right: 12px !important; width: auto !important; } }

/* diálogos do app no tema v8 */
html.v8 .mi-box { background: var(--pop); color: var(--ink); border: 1px solid rgba(var(--fg),0.1); border-radius: 22px; }
html.v8 .mi-box p { color: var(--ink2b); }
html.v8 .mi-btn { border-radius: 999px; background: var(--cta); color: #062033; }
html.v8 .mi-btn.sec { background: rgba(var(--fg),0.07); color: var(--ink); }

@media (prefers-reduced-motion: reduce) {
  .v8-in, .v8-sheet, .v8-carregando { animation: none !important; }
}
/* sombra do menu só com ele aberto (fechado, ela vazava na borda esquerda no tema Claro) */
html.v8 .side.open { box-shadow: 20px 0 60px rgba(0,0,0,0.45); }
@media (min-width: 901px) { html.v8 .side { box-shadow: none !important; } }
/* <a class="v8-cta"> não herda a cor de link (texto sumia no botão) */
html.v8 a.v8-cta { color: var(--on-cta); }
html.v8 a.v8-btn2, html.v8 a.v8-chip { color: var(--ink); }

/* 16/10 (Rafael, celular): segurar um elemento pintava o contorno/seleção do navegador */
html.v8 *{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}
html.v8 body{-webkit-user-select:none;user-select:none}
html.v8 input,html.v8 textarea,html.v8 [contenteditable]{-webkit-user-select:text;user-select:text}

/* 16/10 — página antiga embutida no app novo (app-web.html, ?embed=1): sem menu/barra, conteúdo colado em cima */
html.embed .app-main, html.embed .page-main { margin-left: 0; padding: 10px 0 48px; min-height: 0; animation: none; }
html.embed body { overflow-x: hidden; }
