/* assets/css/home.css — usado por: home.html */
*{box-sizing:border-box;margin:0;padding:0;}
input{outline:none!important;border:none!important;box-shadow:none!important;-webkit-appearance:none;appearance:none;}
body{background:var(--surface-page);display:flex;justify-content:center;align-items:flex-start;min-height:100vh;padding:24px 0;font-family:'Plus Jakarta Sans',sans-serif;}

/* ── VARIÁVEIS DE CAPA — atualizadas via JS ao carregar/trocar viagem ── */
:root{
  --capa-grad:linear-gradient(135deg,#F8842A 0%,#3B78EE 100%);
  --capa-cor:#F8842A;
  --capa-slot-tarefa-bg:#FEA96A;
  --capa-slot-tarefa-txt:#fff;
  --capa-slot-tarefa-ico:rgba(0,0,0,0.15);
  --capa-slot-tarefa-ico-txt:#fff;
  --capa-slot-outro-bg:#EBF1FD;
  --capa-slot-outro-txt:#042C53;
  --capa-slot-outro-ico:rgba(59,120,238,0.18);
  --capa-slot-outro-ico-txt:#185FA5;
  --capa-slot-outro-borda:transparent;
  --capa-hosp-bg:rgba(248,132,42,0.08);
  --capa-hosp-borda:rgba(248,132,42,0.45);
  --capa-hosp-icotxt:#854F0B;
  --capa-hosp-lbl:#633806;
  --capa-hosp-sub:#854F0B;
  --capa-hosp-plus-bg:rgba(248,132,42,0.15);
  --capa-hosp-plus-txt:#F8842A;
  --capa-alert-outline:#F8842A;
  --capa-mod-ico-bg:#F8842A;
}

/* ── PHONE FRAME — 390px, radius-screen 40px (v3) ── */
/* Zero border e zero box-shadow no .tv: as duas coisas juntas geravam a
   "sombra fantasma" (linha cinza horizontal no topo do .tv-hd) apontada por
   Carlos em 12/08 e reaberta em 16/08. Compensação com border 1px que eu
   tinha adicionado em 12/08 desenhava outline visível no desktop; removido.
   `isolation:isolate` força stacking context isolado — evita que o browser
   componha o `.tv` como camada semi-transparente sobre o body, o que dava
   aspecto "cinza degradê" nas curvas do border-radius (bug reportado por
   Carlos em Firefox + Safari desktop, viewport > 768px, onde `body.edge-mobile`
   não aplica). Ver pre-producao-hardening.md §18. */
.tv{
  width:390px;
  height:844px;
  background:#F5F1E8;
  border-radius:40px;
  overflow:hidden;
  position:relative;
  border:none;
  box-shadow:none !important;
  display:flex;
  flex-direction:column;
}

/* Dynamic Island — top 14px · 126×37px · z-index 60 (v3) */
.tv-island{position:absolute;top:14px;left:50%;transform:translateX(-50%);width:126px;height:37px;background:#000;border-radius:20px;z-index:60;}

/* ── STATUS BAR ── */
.sbar{position:relative;z-index:40;display:flex;justify-content:space-between;align-items:center;height:52px;padding:14px 28px 0;flex-shrink:0;background:var(--surface-page);}
.sbar-t{font-size:15px;font-weight:700;color:var(--ink-900);}
.sbar-icons{display:flex;gap:6px;align-items:center;}

/* ── HEADER — exceção Home: 54px + center (wordmark, não back button) ── */
.tv-hd{position:relative;z-index:40;height:54px;flex-shrink:0;background:var(--surface-page);}
.tv-hbtn{width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,0.58);border:1px solid rgba(255,255,255,0.82);box-shadow:0 1px 6px rgba(14,33,80,0.07),inset 0 1px 0 rgba(255,255,255,0.6);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;position:relative;transition:transform 120ms ease-out,background 120ms ease-out,opacity 120ms ease-out;user-select:none;}
.notif{position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--ember-500);border:1.5px solid var(--surface-page);}
.hd-normal{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 20px;gap:8px;transition:opacity 180ms ease-out;}
.tv-wm{font-family:'Sora',sans-serif;font-size:22px;font-weight:700;letter-spacing:-0.03em;line-height:1;flex-shrink:0;}
.tv-wm .t{color:var(--ink-800);}
.tv-wm .v{color:var(--sky-500);}
.hd-normal.hide{opacity:0;pointer-events:none;}
.hd-search{position:absolute;inset:0;display:flex;align-items:center;padding:0 20px;gap:8px;opacity:0;pointer-events:none;transition:opacity 180ms ease-out;background:var(--surface-page);z-index:65;}
.hd-search.show{opacity:1;pointer-events:auto;}
.s-field{flex:1;height:34px;display:flex;align-items:center;gap:6px;background:#fff;border:1.5px solid var(--sky-500);border-radius:999px;padding:0 13px;box-shadow:inset 0 1px 3px rgba(14,33,80,0.06);min-width:0;}
.s-field input{flex:1;min-width:0;border:none!important;outline:none!important;background:transparent!important;color:var(--ink-900);-webkit-text-fill-color:var(--ink-900);color-scheme:light;-webkit-appearance:none;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;padding:0;border-radius:0!important;box-shadow:none!important;}
.s-field input::placeholder{color:var(--slate-400);}
.btn-x{width:34px;height:34px;border-radius:999px;background:rgba(255,255,255,0.58);border:1px solid rgba(255,255,255,0.82);box-shadow:0 1px 6px rgba(14,33,80,0.07),inset 0 1px 0 rgba(255,255,255,0.6);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:transform 120ms ease-out,background 120ms ease-out,opacity 120ms ease-out;user-select:none;}

/* ── SHEET EDITAR MÓDULOS ── */
.ov-modulos{position:absolute;inset:0;border-radius:40px;z-index:45;pointer-events:none;}
.ov-modulos.open{pointer-events:auto;}
.ov-modulos-bd{position:absolute;inset:0;border-radius:40px;background:rgba(14,33,80,0.45);opacity:0;transition:opacity 300ms ease-out;}
.ov-modulos.open .ov-modulos-bd{opacity:1;}
/* D24: Filtro (gerenciar módulos) usa bege. */
.ov-modulos-panel{position:absolute;bottom:0;left:0;right:0;background:var(--surface-page);border-radius:20px 20px 0 0;box-shadow:0 -2px 20px rgba(14,33,80,0.12);transform:translateY(100%);transition:transform 300ms ease-out;display:flex;flex-direction:column;max-height:82%;}
.ov-modulos.open .ov-modulos-panel{transform:translateY(0);}
.mod-sheet-body{flex:1;overflow-y:auto;padding:0 20px 32px;}
.mod-sheet-body::-webkit-scrollbar{display:none;}
.mod-sheet-sec{font-size:10px;font-weight:700;color:var(--slate-400);letter-spacing:.07em;text-transform:uppercase;padding:14px 0 6px;}
.mod-row{display:flex;align-items:center;gap:12px;padding:10px 0;cursor:pointer;user-select:none;transition:opacity 120ms ease-out;border-bottom:1px solid rgba(14,33,80,0.05);}
.mod-row:active{opacity:0.7;}
.mod-row-locked{cursor:default;opacity:0.55;}
.mod-row-locked:active{opacity:0.55;}
.mod-row-ico{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.mod-row-ico-off{background:#f0f1f5;}
.mod-row-info{flex:1;min-width:0;}
.mod-row-n{font-size:13px;font-weight:700;color:var(--ink-800);}
.mod-row-sub{font-size:11px;color:var(--slate-400);margin-top:1px;}
.mod-row-dep{font-size:10px;font-weight:600;color:var(--ember-500);margin-top:2px;display:flex;align-items:center;gap:4px;}
.mod-row-dep::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--ember-500);flex-shrink:0;}
.mod-tog{width:44px;height:24px;border-radius:999px;display:flex;align-items:center;padding:3px;flex-shrink:0;transition:background 200ms ease-out;box-shadow:inset 0 1px 2px rgba(0,0,0,0.12);}
.mod-tog-on{background:var(--sky-500);justify-content:flex-end;}
.mod-tog-off{background:#d8dce8;justify-content:flex-start;}
.mod-tog-locked{background:var(--sky-500);justify-content:flex-end;pointer-events:none;}
.mod-tog-thumb{width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 2px 4px rgba(14,33,80,0.22),inset 0 1px 0 rgba(255,255,255,0.9);}


.tv-scroll{flex:1;overflow-y:auto;overflow-x:hidden;}
.tv-scroll::-webkit-scrollbar{display:none;}

/* ── HERO ── */
.tv-hero{margin:0 16px;border-radius:28px;background:var(--capa-grad);padding:88px 16px 12px;cursor:pointer;transition:transform 120ms ease-out;user-select:none;position:relative;overflow:hidden;box-sizing:border-box;}
.tv-hero:active{transform:scale(0.98);}
/* foto de fundo */
.tv-hero-foto{position:absolute;inset:0;background-size:cover;background-position:center;transition:opacity 300ms ease-out;}
/* overlay opção A — glass navy uniforme */
.tv-hero-overlay-a{position:absolute;inset:0;background:rgba(12,27,64,0.45);}
/* overlay opção B — degradê só no rodapé */
.tv-hero-overlay-b{position:absolute;inset:0;background:linear-gradient(to top,rgba(12,27,64,0.88) 0%,rgba(12,27,64,0.20) 55%,rgba(12,27,64,0.0) 100%);}
/* conteúdo sempre acima da foto */
.tv-hero-content{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;height:100%;}
.tv-hero-title{font-family:'Sora',sans-serif;font-size:30px;font-weight:700;color:#fff;line-height:1.1;letter-spacing:-0.02em;}
.tv-hero-sub{font-size:11px;font-weight:500;color:rgba(255,255,255,0.68);margin-top:5px;}
/* linha inferior do hero — chip de hospedagem */
.tv-hero-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,0.15);}
.hosp-chip{display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,0.18);border:1px solid rgba(255,255,255,0.30);border-radius:999px;padding:4px 10px 4px 6px;cursor:pointer;transition:background 120ms ease-out,transform 120ms ease-out;user-select:none;}
.hosp-chip:active{background:rgba(255,255,255,0.28);transform:scale(0.96);}
.hosp-chip-ico{width:18px;height:18px;border-radius:999px;background:rgba(255,255,255,0.22);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.hosp-chip-lbl{font-size:10px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px;}
.hosp-chip-lbl.vazia{color:rgba(255,255,255,0.65);}
/* botão de teste — visível mas discreto */
.hero-test-btn{font-size:10px;font-weight:700;color:rgba(255,255,255,0.90);cursor:pointer;user-select:none;white-space:nowrap;padding:5px 10px;border-radius:999px;border:1px solid rgba(255,255,255,0.55);background:rgba(0,0,0,0.25);transition:opacity 120ms;-webkit-tap-highlight-color:transparent;}
/* Hero expandido — estado 6 (sem smart card) */
.tv-hero-next{display:flex;align-items:center;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,0.18);}
.tv-hero-next-ico{width:22px;height:22px;border-radius:6px;background:rgba(255,255,255,0.18);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.tv-hero-next-txt{font-size:10px;color:rgba(255,255,255,0.80);font-weight:500;}
.tv-hero-next-txt strong{color:#fff;font-weight:700;}

/* ── SMART CARD ── */
.tv-smart{display:flex;margin:8px 16px 0;gap:8px;height:88px;}
.sc-slot{flex:1;border-radius:14px;display:flex;flex-direction:column;justify-content:space-between;padding:11px 12px;min-width:0;transition:background 200ms ease-out;}
/* slot tarefa — cor via capa */
.sc-slot-tarefa{background:var(--capa-slot-tarefa-bg);}
.sc-slot-tarefa.atrasada{background:var(--ember-500);}
/* slot outro (passeio/restaurante) — cor via capa */
.sc-slot-outro{background:var(--capa-slot-outro-bg);border:1.5px solid var(--capa-slot-outro-borda);}
/* Slot foto de nota — entre tarefa e outro, fundo ember sutil */
.sc-slot-foto{background:var(--capa-slot-outro-bg);border:1.5px solid var(--capa-slot-outro-borda);cursor:pointer;}
.sc-slot-foto:active{opacity:0.82;transform:scale(0.97);}
.sc-ico-foto{background:var(--capa-slot-outro-ico);}
.sc-ico-foto svg{stroke:var(--capa-slot-outro-ico-txt);}
.sc-badge-foto{background:var(--capa-slot-outro-ico);color:var(--capa-slot-outro-ico-txt);}
.sc-name-foto{font-size:11px;font-weight:700;color:var(--capa-slot-outro-txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px;}
.sc-meta-foto{font-size:9px;font-weight:500;color:var(--capa-slot-outro-ico-txt);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sc-ico{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.sc-ico-tarefa{background:var(--capa-slot-tarefa-ico);}
.sc-ico-tarefa svg{stroke:var(--capa-slot-tarefa-ico-txt);}
.sc-ico-outro{background:var(--capa-slot-outro-ico);}
.sc-ico-outro svg{stroke:var(--capa-slot-outro-ico-txt);}
.sc-badge{display:inline-flex;border-radius:999px;padding:2px 7px;font-size:9px;font-weight:700;}
.sc-badge-tarefa{background:rgba(0,0,0,0.16);color:var(--capa-slot-tarefa-txt);}
.sc-badge-tarefa.atrasada{background:rgba(0,0,0,0.22);color:#fff;}
.sc-badge-outro{background:var(--capa-slot-outro-ico);color:var(--capa-slot-outro-ico-txt);}
.sc-name-tarefa{font-size:11px;font-weight:700;color:var(--capa-slot-tarefa-txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px;}
.sc-name-tarefa.atrasada{color:#fff;}
.sc-name-outro{font-size:11px;font-weight:700;color:var(--capa-slot-outro-txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px;}
.sc-meta-tarefa{font-size:9px;font-weight:500;color:var(--capa-slot-tarefa-txt);opacity:0.78;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sc-meta-outro{font-size:9px;font-weight:500;color:var(--capa-slot-outro-ico-txt);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ── MÓDULOS ── */
.tv-sec{display:flex;align-items:center;justify-content:space-between;padding:14px 20px 8px;}
/* BANNER FOTO DE NOTA — aparece só quando há fotos pendentes, estilo alerta checklist */
.tv-sec-t{font-family:'Sora',sans-serif;font-size:15px;font-weight:700;color:var(--ink-800);}
.tv-sec-h{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--slate-500);font-weight:600;}
.tv-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px;}
.tv-mod{background:#fff;border-radius:16px;padding:11px 12px;display:flex;flex-direction:column;justify-content:space-between;height:88px;box-shadow:inset 0 1px 3px rgba(14,33,80,0.07),0 1px 0 rgba(255,255,255,0.9);cursor:grab;transition:transform 180ms ease-out,opacity 180ms ease-out,box-shadow 180ms ease-out;user-select:none;will-change:transform;outline:0.75px solid transparent;outline-offset:0;}
.tv-mod.dragging{opacity:0.35;transform:scale(0.93);cursor:grabbing;box-shadow:none;}
.tv-mod.yield-up{transform:translateY(-10px) scale(0.97);box-shadow:0 6px 18px rgba(14,33,80,0.10);}
.tv-mod.yield-down{transform:translateY(10px) scale(0.97);box-shadow:0 6px 18px rgba(14,33,80,0.10);}
.tv-mod.yield-left{transform:translateX(-10px) scale(0.97);box-shadow:0 6px 18px rgba(14,33,80,0.10);}
.tv-mod.yield-right{transform:translateX(10px) scale(0.97);box-shadow:0 6px 18px rgba(14,33,80,0.10);}
/* Alerta — outline + ícone na cor da capa */
.tv-mod.has-alert{outline-color:var(--capa-alert-outline);}
/* Skeleton de carregamento — enquanto a config de módulos vem do banco (/me/modules) */
.tv-mod-skel{cursor:default;justify-content:space-between;position:relative;overflow:hidden;pointer-events:none;}
.tv-mod-skel::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,transparent 25%,rgba(255,255,255,0.7) 50%,transparent 75%);transform:translateX(-100%);animation:tv-skel-shimmer 1.15s ease-in-out infinite;}
.tv-mod-skel .skel-ico{width:32px;height:32px;border-radius:10px;background:#E8ECF3;}
.tv-mod-skel .skel-lines{display:flex;flex-direction:column;gap:6px;}
.tv-mod-skel .skel-l1{width:64%;height:9px;border-radius:5px;background:#E8ECF3;}
.tv-mod-skel .skel-l2{width:42%;height:8px;border-radius:5px;background:#EFF2F7;}
@keyframes tv-skel-shimmer{to{transform:translateX(100%);}}
.mod-ico{width:32px;height:32px;background:var(--sky-100);border-radius:10px;display:flex;align-items:center;justify-content:center;transition:background 200ms ease-out;flex-shrink:0;}
.mod-ico.alert{background:var(--capa-mod-ico-bg);}
.mod-ico svg{transition:stroke 200ms ease-out;}
.mod-ico.alert svg{stroke:#fff!important;}
.mod-n{font-size:14px;font-weight:700;color:var(--ink-800);margin-top:2px;line-height:1.2;word-break:keep-all;overflow-wrap:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mod-s{font-size:12px;color:var(--slate-400);font-weight:500;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mod-s.alert-txt{color:var(--capa-cor);font-weight:600;}

/* ── SKELETON LOADER — usado em .mod-s + hero durante fetch da Home.
   Padrão skeleton screen (Facebook/etc). JS substitui o span por texto real
   ao completar o fetch; fallback pra "—" se erro silencioso.
   Variantes:
     .tv-skel / .tv-skel-title / .tv-skel-sub / @keyframes tv-shimmer
     movidas pra base.css em 2026-08-19 (Mock 0 completude) — todas as
     telas reusam sem duplicação. Ver base.css. */

/* ── SAFE BOTTOM ──
   `background:transparent` explícito evita "sombra fantasma" cinza no rodapé:
   sem background, o browser criava uma camada de compositing separada que
   renderizava com micro-diferença de cor vs `.tv-scroll` bege (mesmo bug do
   `.tv-hd` resolvido em 12/08 — pre-producao-hardening §18). Com transparent,
   o `.tv` bege aparece direto por trás, uma camada só. */
.tv-safe{height:40px;flex-shrink:0;background:transparent;}

/* ── FAB ── */
.tv-fab{position:absolute;bottom:52px;left:50%;transform:translateX(-50%);width:48px;height:48px;border-radius:999px;background:linear-gradient(160deg,rgba(255,255,255,0.82) 0%,rgba(255,255,255,0.52) 100%);border:1px solid rgba(255,255,255,0.88);box-shadow:0 2px 12px rgba(14,33,80,0.13),inset 0 1px 0 rgba(255,255,255,0.95);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:34;transition:transform 120ms ease-out,opacity 120ms ease-out;user-select:none;}
/* D24: Menu do + usa fundo bege. */
.fab-sheet{position:absolute;bottom:44px;left:50%;width:260px;background:var(--surface-page);border-radius:20px;box-shadow:0 4px 24px rgba(14,33,80,0.16);padding:12px 0 8px;z-index:36;transform:translateX(-50%) translateY(20px) scale(0.92);opacity:0;pointer-events:none;transition:transform 200ms ease-out,opacity 200ms ease-out;transform-origin:bottom center;}
.fab-sheet.open{transform:translateX(-50%) translateY(-52px) scale(1);opacity:1;pointer-events:auto;}
.fab-bd{position:absolute;inset:0;border-radius:40px;z-index:35;display:none;background:rgba(14,33,80,0.12);}
.fab-bd.open{display:block;}
.fab-item{display:flex;align-items:center;gap:10px;padding:9px 14px;cursor:pointer;transition:background 80ms;}
.fab-item:active{background:rgba(59,120,238,0.09);}
.fi{width:32px;height:32px;border-radius:9px;background:var(--sky-100);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.fi.r{background:var(--ember-100);}
.fl{font-size:12px;font-weight:700;color:var(--ink-800);}
.fs{font-size:10px;color:var(--slate-400);margin-top:1px;}
.fdiv{height:1px;background:rgba(14,33,80,0.06);margin:4px 14px;}

/* ── INBOX ── */
.ov-inbox{position:absolute;top:0;left:0;right:0;background:var(--surface-page);border-radius:40px 40px 24px 24px;box-shadow:0 8px 32px rgba(14,33,80,0.18);z-index:45;transform:translateY(-110%);transition:transform 260ms ease-out;overflow:hidden;padding-bottom:16px;}
.ov-inbox.open{transform:translateY(0);}
.inbox-hd{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 14px;}
.inbox-title{font-family:'Sora',sans-serif;font-size:18px;font-weight:700;color:var(--ink-800);}
.xbtn{width:30px;height:30px;border-radius:999px;background:rgba(255,255,255,0.58);border:1px solid rgba(255,255,255,0.82);box-shadow:0 1px 6px rgba(14,33,80,0.07);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform 120ms,background 120ms;flex-shrink:0;}
.xbtn:active{transform:scale(0.96);background:rgba(255,255,255,0.30);}
.inbox-item{display:flex;align-items:flex-start;gap:10px;padding:12px 20px;border-top:1px solid rgba(14,33,80,0.05);}
.idot{width:7px;height:7px;border-radius:50%;background:var(--sky-500);margin-top:5px;flex-shrink:0;cursor:pointer;transition:background 160ms ease-out;user-select:none;}
.idot.lida{background:transparent;}
.iico{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.iico-sky{background:var(--sky-100);}.iico-palm{background:var(--palm-100);}.iico-ember{background:var(--ember-100);}.iico-slate{background:#f0f1f5;}
.ibody{flex:1;min-width:0;}
.ititle{font-size:11px;font-weight:700;color:var(--ink-800);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ititle.lida{color:var(--slate-400);font-weight:600;}
.isub{font-size:10px;color:var(--slate-500);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.isub.lida{color:var(--slate-400);}
.itime{font-size:9px;color:var(--slate-400);font-family:'Space Mono',monospace;flex-shrink:0;padding-left:8px;padding-top:2px;white-space:nowrap;}

/* ── MENU LATERAL — degradê da capa ativa ── */
.ov-menu{position:absolute;inset:0;border-radius:40px;z-index:45;pointer-events:none;}
.ov-menu.open{pointer-events:auto;}
.mbd{position:absolute;inset:0;border-radius:40px;background:rgba(0,0,0,0.25);opacity:0;transition:opacity 240ms ease-out;}
.ov-menu.open .mbd{opacity:1;}
.mpanel{position:absolute;top:0;right:0;bottom:0;width:82%;background:var(--side-bg);border-radius:20px 40px 40px 20px;display:flex;flex-direction:column;transform:translateX(100%);transition:transform 240ms ease-out;}
.ov-menu.open .mpanel{transform:translateX(0);}
.mtop{padding:48px 24px 20px;flex:1;overflow-y:auto;}
.mavatar{width:52px;height:52px;border-radius:44%/38%;background:rgba(255,255,255,0.20);border:2px solid rgba(255,255,255,0.4);display:flex;align-items:center;justify-content:center;margin-bottom:12px;font-family:'Sora',sans-serif;font-size:20px;font-weight:700;color:rgba(255,255,255,0.9);}
.mname{font-family:'Sora',sans-serif;font-size:16px;font-weight:700;color:#fff;margin-bottom:2px;}
.mrole{font-size:11px;color:rgba(255,255,255,0.65);font-weight:500;}
.mdiv{height:1px;background:rgba(255,255,255,0.18);margin:14px 0;}
.mitem{display:flex;align-items:center;gap:12px;padding:10px 0;cursor:pointer;transition:opacity 120ms;user-select:none;}
.mitem:active{opacity:0.6;}
.mico{width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,0.15);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.mlbl{font-size:13px;font-weight:600;color:#fff;}
.mbot{padding:18px 24px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(255,255,255,0.15);}
.mver{font-family:'Space Mono',monospace;font-size:10px;color:rgba(255,255,255,0.35);}
.mclose{width:34px;height:34px;border-radius:999px;background:rgba(255,255,255,0.15);border:1px solid rgba(255,255,255,0.25);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform 120ms;user-select:none;}
.mclose:active{transform:scale(0.96);}

/* ── SELETOR DE VIAGENS ── */
.ov-trips{position:absolute;inset:0;border-radius:40px;z-index:45;pointer-events:none;}
.ov-trips.open{pointer-events:auto;}
.trips-bd{position:absolute;inset:0;border-radius:40px;background:rgba(14,33,80,0.38);opacity:0;transition:opacity 260ms ease-out;}
.ov-trips.open .trips-bd{opacity:1;}
.trips-panel{position:absolute;bottom:0;left:0;right:0;background:var(--surface-page);border-radius:28px 28px 40px 40px;transform:translateY(100%);transition:transform 300ms ease-out;padding-bottom:32px;}
.ov-trips.open .trips-panel{transform:translateY(0);}
.trips-handle{display:flex;justify-content:center;padding:10px 0 6px;}
.trips-bar{width:32px;height:4px;background:#d8dce8;border-radius:999px;}
.trips-hd{display:flex;align-items:center;justify-content:space-between;padding:8px 20px 12px;}
.trips-title{font-family:'Sora',sans-serif;font-size:18px;font-weight:700;color:var(--ink-900);letter-spacing:-0.02em;}
.trips-count{font-size:11px;color:var(--slate-400);}
.trips-list{padding:0 14px;display:flex;flex-direction:column;gap:8px;}
.tcard{background:#fff;border-radius:18px;padding:11px 13px;display:flex;align-items:center;gap:12px;box-shadow:inset 0 1px 3px rgba(14,33,80,0.07),0 1px 0 rgba(255,255,255,0.9);border:1.5px solid transparent;cursor:pointer;transition:transform 120ms ease-out,border-color 160ms ease-out;user-select:none;}
.tcard:active{transform:scale(0.97);}
.tcard.active{border-color:var(--sky-500);}
.tcover{width:40px;height:40px;border-radius:44%/38%;flex-shrink:0;}
.tcover-1{background:linear-gradient(135deg,var(--ember-500),var(--sky-500));}
.tcover-2{background:linear-gradient(135deg,var(--sky-500),var(--ink-900));}
.tcover-3{background:linear-gradient(135deg,var(--palm-500),var(--sky-500));}
.tcover-4{background:linear-gradient(135deg,var(--ember-500),var(--coral-500));}
.tcover-5{background:linear-gradient(135deg,var(--slate-500),var(--sky-500));}
.tcover-6{background:linear-gradient(135deg,var(--ink-900),var(--slate-500));}
/* aliases legados */
.tcover-l{background:linear-gradient(135deg,var(--ember-500),var(--sky-500));}
.tcover-b{background:linear-gradient(135deg,#4A90D9,#6BB3F0);}
.tcover-c{background:var(--palm-500);}
.tinfo{flex:1;min-width:0;}
.tname{font-size:13px;font-weight:700;color:var(--slate-900);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tdates{font-family:'Space Mono',monospace;font-size:10px;color:var(--slate-500);}
.tright{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;}
.tchip{display:inline-flex;align-items:center;border-radius:999px;padding:3px 9px;font-size:10px;font-weight:700;white-space:nowrap;}
.tchip-g{background:var(--palm-100);color:#0F6E56;}
.tchip-b{background:var(--sky-200);color:var(--sky-700);}
.tchip-e{background:var(--ember-100);color:#8B4210;}
.tcheck{width:20px;height:20px;border-radius:50%;background:var(--sky-500);display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(0.5);transition:opacity 180ms ease-out,transform 180ms ease-out;}
.tcheck.on{opacity:1;transform:scale(1);}
.tcheck svg{width:10px;height:10px;stroke:#fff;stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.trips-div{height:1px;background:rgba(14,33,80,0.08);margin:12px 14px 0;}
.trips-footer{display:flex;align-items:center;justify-content:space-between;padding:10px 20px 0;}
.tf-arch{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--slate-500);cursor:pointer;transition:transform 120ms,opacity 120ms;}
.tf-arch:active{transform:scale(0.96);opacity:0.7;}
.tf-arch svg{width:13px;height:13px;stroke:var(--slate-500);stroke-width:1.75;fill:none;stroke-linecap:round;}
.tf-new{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:var(--sky-500);cursor:pointer;transition:transform 120ms,opacity 120ms;}
.tf-new:active{transform:scale(0.96);opacity:0.7;}
.tf-new svg{width:12px;height:12px;stroke:var(--sky-500);stroke-width:2.2;fill:none;stroke-linecap:round;}
.trips-notice{padding:6px 20px 0;text-align:center;font-size:10px;color:var(--slate-400);}

/* ── TIPO DE HOSPEDAGEM ── */
.hosp-tipos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:14px;}
.htcard{background:#fff;border:1px solid var(--border-neutral);border-radius:10px;padding:8px 6px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;transition:border-color 150ms ease-out,background 150ms ease-out;user-select:none;}
.htcard:active{transform:scale(0.97);}
.htcard.on{border-color:var(--sky-500);background:var(--sky-100);}
.htcard svg{flex-shrink:0;transition:stroke 150ms ease-out;}
.htcard.on svg{stroke:var(--sky-500);}
.htcard span{font-size:10px;font-weight:700;color:var(--slate-500);text-align:center;line-height:1.2;}
.htcard.on span{color:var(--sky-700);}

/* ── SHEET (criar viagem + hospedagem) ── */
.ov-hosp,.ov-criar{position:absolute;inset:0;border-radius:40px;z-index:60;pointer-events:none;}
/* GUARD CSS: só 1 sheet z-60 por vez */
#phone[data-sheet="criar"] .ov-hosp,
#phone[data-sheet="hosp"] .ov-criar,
#phone[data-sheet="trips"] .ov-hosp,
#phone[data-sheet="trips"] .ov-criar{visibility:hidden!important;pointer-events:none!important;}
.ov-hosp.open,.ov-criar.open{pointer-events:auto;}
.ov-hosp-bd,.ov-criar-bd{position:absolute;inset:0;border-radius:40px;background:rgba(14,33,80,0.45);opacity:0;transition:opacity 300ms ease-out;}
.ov-hosp.open .ov-hosp-bd,.ov-criar.open .ov-criar-bd{opacity:1;}
.ov-hosp-panel,.ov-criar-panel{position:absolute;bottom:0;left:0;right:0;background:var(--surface-page);border-radius:20px 20px 40px 40px;transform:translateY(100%);transition:transform 300ms ease-out;display:flex;flex-direction:column;max-height:88%;}
.ov-hosp.open .ov-hosp-panel,.ov-criar.open .ov-criar-panel{transform:translateY(0);}
.sh-handle{display:flex;justify-content:center;padding:10px 0 4px;flex-shrink:0;}
.sh-bar{width:32px;height:4px;background:#d8dce8;border-radius:999px;}
/* D24 (Fernanda 09/08): título → conteúdo = 20px (spec §Medidas). */
.sh-hd{display:flex;align-items:center;justify-content:space-between;padding:8px 20px 20px;flex-shrink:0;}
.sh-title{font-family:'Sora',sans-serif;font-size:18px;font-weight:700;color:var(--ink-800);letter-spacing:-0.02em;}
.sh-x{width:26px;height:26px;border-radius:50%;background:rgba(14,33,80,0.10);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform 120ms ease-out,background 120ms ease-out;flex-shrink:0;}
.sh-x:active{transform:scale(0.92);background:rgba(14,33,80,0.18);}
.sh-body{flex:1;overflow-y:auto;padding:0 20px;}
.sh-body::-webkit-scrollbar{display:none;}
.sh-banner{border-radius:20px;background:linear-gradient(135deg,var(--ember-500),var(--sky-500));height:100px;display:flex;align-items:center;justify-content:center;margin-bottom:20px;cursor:pointer;transition:opacity 120ms ease-out;}
.sh-banner:active{opacity:0.85;}
.sh-banner-label{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,0.22);border:1px solid rgba(255,255,255,0.42);border-radius:999px;padding:6px 14px;font-size:12px;font-weight:700;color:#fff;}
.sh-label{font-size:12px;font-weight:600;color:var(--ink-800);margin-left:5px;margin-bottom:3px;display:block;}
.input-wrap{background:#fff;border:1.5px solid var(--border-neutral);border-radius:14px;padding:10px 13px;display:flex;align-items:center;box-shadow:inset 0 1px 3px rgba(14,33,80,0.07),0 1px 0 rgba(255,255,255,0.9);transition:border-color 150ms ease-out;margin-bottom:14px;}
.input-wrap.focused{border-color:var(--sky-500);}
.input-wrap input[type="text"],.input-wrap input[type="date"]{border:none;outline:none;background:transparent;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;color:var(--ink-900);width:100%;-webkit-appearance:none;}
.input-wrap input::placeholder{color:var(--slate-400);}
.sh-row{display:flex;gap:10px;}
.sh-row>div{flex:1;}
/* D24 (Fernanda 09/08): rodapé = 20px (último → botões) + 24px (botões → base) +
   34px de área segura (safe-area do iPhone). Usa env(safe-area-inset-bottom)
   com fallback 34px — mobile com notch: 24+34=58; mobile sem notch / desktop:
   24+0=24. */
.sh-footer{padding:20px 20px calc(24px + env(safe-area-inset-bottom, 34px));flex-shrink:0;}
.sh-cta{width:100%;background:var(--sky-500);border-radius:999px;padding:14px 20px;font-size:14px;font-weight:700;color:#fff;text-align:center;cursor:pointer;box-shadow:0 2px 10px rgba(59,120,238,0.28),inset 0 1px 0 rgba(255,255,255,0.15);transition:transform 120ms ease-out,background 120ms ease-out;user-select:none;}
.sh-cta:active{transform:scale(0.96);background:var(--sky-600);}
/* Seletor de gradiente */
.grad-section{margin-bottom:14px;}
.grad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px;}
.grad-pill{height:40px;border-radius:12px;cursor:pointer;border:2px solid transparent;transition:transform 120ms ease-out,border-color 160ms ease-out;position:relative;}
.grad-pill:active{transform:scale(0.96);}
.grad-pill.selected{border-color:var(--ink-800);box-shadow:0 0 0 1px var(--ink-800);}
.grad-pill .gcheck{position:absolute;top:4px;right:4px;width:16px;height:16px;border-radius:50%;background:#fff;display:none;align-items:center;justify-content:center;}
.grad-pill.selected .gcheck{display:flex;}
.grad-pill .gcheck svg{width:9px;height:9px;stroke:var(--ink-800);stroke-width:2.5;fill:none;stroke-linecap:round;}
.g1{background:linear-gradient(135deg,var(--ember-500),var(--sky-500));}
.g2{background:linear-gradient(135deg,var(--sky-500),var(--ink-900));}
.g3{background:linear-gradient(135deg,var(--palm-500),var(--sky-500));}
.g4{background:linear-gradient(135deg,var(--ember-500),var(--coral-500));}
.g5{background:linear-gradient(135deg,var(--slate-500),var(--sky-500));}
.g6{background:linear-gradient(135deg,var(--ink-900),var(--slate-500));}
.tv-mod.yield-up{transform:translateY(-10px) scale(0.97);box-shadow:0 6px 18px rgba(14,33,80,0.10);}
.tv-mod.yield-down{transform:translateY(10px) scale(0.97);box-shadow:0 6px 18px rgba(14,33,80,0.10);}
.tv-mod.yield-left{transform:translateX(-10px) scale(0.97);box-shadow:0 6px 18px rgba(14,33,80,0.10);}
.tv-mod.yield-right{transform:translateX(10px) scale(0.97);box-shadow:0 6px 18px rgba(14,33,80,0.10);}
/* ── CALENDÁRIO INLINE (DS §33) ── */
.cal-trigger{cursor:pointer;user-select:none;}
.cal-trigger.cal-active{border-color:var(--sky-500);}
.cal-trigger svg{flex-shrink:0;margin-right:8px;}
.cal-trigger-txt{font-size:13px;font-weight:600;color:var(--ink-900);}
.cal-wrap{background:#fff;border-radius:14px;padding:10px;margin-bottom:14px;box-shadow:inset 0 1px 3px rgba(14,33,80,0.07),0 1px 0 rgba(255,255,255,0.9);display:none;}
.cal-wrap.open{display:block;}
.cal-hint{text-align:center;font-size:10px;font-weight:600;color:var(--sky-500);padding:4px 0 6px;}
.cal-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.cal-nav{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background 120ms ease-out;user-select:none;}
.cal-nav:active{background:rgba(14,33,80,0.07);}
.cal-month{font-size:12px;font-weight:700;color:var(--ink-800);}
.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;margin-bottom:2px;}
.cal-wd{font-size:9px;font-weight:600;color:var(--slate-400);padding:2px 0;}
.cal-days{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;}
.cal-d{width:32px;height:32px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--ink-800);cursor:pointer;transition:background 120ms ease-out;user-select:none;}
.cal-d:active{background:rgba(59,120,238,0.12);}
.cal-d.empty{pointer-events:none;}
.cal-d.selected{background:var(--sky-500);color:#fff;}
.cal-d.today:not(.selected){background:var(--sky-100);color:var(--sky-700);}
.cal-d.in-range{background:rgba(59,120,238,0.08);}
.cal-d.disabled{color:#d8dce8;pointer-events:none;}
/* Google Places autocomplete dropdown — acima dos sheets z-60 */
.pac-container{z-index:9999 !important;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;border-radius:10px;box-shadow:0 4px 20px rgba(14,33,80,0.14);border:1px solid var(--border-neutral);}
.pac-item{padding:8px 12px;cursor:pointer;}
.pac-item:hover{background:var(--sky-100);}
.pac-item-query{font-weight:600;color:var(--ink-800);}
