/* ══════════════════════════════════════════════════════════════
   HOSTFLOW — styles.css v7
   Nova identidade · Logo · Mobile iPhone fixes · Plus Jakarta Sans
   ══════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=DM+Mono:wght@400;500&display=swap');

/* ── TOKENS ─────────────────────────────────────────────────── */
:root {
  --brand-900: #0D1F2D;
  --brand-800: #1A3548;
  --brand-700: #1E4D6B;
  --brand-600: #1B6CA8;
  --brand-500: #2196D3;
  --brand-400: #5BB8E8;
  --brand-100: #E8F4FB;
  --brand-50:  #F2F9FE;

  --accent:    #0FA37F;
  --ok:        #0FA37F;
  --ok-bg:     #ECFDF5;
  --warn:      #B45309;
  --warn-bg:   #FFFBEB;
  --danger:    #E5373A;
  --danger-bg: #FEF2F2;
  --blue:      #2563EB;
  --blue-bg:   #EFF6FF;

  --bg:           #F8FAFB;
  --surface:      #FFFFFF;
  --surface-soft: #F1F5F9;
  --surface-mid:  #E8EDF3;
  --ink:          #0D1F2D;
  --ink-2:        #334155;
  --muted:        #5A7184;
  --muted-2:      #94A3B8;
  --line:         #E2E8F0;
  --line-soft:    #F1F5F9;

  --r:    10px;
  --r-sm: 7px;
  --r-lg: 16px;

  --sh:       0 1px 3px rgba(13,31,45,.06), 0 4px 16px rgba(13,31,45,.06);
  --sh-sm:    0 1px 2px rgba(13,31,45,.05), 0 2px 8px rgba(13,31,45,.04);
  --sh-lg:    0 8px 32px rgba(13,31,45,.10), 0 2px 8px rgba(13,31,45,.06);
  --sh-brand: 0 4px 14px rgba(33,150,211,.32), 0 1px 4px rgba(33,150,211,.18);

  --ease: cubic-bezier(.4,0,.2,1);
  --t:    160ms var(--ease);
  --tf:   100ms var(--ease);

  --font: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", ui-sans-serif, sans-serif;
  --mono: 'DM Mono', ui-monospace, "Cascadia Code", monospace;

  /* ── Design System v1 — cor com significado (operação) ──────── */
  --checkin:     #10B981; --checkin-bg:     rgba(16,185,129,.12);  /* verde-claro: entrada */
  --checkout:    #F59E0B; --checkout-bg:    rgba(245,158,11,.12);  /* laranja: saída */
  --cleaning:    #7C3AED; --cleaning-bg:    rgba(124,58,237,.12);  /* roxo: limpeza */
  --maintenance: #EF4444; --maintenance-bg: rgba(239,68,68,.12);   /* vermelho: manutenção */
  --revenue: var(--ok);                                            /* verde: receita/pago */
  /* Canais de reserva */
  --ch-airbnb:   #E91E8C; --ch-booking: #003B95; --ch-whatsapp: #25D366; --ch-direto: var(--brand-500);

  /* Escala de espaçamento (base 4px) */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px; --sp-6:24px; --sp-8:32px;
  /* Escala tipográfica */
  --text-xs:11px; --text-sm:12.5px; --text-base:13.5px; --text-md:15px; --text-lg:18px; --text-2xl:24px;
  --h1:clamp(24px,4vw,50px); --h2:clamp(18px,3vw,28px);
}

/* ── RESET ──────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  background: var(--bg);
  -webkit-text-size-adjust: 100%;
  /* Previne scroll horizontal no iPhone */
  overflow-x: hidden;
}

body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font);
  font-size: 15px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overscroll-behavior-x: none;
  /* Crítico: impede overflow horizontal mas PERMITE scroll vertical */
  overflow-x: hidden;
  overflow-y: auto;
  max-width: 100vw;
}

button, input, select, textarea { font: inherit; }
button { cursor: pointer; border: 0; background: transparent; }
a { color: inherit; text-decoration: none; }

/* Qualquer elemento não pode vazar lateralmente */
.app-shell, .workspace, .sidebar, .panel, .record-card,
.filters, .unit-card, .cleaning-tile, .metric-card {
  min-width: 0;
}

/* ── LOGO SVG (H com ondas) ─────────────────────────────────── */
.hf-logo-svg {
  display: block;
  width: 60%;
  height: 60%;
  flex-shrink: 0;
}

.brand-mark {
  display: grid;
  width: 38px; height: 38px;
  flex-shrink: 0;
  place-items: center;
  border-radius: 10px;
  background: linear-gradient(135deg, #2196D3, #1A3548);
  box-shadow: 0 2px 8px rgba(33,150,211,.35);
  overflow: hidden;
}

/* Wordmark "hostflow" */
.brand-wordmark {
  display: flex;
  align-items: baseline;
  gap: 0;
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -.025em;
  line-height: 1;
}
.brand-wordmark .w-host { color: #fff; }
.brand-wordmark .w-flow { color: var(--brand-400); }

.brand-block {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.brand-block small {
  display: block;
  color: rgba(255,255,255,.42);
  font-size: 11px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin-top: 2px;
}

/* ── NÚMEROS / VALORES — DM Mono ────────────────────────────── */
.mono,
.metric-card strong,
.report-callout strong,
.mobile-health strong,
.price-card strong,
.donut span { font-family: var(--mono); }

/* ── AUTH ───────────────────────────────────────────────────── */
.auth-page {
  display: grid;
  min-height: 100dvh;
  grid-template-columns: minmax(0,1fr) minmax(320px,.65fr);
  background:
    radial-gradient(ellipse at 6% 8%, rgba(33,150,211,.12), transparent 30%),
    radial-gradient(ellipse at 92% 88%, rgba(15,163,127,.08), transparent 28%),
    linear-gradient(155deg, #EEF5FB 0%, #E8F2F9 55%, #F8FAFB 100%);
}

.auth-hero {
  display: grid;
  align-content: center;
  gap: 24px;
  padding: clamp(28px,7vw,88px);
  min-width: 0;
}

.auth-hero h1 {
  margin: 0;
  font-size: clamp(34px,5.5vw,72px);
  font-weight: 800;
  line-height: .96;
  letter-spacing: -.035em;
  color: var(--brand-900);
}

.auth-hero p { max-width: 520px; color: var(--muted); font-size: 16px; line-height: 1.65; }
.auth-proof  { display: flex; flex-wrap: wrap; gap: 8px; }
/* ── BENEFITS (Tela de Login) ─────────────────────────────── */
.auth-benefits {
  display: grid;
  gap: 14px;
  margin-top: 8px;
  max-width: 540px;
}

.benefit-card {
  display: grid;
  grid-template-columns: 48px 1fr;
  align-items: start;
  gap: 14px;
  padding: 14px 16px;
  background: rgba(255,255,255,.6);
  border: 1px solid rgba(33,150,211,.16);
  border-radius: 14px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.benefit-card:hover {
  transform: translateY(-2px);
  background: rgba(255,255,255,.85);
  box-shadow: 0 6px 18px rgba(33,150,211,.12);
}

.benefit-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(33,150,211,.14), rgba(91,184,232,.18));
  color: var(--brand-600, #1B6CA8);
  flex-shrink: 0;
}

.benefit-icon-flag {
  background: transparent;
  padding: 4px;
  width: auto;
  height: auto;
}

.benefit-card strong {
  display: block;
  font-size: 14.5px;
  font-weight: 700;
  color: var(--brand-900, #0D1F2D);
  letter-spacing: -.01em;
  margin-bottom: 3px;
}

.benefit-card small {
  display: block;
  font-size: 12.5px;
  color: var(--muted, #5B6A7A);
  line-height: 1.5;
}

.auth-proof span, .eyebrow {
  display: inline-flex; align-items: center; width: fit-content;
  border-radius: 999px; padding: 5px 12px;
  background: rgba(33,150,211,.1); color: var(--brand-600);
  font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
}

.auth-card {
  align-self: center;
  width: min(420px, calc(100% - 32px));
  margin: 24px auto;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 28px;
  background: rgba(255,255,255,.96);
  box-shadow: var(--sh-lg);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
}
.auth-card h2 { font-size: 22px; font-weight: 700; letter-spacing: -.025em; margin: 14px 0 7px; }
.auth-card p  { color: var(--muted); font-size: 14px; line-height: 1.55; margin-bottom: 20px; }

/* LOGIN APP-STYLE - tela de login centrada (classes proprias, nao afeta o reset) */
.auth-page.login-app {
  grid-template-columns: 1fr;
  align-content: center;
  justify-items: center;
  padding: 24px;
}
.login-app .login-card {
  align-self: center;
  margin: 0 auto;
}
.login-app .login-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 18px;
}
.login-app .login-card h2 { text-align: center; margin-top: 0; }
.login-app .login-card p  { text-align: center; }
/* No cartao claro o "host" do wordmark precisa ser escuro (no base e branco) */
.login-app .login-brand .w-host { color: var(--brand-900); }

/* ── ONBOARDING ─────────────────────────────────────────────── */
.onboarding-page {
  display: grid; min-height: 100dvh; place-items: center; padding: 20px;
  background: radial-gradient(ellipse at 8% 6%, rgba(33,150,211,.12), transparent 30%), linear-gradient(155deg,#EEF5FB 0%,#E8F2F9 55%,#F8FAFB 100%);
}
.onboarding-card {
  width: min(860px,100%); border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: 32px; background: rgba(255,255,255,.96); box-shadow: var(--sh-lg);
  min-width: 0;
}
.onboarding-card h1 { font-size: clamp(24px,4vw,44px); font-weight: 800; letter-spacing: -.03em; line-height: 1.05; margin: 12px 0 8px; }
.onboarding-card p  { color: var(--muted); font-size: 15px; line-height: 1.6; margin-bottom: 24px; }

/* ── APP SHELL ──────────────────────────────────────────────── */
.app-shell {
  display: grid;
  min-height: 100dvh;
  grid-template-columns: 260px minmax(0,1fr);
  /* Bloqueia overflow horizontal, permite vertical */
  overflow-x: hidden;
  overflow-y: visible;
}

/* Workspace deve crescer com o conteúdo */
.workspace {
  overflow-y: visible;
}

/* ── SIDEBAR ────────────────────────────────────────────────── */
.sidebar {
  position: sticky;
  top: 0;
  height: 100dvh;
  display: grid;
  grid-template-rows: auto auto 1fr auto auto;
  padding: 18px 12px 16px;
  background: var(--brand-900);
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: none;
}
.sidebar::-webkit-scrollbar { display: none; }

.nav-section-label {
  padding: 14px 10px 5px;
  font-size: 10px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: rgba(255,255,255,.3);
}
.nav-list { display: grid; align-content: start; gap: 1px; }

.nav-list button {
  display: flex; align-items: center; gap: 10px;
  width: 100%; min-height: 40px;
  border-radius: var(--r-sm); padding: 9px 10px;
  color: rgba(255,255,255,.5); font-size: 13.5px; font-weight: 500;
  text-align: left; transition: background var(--t), color var(--t);
  position: relative; white-space: nowrap; overflow: hidden;
}
.nav-list button span:not(.nav-icon):not(.nav-badge) {
  overflow: hidden; text-overflow: ellipsis; flex: 1;
}
.nav-list button:hover { background: rgba(255,255,255,.07); color: rgba(255,255,255,.88); }
.nav-list button.active {
  background: rgba(33,150,211,.18); color: #fff;
  border-left: 3px solid var(--brand-500);
  padding-left: 7px;
}

.nav-badge {
  margin-left: auto; flex-shrink: 0;
  background: var(--danger); color: #fff;
  font-size: 10px; font-weight: 700; padding: 1px 6px;
  border-radius: 999px; min-width: 18px; text-align: center;
}

.nav-icon {
  display: grid; width: 22px; height: 22px; flex-shrink: 0;
  place-items: center; border-radius: 5px;
  background: rgba(255,255,255,.08);
}
.nav-icon svg { width: 15px; height: 15px; }
.active .nav-icon { background: rgba(33,150,211,.25); color: var(--brand-400); }

.sidebar-card {
  display: grid; gap: 3px; border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--r-sm); padding: 13px;
  background: rgba(255,255,255,.05); font-size: 12.5px; margin-top: 8px;
}
.sidebar-card small  { color: rgba(255,255,255,.38); font-size: 11px; }
.sidebar-card strong { color: #fff; }
.sidebar-card span   { color: rgba(255,255,255,.38); font-size: 11px; }

.sidebar-profile {
  display: grid; grid-template-columns: auto minmax(0,1fr); gap: 10px;
  align-items: center; border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--r-sm); padding: 11px 12px;
  background: rgba(255,255,255,.05); margin-top: 6px;
}
.sidebar-profile strong { display: block; color: #fff; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-profile small  { display: block; color: rgba(255,255,255,.42); font-size: 11px; }

.avatar {
  display: grid; width: 34px; height: 34px; place-items: center;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--brand-500), var(--accent));
  color: #fff; font-size: 11.5px; font-weight: 700; flex-shrink: 0;
}

/* ── WORKSPACE ──────────────────────────────────────────────── */
.workspace {
  min-width: 0;
  width: 100%;
  overflow-x: hidden;
  padding: 20px clamp(16px,3vw,32px) 48px;
}

/* ── TOPBAR ─────────────────────────────────────────────────── */
.topbar {
  position: sticky; top: 0; z-index: 30;
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  margin: -20px clamp(-16px,-3vw,-32px) 22px;
  padding: 14px clamp(16px,3vw,32px);
  background: rgba(248,250,251,.92);
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--line);
  min-width: 0;
}
.topbar h1 {
  margin: 5px 0 0;
  font-size: clamp(20px,3.5vw,36px);
  font-weight: 700; letter-spacing: -.03em; line-height: 1;
  /* Impede h1 de estourar */
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.topbar-date { margin: 4px 0 0; color: var(--muted-2); font-size: 12.5px; text-transform: capitalize; }
.top-actions, .inline-actions, .panel-actions, .record-actions, .onboarding-actions {
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
  flex-shrink: 0;
}

/* ── FIELDS ─────────────────────────────────────────────────── */
.field { display: grid; gap: 5px; min-width: 0; }
.field span { font-size: 11.5px; font-weight: 600; color: var(--muted); letter-spacing: .01em; }

input, select, textarea {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  background: #fff; color: var(--ink);
  padding: 9px 11px; font-size: 14px; outline: none;
  transition: border-color var(--t), box-shadow var(--t);
  -webkit-appearance: none; appearance: none;
  /* Impede inputs de estourar container */
  max-width: 100%;
}
textarea { min-height: 72px; resize: vertical; }
input:focus, select:focus, textarea:focus {
  border-color: var(--brand-500);
  box-shadow: 0 0 0 3px rgba(33,150,211,.14);
}

/* Reset para checkboxes e radios — não devem herdar estilos de input texto */
input[type=checkbox], input[type=radio] {
  width: auto;
  min-height: 0;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
  -webkit-appearance: auto;
  appearance: auto;
  max-width: none;
}
input[type=checkbox] { width: 16px; height: 16px; cursor: pointer; }
input[type=radio]    { width: 16px; height: 16px; cursor: pointer; }
select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235A7184' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center; padding-right: 32px;
}

/* ── BUTTONS ────────────────────────────────────────────────── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  min-height: 42px; border: 1px solid transparent;
  border-radius: var(--r-sm);
  padding: 9px 16px; background: var(--brand-500); color: #fff;
  font-size: 13.5px; font-weight: 600; text-decoration: none; white-space: nowrap;
  transition: transform var(--tf), box-shadow var(--t), background var(--t);
  box-shadow: var(--sh-brand);
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  /* Impede botão de estourar */
  max-width: 100%;
}
.btn:hover  { background: var(--brand-600); transform: translateY(-1px); }
.btn:active { transform: translateY(0) scale(.97); }
.btn:disabled { opacity: .5; pointer-events: none; }

.btn.ghost { background: #fff; color: var(--ink); border-color: var(--line); box-shadow: var(--sh-sm); }
.btn.ghost:hover { background: var(--surface-soft); }
.btn.danger { background: var(--danger); box-shadow: 0 4px 14px rgba(229,55,58,.22); }
.btn.danger:hover { background: #C42B2E; }
.btn.accent { background: var(--accent); box-shadow: 0 4px 14px rgba(15,163,127,.22); }
.btn.wide, .wide { width: 100%; }

.icon-btn {
  position: relative; display: inline-grid;
  width: 42px; height: 42px; flex-shrink: 0;
  place-items: center;
  border: 1px solid var(--line); border-radius: var(--r-sm);
  background: #fff; color: var(--ink); box-shadow: var(--sh-sm);
  transition: background var(--t); -webkit-tap-highlight-color: transparent;
}
.icon-btn:hover { background: var(--surface-soft); }
.icon-btn .nav-icon { background: transparent; width: 20px; height: 20px; }

.notification-dot {
  position: absolute; top: 9px; right: 9px;
  width: 6px; height: 6px; border: 2px solid #fff;
  border-radius: 999px; background: var(--danger);
}

/* ── BADGES ─────────────────────────────────────────────────── */
.badge {
  display: inline-flex; align-items: center; width: fit-content;
  border-radius: 999px; padding: 4px 10px;
  font-size: 11px; font-weight: 600; white-space: nowrap; letter-spacing: .01em;
  background: var(--surface-soft); color: var(--muted);
  flex-shrink: 0;
}
.badge.ok      { background: var(--ok-bg);      color: #065F46; }
.badge.warn    { background: var(--warn-bg);     color: #92400E; }
.badge.danger  { background: var(--danger-bg);   color: #991B1B; }
.badge.soft    { background: var(--brand-100);   color: var(--brand-700); }
.badge.neutral { background: var(--surface-mid); color: var(--ink-2); }
.badge.orange  { background: #FFF7ED;            color: #9A3412; }

/* ── KPI GRID ───────────────────────────────────────────────── */
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 12px; margin-bottom: 18px;
}

.metric-card {
  position: relative; overflow: hidden; display: grid; gap: 6px;
  padding: 18px; border: 1px solid var(--line); border-radius: var(--r);
  background: var(--surface); box-shadow: var(--sh-sm);
  min-width: 0;
  transition: transform var(--t), box-shadow var(--t);
}
.metric-card:hover { transform: translateY(-2px); box-shadow: var(--sh); }
.metric-card::before {
  content: ''; position: absolute; inset: 0 0 auto;
  height: 3px; background: linear-gradient(90deg, var(--brand-500), var(--accent));
  opacity: .6;
}
.metric-top { display: flex; align-items: center; gap: 8px; min-width: 0; }
.metric-top .nav-icon { background: var(--brand-100); color: var(--brand-600); width: 28px; height: 28px; border-radius: 7px; flex-shrink: 0; }
.metric-top .nav-icon svg { width: 15px; height: 15px; }
.metric-top span { font-size: 12px; font-weight: 600; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.metric-card strong { font-size: 24px; font-weight: 700; letter-spacing: -.025em; line-height: 1.1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.metric-card small  { font-size: 12px; color: var(--muted-2); line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.metric-card em {
  display: inline-flex; width: fit-content; border-radius: 999px;
  padding: 2px 8px; background: var(--ok-bg); color: #065F46;
  font-size: 11px; font-style: normal; font-weight: 700;
}
.sparkline { display: block; width: 100%; height: 36px; margin-top: 4px; opacity: .7; }

/* ── PANELS ─────────────────────────────────────────────────── */
.panel, .record-card, .unit-card, .price-card, .support-card, .cleaning-tile {
  border: 1px solid var(--line); border-radius: var(--r);
  background: var(--surface); box-shadow: var(--sh-sm);
  min-width: 0;
}
.panel { overflow: hidden; margin-bottom: 14px; }
.panel-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
  border-bottom: 1px solid var(--line); padding: 15px 18px;
  background: var(--surface-soft); flex-wrap: wrap;
}
.panel-head h2 { font-size: 14px; font-weight: 700; letter-spacing: -.01em; }
.panel-head p  { margin: 3px 0 0; color: var(--muted); font-size: 12.5px; }
.panel-body, .table-list { display: grid; gap: 10px; padding: 15px 18px; }

/* ── LAYOUT ─────────────────────────────────────────────────── */
.content-grid, .support-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

/* ── FILTERS ────────────────────────────────────────────────── */
.filters {
  display: grid;
  grid-template-columns: minmax(0,1.3fr) repeat(3,minmax(0,1fr));
  gap: 10px; margin-bottom: 14px;
  border: 1px solid var(--line); border-radius: var(--r);
  padding: 12px; background: #fff; box-shadow: var(--sh-sm);
}
.filters-extended { grid-template-columns: minmax(0,1.35fr) repeat(auto-fit,minmax(110px,1fr)); }

/* ── SEGMENTED TABS ─────────────────────────────────────────── */
.segmented-tabs {
  display: flex; gap: 3px; margin-bottom: 12px; overflow-x: auto;
  border: 1px solid var(--line); border-radius: var(--r);
  padding: 4px; background: #fff;
  scroll-snap-type: x proximity; scrollbar-width: none;
}
.segmented-tabs::-webkit-scrollbar { display: none; }
.segmented-tabs button {
  flex-shrink: 0; min-height: 34px; border-radius: 6px; padding: 6px 14px;
  color: var(--muted); font-size: 13px; font-weight: 500;
  transition: background var(--t), color var(--t); white-space: nowrap;
}
.segmented-tabs button.active { background: var(--brand-900); color: #fff; }

/* ── FORMS ──────────────────────────────────────────────────── */
.form-grid { display: grid; gap: 10px; min-width: 0; }
.form-grid.two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.reservation-grid  { grid-template-columns: repeat(auto-fit,minmax(140px,1fr)); }
.cleaning-grid, .expense-grid, .team-grid { grid-template-columns: repeat(auto-fit,minmax(130px,1fr)); }

/* ── RECORDS ────────────────────────────────────────────────── */
.record-card, .unit-card {
  display: grid; gap: 12px; padding: 14px 16px; box-shadow: none;
  transition: border-color var(--t);
}
.record-card:hover { border-color: #BDD0E0; }
.compact-record { grid-template-columns: minmax(0,1fr) auto; align-items: end; }
.record-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; min-width: 0; }
.record-title strong { font-size: 15px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; }

.record-urgent { border-color: #FCA5A5 !important; background: #FFF8F8 !important; }
.urgent-banner {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 12px; border-radius: var(--r-sm);
  background: var(--danger-bg); color: var(--danger);
  font-size: 12.5px; font-weight: 600; margin-bottom: 4px;
}
.urgent-banner .nav-icon { width: 18px; height: 18px; background: transparent; color: var(--danger); flex-shrink: 0; }

/* ── SUMMARY ROW ────────────────────────────────────────────── */
.summary-row {
  display: grid;
  /* Crítico: minmax(0,1fr) evita overflow */
  grid-template-columns: minmax(0,1fr) auto;
  gap: 10px; align-items: center;
  border: 1px solid var(--line); border-radius: var(--r-sm);
  padding: 11px 13px; background: #fff; transition: box-shadow var(--t);
}
.summary-row:hover { box-shadow: var(--sh-sm); }
.summary-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }
.summary-row p { margin: 2px 0 0; color: var(--muted); font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── EMPTY STATE ────────────────────────────────────────────── */
.empty {
  display: grid; justify-items: center; gap: 8px;
  border: 1.5px dashed var(--line); border-radius: var(--r);
  padding: 36px 20px; background: var(--surface-soft);
  color: var(--muted); text-align: center;
}
.empty .empty-icon {
  display: grid; width: 48px; height: 48px; place-items: center;
  border-radius: 12px; background: var(--brand-100); color: var(--brand-600); margin-bottom: 4px;
}
.empty .empty-icon svg { width: 22px; height: 22px; }
.empty strong { font-size: 14px; color: var(--ink-2); font-weight: 600; }
.empty span   { font-size: 13px; max-width: 280px; }

/* ── SKELETON ───────────────────────────────────────────────── */
@keyframes skeleton-pulse { 0%,100%{opacity:1} 50%{opacity:.45} }
.skeleton { background: var(--line); border-radius: 4px; animation: skeleton-pulse 1.5s ease-in-out infinite; }

/* ── UNITS ──────────────────────────────────────────────────── */
.unit-grid, .pricing-grid, .cleaning-board { display: grid; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); gap: 12px; }
.cleaning-board { margin-bottom: 14px; }

.cleaning-tile {
  display: grid; gap: 10px; padding: 16px; box-shadow: none;
  transition: border-color var(--t), transform var(--t);
}
.cleaning-tile:hover { border-color: #BDD0E0; transform: translateY(-1px); box-shadow: var(--sh-sm); }
.cleaning-tile span   { font-size: 11px; font-weight: 700; color: var(--muted); letter-spacing: .04em; text-transform: uppercase; }
.cleaning-tile strong { display: block; margin-top: 2px; font-size: 18px; font-weight: 700; letter-spacing: -.02em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cleaning-tile p { margin: 2px 0 0; color: var(--muted); font-size: 13px; }

.unit-strip { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 10px; }

.unit-snapshot {
  display: grid; grid-template-columns: 48px minmax(0,1fr) auto; gap: 12px;
  align-items: center; border: 1px solid var(--line); border-radius: var(--r);
  padding: 11px 13px; background: #fff; transition: transform var(--t), box-shadow var(--t);
}
.unit-snapshot:hover { transform: translateY(-1px); box-shadow: var(--sh); }
.unit-snapshot strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }
.unit-snapshot p { overflow: hidden; margin: 3px 0 0; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }

.unit-photo, .property-thumb {
  display: grid; place-items: center; border-radius: 9px; flex-shrink: 0;
  background: linear-gradient(135deg, var(--brand-600), var(--brand-800));
  color: #fff; font-weight: 700; font-size: 13px;
  background-position: center; background-size: cover;
}
.unit-photo.has-photo, .property-thumb.has-photo { color: transparent; }
/* unitPhoto agora é <img loading="lazy"> quando tem foto — preenche a moldura
   da classe (que define tamanho/raio) sem distorcer. */
img.has-photo { object-fit: cover; display: block; }
.unit-photo     { width: 48px; height: 48px; }
.property-thumb { width: 40px; height: 40px; }

.unit-mini-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
.unit-mini-metrics span {
  display: grid; gap: 2px; border: 1px solid var(--line); border-radius: 7px;
  padding: 9px 8px; background: var(--surface-soft);
  color: var(--muted); font-size: 11px; font-weight: 500; min-width: 0;
}
.unit-mini-metrics strong { color: var(--ink); font-size: 13px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ── RESERVATION ────────────────────────────────────────────── */
.reservation-title {
  display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 10px; align-items: center;
}
.reservation-title p { margin: 3px 0 0; color: var(--muted); font-size: 12px; white-space: normal; overflow-wrap: anywhere; }
.reservation-stepper { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 4px; }
.reservation-stepper span {
  overflow: hidden; border-radius: 999px; padding: 5px 4px;
  background: var(--surface-soft); color: var(--muted);
  font-size: 10px; font-weight: 600; text-align: center; text-overflow: ellipsis; white-space: nowrap;
}
.reservation-stepper span.done { background: var(--ok-bg); color: #065F46; }

/* ── RESERVATION COLLAPSIBLE CARD (details/summary) ─────────── */
details.reservation-details > summary.reservation-summary {
  cursor: pointer;
  list-style: none;
  position: relative;
  padding-right: 28px;
}
details.reservation-details > summary.reservation-summary::-webkit-details-marker {
  display: none;
}
details.reservation-details > summary.reservation-summary::after {
  content: "\203A";
  position: absolute;
  top: 50%; right: 8px;
  transform: translateY(-50%) rotate(0deg);
  transition: transform var(--t, .2s);
  font-size: 20px; line-height: 1;
  color: var(--muted);
}
details.reservation-details[open] > summary.reservation-summary::after {
  transform: translateY(-50%) rotate(90deg);
}
details.reservation-details[open] > summary.reservation-summary {
  margin-bottom: 10px;
}
details.reservation-details > .reservation-stepper,
details.reservation-details > .form-grid,
details.reservation-details > .record-actions { cursor: default; }

/* ── FILTER TOGGLE BUTTON (mostrar/ocultar concluídas) ──────── */
.filter-toggle {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  background: #fff;
  color: var(--ink);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  padding: 9px 11px;
  transition: border-color var(--t, .2s), background var(--t, .2s), color var(--t, .2s);
}
.filter-toggle:hover { border-color: var(--brand-500); }
.filter-toggle.active {
  background: var(--brand-500);
  border-color: var(--brand-500);
  color: #fff;
}

/* ── CALENDAR ───────────────────────────────────────────────── */
.calendar-panel { overflow: visible; }
.calendar-tools {
  display: grid; grid-template-columns: minmax(0,220px) minmax(0,250px) minmax(0,1fr);
  gap: 12px; align-items: end; border-bottom: 1px solid var(--line);
  padding: 12px 16px; background: var(--surface-soft);
}
.legend { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.legend span { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 11.5px; font-weight: 600; }
.legend i { width: 8px; height: 8px; border-radius: 999px; flex-shrink: 0; }
.calendar-weekdays, .calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); }
.calendar-weekdays { border-bottom: 1px solid var(--line); background: var(--surface-soft); }
.calendar-weekdays span { padding: 9px 0; text-align: center; color: var(--muted); font-size: 10.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.calendar-grid { background: #fff; overflow: visible; position: relative; }
.calendar-day {
  min-height: 120px; padding: 6px; background: #fff;
  border-right: 1px solid var(--line); border-bottom: 1px solid var(--line);
  cursor: pointer; transition: background var(--tf); overflow: visible;
}
.calendar-day:hover { background: var(--brand-50); }
.calendar-day.muted-day { background: var(--surface-soft); }
.calendar-day.today { box-shadow: inset 0 0 0 2px var(--brand-500); }
.calendar-day.selected-day { background: var(--brand-50); box-shadow: inset 0 0 0 2px var(--brand-500); z-index: 20; }
.day-number { display: inline-grid; width: 27px; height: 27px; place-items: center; border-radius: 999px; color: var(--ink); font-size: 15.5px; font-weight: 800; }
.today .day-number { background: var(--brand-500); color: #fff; }
.day-items { display: grid; gap: 3px; margin-top: 4px; overflow: hidden; }
.calendar-event {
  display: grid; min-height: 26px; border: 0; border-radius: 4px;
  padding: 3px 5px; color: #fff; text-align: left; overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,.12); transition: transform var(--tf);
}
.calendar-event:hover { transform: scale(1.02); }
.calendar-event strong, .calendar-event span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }
.calendar-event strong { font-size: 9px; opacity: .8; }
.calendar-event span   { font-size: 10.5px; font-weight: 600; }
.reserved          { background: var(--brand-500); }
.reserved-airbnb   { background: #E91E8C; }
.reserved-booking  { background: #003580; }
.blocked           { background: #64748B; }
.cleaning          { background: var(--accent); }
.maintenance       { background: #D97706; }
i.available        { background: var(--accent); }
.available         { color: var(--accent); font-size: 11px; font-weight: 600; }

/* Menu de ações do dia */
.day-action-menu {
  position: absolute; z-index: 1000; left: 8px; top: 76px;
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r); box-shadow: var(--sh-lg);
  padding: 6px; min-width: 210px; max-width: calc(100vw - 40px);
  display: grid; gap: 2px;
}
.day-action-menu button {
  display: flex; align-items: center; gap: 8px;
  width: 100%; padding: 9px 12px; border-radius: var(--r-sm);
  font-size: 13px; font-weight: 500; color: var(--ink);
  text-align: left; transition: background var(--t);
}
.day-action-menu button:hover { background: var(--surface-soft); }
.day-action-menu button.danger { color: var(--danger); }
.calendar-day { position: relative; }
.calendar-day:nth-child(7n) .day-action-menu,
.calendar-day:nth-child(7n - 1) .day-action-menu {
  left: auto;
  right: 8px;
}

.calendar-connect-hero {
  display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px; align-items: center;
  border: 1px solid rgba(33,150,211,.2); border-radius: var(--r); padding: 16px;
  background: linear-gradient(135deg, var(--brand-50), #fff);
}
.calendar-connect-hero h3 { margin: 7px 0 5px; font-size: 18px; font-weight: 700; letter-spacing: -.015em; }
.calendar-connect-hero p  { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.calendar-integration-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.calendar-help-card, .calendar-link-card { border: 1px solid var(--line); border-radius: var(--r); padding: 13px; background: #fff; box-shadow: var(--sh-sm); min-width: 0; }
.calendar-help-card h3, .section-title-row h3 { margin: 5px 0 4px; font-size: 14px; font-weight: 700; }
.calendar-help-card p, .calendar-link-card p, .section-title-row p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.calendar-export-list { display: grid; gap: 8px; margin-top: 10px; }
.calendar-link-card {
  display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 10px; align-items: center;
}
.calendar-link-card p { overflow: hidden; margin-top: 3px; font-size: 11px; font-family: var(--mono); text-overflow: ellipsis; white-space: nowrap; }
.section-title-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; flex-wrap: wrap; }
.timeline-list { display: grid; gap: 9px; }
.timeline-item {
  display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 12px; align-items: center;
  border: 1px solid var(--line); border-radius: var(--r); padding: 11px 13px; background: #fff;
}
.timeline-item p { margin: 2px 0 0; color: var(--muted); font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; }
.timeline-dot { width: 10px; height: 36px; border-radius: 999px; flex-shrink: 0; }
.detail-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }

/* ── FINANCIAL ──────────────────────────────────────────────── */
.finance-visual { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 16px; align-items: center; }
.donut { display: grid; width: 120px; height: 120px; flex-shrink: 0; place-items: center; border-radius: 999px; background: conic-gradient(var(--brand-500) calc(var(--value)*1%), #E2E8F0 0); }
.donut span { display: grid; width: 76px; height: 76px; place-items: center; border-radius: inherit; background: #fff; color: var(--ink); font-size: 18px; font-weight: 800; }
.bar-row {
  display: grid;
  /* Crítico: colunas com minmax(0,...) evitam overflow */
  grid-template-columns: minmax(0,.8fr) minmax(0,1fr) auto;
  gap: 8px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--line);
}
.bar-row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.bar-row div { height: 7px; overflow: hidden; border-radius: 999px; background: var(--surface-soft); min-width: 0; }
.bar-row i   { display: block; height: 100%; border-radius: inherit; background: var(--brand-500); }
.bar-row strong { font-size: 13px; white-space: nowrap; }
.report-callout { display: grid; gap: 3px; margin-bottom: 12px; border: 1px solid var(--line); border-radius: var(--r); padding: 13px 15px; background: var(--surface-soft); }
.report-callout strong { font-size: 24px; font-weight: 700; letter-spacing: -.02em; }
.report-callout span   { color: var(--muted); font-size: 12.5px; }
.report-table { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 0; }
.report-table th { color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 9px 8px; border-bottom: 1px solid var(--line); text-align: left; }
.report-table td { padding: 9px 8px; border-bottom: 1px solid var(--line); }
.mini-chart { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 8px; align-items: end; min-height: 140px; }
.mini-chart div  { display: grid; height: 120px; align-items: end; gap: 6px; }
.mini-chart span { display: block; min-height: 6px; border-radius: 4px 4px 2px 2px; background: var(--brand-500); opacity: .75; transition: opacity var(--t); }
.mini-chart span:hover { opacity: 1; }
.mini-chart small { color: var(--muted); font-size: 10px; font-weight: 600; text-align: center; font-family: var(--mono); }

/* ── PLANS ──────────────────────────────────────────────────── */
.price-card { display: grid; gap: 11px; align-content: start; padding: 22px; box-shadow: none; transition: transform var(--t), box-shadow var(--t), border-color var(--t); }
.price-card:hover { transform: translateY(-2px); box-shadow: var(--sh-lg); }
.price-card.selected { border-color: var(--brand-500); box-shadow: 0 0 0 3px rgba(33,150,211,.12); }
.price-card h2 { font-size: 20px; font-weight: 700; letter-spacing: -.02em; }
.price-card p { color: var(--muted); font-size: 13.5px; line-height: 1.55; }

/* ── SUPPORT ────────────────────────────────────────────────── */
.permission-box { margin-top: 12px; border: 1px solid var(--line); border-radius: var(--r); padding: 13px; background: var(--surface-soft); }
.support-card { display: grid; align-content: center; gap: 10px; padding: 22px; }
.support-card h2 { font-size: 24px; font-weight: 700; letter-spacing: -.025em; }
.support-card p  { color: var(--muted); font-size: 14px; line-height: 1.55; }

/* ── PAGE INTRO ─────────────────────────────────────────────── */
.page-intro {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 14px;
  margin-bottom: 16px; border: 1px solid var(--line); border-radius: var(--r);
  padding: 18px 20px; background: #fff; box-shadow: var(--sh-sm);
  flex-wrap: wrap; min-width: 0;
}
.page-intro h2 { margin: 6px 0 0; font-size: clamp(18px,3vw,28px); font-weight: 700; letter-spacing: -.025em; line-height: 1.1; }

/* ── DASHBOARD HERO E ALERTAS ───────────────────────────────── */
.dashboard-hero {
  display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.3fr);
  gap: 14px; align-items: stretch; margin-bottom: 18px; border-radius: var(--r-lg);
  padding: clamp(18px,4vw,28px);
  background: linear-gradient(140deg, var(--brand-900) 0%, var(--brand-800) 100%);
  color: #fff; box-shadow: var(--sh-lg); overflow: hidden;
}
.dashboard-hero h2 { margin: 9px 0; font-size: clamp(24px,4vw,50px); font-weight: 800; line-height: 1.02; letter-spacing: -.035em; }
.dashboard-hero .eyebrow { background: rgba(33,150,211,.22); color: var(--brand-400); }
.dashboard-hero p { color: rgba(255,255,255,.68); font-size: 14px; line-height: 1.65; }
.hero-metric {
  display: grid; align-content: center; gap: 4px;
  border: 1px solid rgba(255,255,255,.12); border-radius: var(--r);
  padding: 16px; background: rgba(255,255,255,.06);
}
.hero-metric span, .hero-metric small { color: rgba(255,255,255,.6); font-size: 12px; }
.hero-metric strong { font-size: 28px; font-weight: 800; letter-spacing: -.03em; }
.quick-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.quick-actions .btn.ghost { border-color: rgba(255,255,255,.14); background: rgba(255,255,255,.07); color: #fff; box-shadow: none; }
.quick-actions .btn.ghost:hover { background: rgba(255,255,255,.12); }

.dash-alert {
  display: flex; align-items: flex-start; gap: 10px;
  border-radius: var(--r); padding: 11px 13px; margin-bottom: 10px;
  font-size: 13px; line-height: 1.5; min-width: 0;
}
.dash-alert .nav-icon { flex-shrink: 0; width: 20px; height: 20px; background: transparent; margin-top: 1px; }
.dash-alert span { overflow: hidden; min-width: 0; }
.dash-alert strong { font-weight: 600; }
.dash-alert-ok     { background: var(--ok-bg);      border: 1px solid #6EE7B7; color: #065F46; }
.dash-alert-warn   { background: var(--warn-bg);     border: 1px solid #FCD34D; color: #78350F; }
.dash-alert-danger { background: var(--danger-bg);   border: 1px solid #FCA5A5; color: #7F1D1D; }

/* ── BOARD DE LIMPEZA ───────────────────────────────────────── */
.cleaning-unit-board { display: grid; grid-template-columns: repeat(auto-fill,minmax(190px,1fr)); gap: 10px; margin-bottom: 20px; }
.cleaning-unit-card {
  border: 1px solid var(--line); border-radius: var(--r);
  padding: 13px; background: var(--surface); box-shadow: var(--sh-sm);
  display: grid; gap: 10px; transition: border-color var(--t); min-width: 0;
}
.cleaning-unit-card.checkout { border-color: #FCD34D; background: #FFFDF0; }
.cleaning-unit-card.checkin  { border-color: #6EE7B7; background: #F0FDF4; }
.cub-header { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 9px; align-items: center; }
.cub-info strong { display: block; font-size: 13px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cub-info span   { display: block; font-size: 11px; color: var(--muted); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cub-clean { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 8px; border-top: 1px solid var(--line); }
.cub-clean-label { font-size: 11px; font-weight: 600; color: var(--muted); letter-spacing: .03em; text-transform: uppercase; white-space: nowrap; }
.cub-actions { display: flex; gap: 6px; flex-wrap: wrap; }
.cub-actions .btn { flex: 1; min-height: 34px; font-size: 12px; padding: 5px 8px; }

/* ── MODAL DE EXCLUSÃO ──────────────────────────────────────── */
.modal-overlay {
  position: fixed; inset: 0; z-index: 500;
  background: rgba(13,31,45,.45);
  display: flex; align-items: center; justify-content: center;
  padding: 16px; animation: fadeOverlay .15s ease;
}
@keyframes fadeOverlay { from{opacity:0} to{opacity:1} }
.modal-card {
  width: min(420px,100%); border-radius: var(--r-lg);
  background: #fff; box-shadow: 0 20px 60px rgba(13,31,45,.18);
  padding: 24px; display: grid; gap: 14px;
  animation: slideModal .18s cubic-bezier(.34,1.56,.64,1);
}
@keyframes slideModal { from{opacity:0;transform:scale(.94) translateY(8px)} to{opacity:1;transform:none} }
.modal-icon { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 12px; background: var(--danger-bg); color: var(--danger); }
.modal-icon svg { width: 24px; height: 24px; }
.modal-title { font-size: 17px; font-weight: 700; letter-spacing: -.02em; }
.modal-desc  { color: var(--muted); font-size: 14px; line-height: 1.6; }
.modal-desc strong { color: var(--ink); }
.modal-actions { display: flex; gap: 10px; margin-top: 4px; }
.modal-actions .btn { flex: 1; }

/* ── SISTEMA DE TOASTS ──────────────────────────────────────── */
#toast-container {
  position: fixed; right: 18px; bottom: 18px; z-index: 600;
  display: grid; gap: 8px;
  width: min(380px,calc(100vw - 36px));
}
.toast {
  display: flex; align-items: flex-start; gap: 11px;
  border-radius: var(--r); padding: 12px 13px;
  background: var(--brand-900); color: #fff;
  font-size: 13.5px; font-weight: 500; line-height: 1.4;
  box-shadow: 0 8px 32px rgba(13,31,45,.2);
  animation: toastIn .22s cubic-bezier(.34,1.56,.64,1) both;
  position: relative; overflow: hidden;
}
.toast.removing { animation: toastOut .2s ease forwards; }
@keyframes toastIn  { from{opacity:0;transform:translateX(20px)} to{opacity:1;transform:none} }
@keyframes toastOut { from{opacity:1;transform:none} to{opacity:0;transform:translateX(24px)} }
.toast::after {
  content:''; position:absolute; bottom:0; left:0;
  height:3px; border-radius:0 0 var(--r) var(--r);
  background:rgba(255,255,255,.35);
  animation:toastProgress var(--toast-duration,4s) linear forwards;
}
@keyframes toastProgress { from{width:100%} to{width:0} }
.toast.success { background: #065F46; }
.toast.error   { background: #991B1B; }
.toast.warning { background: #92400E; }
.toast.info    { background: var(--brand-700); }
.toast-icon    { flex-shrink:0; width:20px; height:20px; margin-top:1px; }
.toast-body    { flex:1; min-width:0; }
.toast-title   { font-weight:600; font-size:13.5px; overflow:hidden; text-overflow:ellipsis; }
.toast-msg     { font-size:12.5px; opacity:.85; margin-top:2px; }
.toast-close   { flex-shrink:0; width:20px; height:20px; cursor:pointer; opacity:.6; transition:opacity var(--t); display:grid; place-items:center; }
.toast-close:hover { opacity:1; }

/* ── MISC ───────────────────────────────────────────────────── */
.task-head { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; }
.mobile-brand-row, .section-label, .quick-action-grid, .unit-mobile-list { display:none; }
.mobile-nav { display:none; }

/* ── ANIMAÇÕES ──────────────────────────────────────────────── */
@keyframes fadeUp { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
.dashboard-hero,.metric-card,.panel,.page-intro,.cleaning-tile,.price-card { animation:fadeUp 200ms ease both; }

/* ── DARK MODE ──────────────────────────────────────────────── */
.theme-dark {
  --bg:           #090F14;
  --surface:      #0D1822;
  --surface-soft: #121F2E;
  --surface-mid:  #1A2D40;
  --ink:          #E2EAF0;
  --ink-2:        #B8CBD9;
  --muted:        #5A7A92;
  --muted-2:      #3D5A70;
  --line:         rgba(33,150,211,.15);
  --line-soft:    rgba(33,150,211,.08);
  --ok:           #6EE7B7;
  --ok-bg:        rgba(15,163,127,.18);
  --warn:         #FCD34D;
  --warn-bg:      rgba(180,83,9,.20);
  --checkin:      #34D399;
  --checkout:     #FBBF24;
  --cleaning:     #A78BFA;
  --maintenance:  #F87171;
  --ch-booking:   #4D8AD6;
  background:var(--bg); color:var(--ink);
}
.theme-dark .workspace { background:var(--bg); }
.theme-dark .topbar { background:rgba(9,15,20,.92); border-bottom-color:var(--line); }
.theme-dark .panel,.theme-dark .metric-card,.theme-dark .record-card,
.theme-dark .unit-card,.theme-dark .price-card,.theme-dark .support-card,
.theme-dark .cleaning-tile,.theme-dark .filters,.theme-dark .summary-row,
.theme-dark .page-intro,.theme-dark .segmented-tabs,.theme-dark .unit-snapshot,
.theme-dark .timeline-item,.theme-dark .calendar-help-card,.theme-dark .calendar-link-card {
  background:var(--surface); border-color:var(--line);
}
.theme-dark .panel-head { background:var(--surface-soft); }
.theme-dark input,.theme-dark select,.theme-dark textarea { background:rgba(9,15,20,.8); border-color:var(--line); color:var(--ink); }
.theme-dark .icon-btn,.theme-dark .btn.ghost { background:var(--surface); border-color:var(--line); color:var(--ink); }
.theme-dark .icon-btn:hover,.theme-dark .btn.ghost:hover { background:var(--surface-soft); }
.theme-dark .calendar-day,.theme-dark .calendar-weekdays,.theme-dark .calendar-tools { background:var(--surface); border-color:var(--line); }
.theme-dark .calendar-day.muted-day { background:rgba(9,15,20,.5); }
.theme-dark .calendar-day.selected-day,.theme-dark .calendar-day:hover { background:rgba(33,150,211,.08); }
.theme-dark .donut span { background:var(--surface); color:var(--ink); }
.theme-dark .empty { background:var(--surface); border-color:var(--line); }
.theme-dark .badge { background:var(--surface-soft); color:var(--muted); }
.theme-dark .badge.ok     { background:rgba(15,163,127,.18); color:#6EE7B7; }
.theme-dark .badge.warn   { background:rgba(180,83,9,.18);   color:#FCD34D; }
.theme-dark .badge.danger { background:rgba(229,55,58,.18);  color:#FCA5A5; }
.theme-dark .badge.soft   { background:rgba(33,150,211,.18); color:var(--brand-400); }
.theme-dark .segmented-tabs button.active { background:rgba(33,150,211,.22); color:var(--brand-400); }
.theme-dark .modal-card { background:var(--surface); }
.theme-dark .cleaning-unit-card { background:var(--surface); border-color:var(--line); }
.theme-dark .cleaning-unit-card.checkout { background:rgba(146,64,14,.1); border-color:rgba(252,211,77,.25); }
.theme-dark .cleaning-unit-card.checkin  { background:rgba(15,163,127,.08); border-color:rgba(110,231,183,.25); }
.theme-dark .record-urgent { background:rgba(229,55,58,.06)!important; border-color:rgba(252,165,165,.25)!important; }
.theme-dark .urgent-banner { background:rgba(229,55,58,.15); color:#FCA5A5; }
.theme-dark .dash-alert-ok     { background:rgba(15,163,127,.12); border-color:rgba(110,231,183,.2); color:#6EE7B7; }
.theme-dark .dash-alert-warn   { background:rgba(180,83,9,.12);   border-color:rgba(252,211,77,.2);  color:#FCD34D; }
.theme-dark .dash-alert-danger { background:rgba(229,55,58,.12);  border-color:rgba(252,165,165,.2); color:#FCA5A5; }
.theme-dark .bar-row { border-bottom-color:var(--line); }

/* ══════════════════════════════════════════════════════════════
   RESPONSIVE — DESKTOP ≤ 1180px
   ══════════════════════════════════════════════════════════════ */
@media (max-width:1180px) {
  .kpi-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .content-grid,.support-layout,.dashboard-hero,.detail-grid { grid-template-columns:1fr; }
  .finance-visual { grid-template-columns:1fr; }
  .donut { margin:0 auto; }
}

@media print {
  .sidebar,.mobile-nav,.top-actions,.filters,.panel-actions,.record-actions { display:none!important; }
  .app-shell { display:block; }
  .workspace { padding:0; }
  .panel,.metric-card,.record-card { box-shadow:none; }
}

/* ══════════════════════════════════════════════════════════════
   MOBILE — ≤ 860px (iPhone, Android)
   Correções de overflow, espaçamento e layout
   ══════════════════════════════════════════════════════════════ */
@media (max-width:860px) {

  /* ── Shell ───────────────────────────────────────────── */
  .auth-page { grid-template-columns:1fr; }
  .auth-hero {
    padding: 24px 20px 12px;
    gap: 14px;
    align-content: start;
  }
  .auth-hero h1 { font-size: 26px; line-height: 1.1; }
  .auth-hero p {
    font-size: 14px;
    line-height: 1.5;
    margin: 0;
  }
  .auth-hero .brand-block { margin-bottom: 4px; }
  .auth-proof { gap: 6px; }
  .auth-proof span { padding: 4px 9px; font-size: 10px; }

  .auth-card, .onboarding-card {
    width: calc(100% - 32px);
    padding: 22px 20px;
    margin: 8px auto 24px;
  }
  .auth-card h2 { font-size: 20px; margin: 8px 0 6px; }
  .auth-card p  { font-size: 13px; margin-bottom: 14px; }
  .onboarding-card h1 { font-size: 24px; }

  /* Em telas BEM pequenas, esconde o parágrafo da hero pra abrir formulário antes */
 @media (max-width: 480px) {
    .auth-hero p { display: none; }
    .auth-hero { padding: 18px 16px 8px; }
    .auth-hero h1 { font-size: 22px; }
    .auth-benefits { gap: 10px; }
    .benefit-card { padding: 11px 13px; gap: 11px; grid-template-columns: 38px 1fr; }
    .benefit-icon { width: 36px; height: 36px; border-radius: 10px; }
    .benefit-icon svg { width: 18px; height: 18px; }
    .benefit-card strong { font-size: 13.5px; }
    .benefit-card small { font-size: 11.5px; }
  }

  .app-shell { display:block; padding-bottom:70px; overflow-x:hidden; overflow-y:auto; }
  .sidebar   { display:none; }

  /* Workspace sem padding — cada seção controla o seu */
  .workspace { padding:0 0 20px; overflow-x:hidden; }

  /* Topbar vira container transparente */
  .topbar {
    position:static; margin:0; padding:0;
    background:transparent; border:0;
    backdrop-filter:none; -webkit-backdrop-filter:none;
    flex-direction:column; align-items:stretch; gap:0;
  }

  /* ── Header mobile ───────────────────────────────────── */
  .mobile-brand-row {
    display:flex; align-items:center; justify-content:space-between;
    gap:12px; padding:14px 16px 0;
    /* Impede overflow */
    width:100%; max-width:100vw;
  }

  .mobile-logo {
    display:inline-flex; align-items:center; gap:8px;
    min-width:0; overflow:hidden;
  }
  .mobile-logo .brand-mark { width:30px; height:30px; border-radius:8px; }

  .mobile-logo .wordmark {
    display:flex; align-items:baseline; gap:0;
    font-size:16px; font-weight:800; letter-spacing:-.025em;
    overflow:hidden;
  }
  .mobile-logo .wordmark .w-host { color:var(--brand-900); }
  .mobile-logo .wordmark .w-flow { color:var(--brand-500); }

  /* Em telas não-dashboard, mostra título da tela */
  .screen-dashboard .topbar-title { display:none; }
  .screen-dashboard .top-actions  { display:none; }

  .topbar-title { padding:12px 16px 0; }
  .topbar-title h1 { font-size:21px; margin-top:4px; white-space:normal; }
  .topbar-title .eyebrow { display:none; }
  .topbar-date { font-size:11.5px; margin-top:3px; }

  .top-actions { padding:10px 16px 0; gap:7px; }
  .top-actions .btn { flex:1; min-height:40px; font-size:13px; }

  /* ── Dashboard mobile ────────────────────────────────── */
  .mobile-welcome {
    display:flex; align-items:flex-end; justify-content:space-between; gap:10px;
    margin:12px 16px 14px; padding:18px 16px;
    border-radius:var(--r-lg);
    background:linear-gradient(140deg, var(--brand-900) 0%, var(--brand-800) 100%);
    color:#fff; box-shadow:var(--sh-lg);
    /* Impede overflow */
    overflow:hidden; max-width:calc(100vw - 32px);
  }
  .mobile-welcome .eyebrow { display:none; }
  .mobile-welcome h2 { margin:0 0 3px; font-size:24px; font-weight:800; letter-spacing:-.03em; line-height:1.05; color:#fff; }
  .mobile-welcome p  { margin:0; color:rgba(255,255,255,.65); font-size:12px; }

  .mobile-health {
    flex-shrink:0; display:grid; min-width:62px; justify-items:center; gap:2px;
    border:1px solid rgba(255,255,255,.15); border-radius:var(--r-sm); padding:9px;
    background:rgba(255,255,255,.08);
  }
  .mobile-health strong { color:var(--brand-400); font-size:20px; font-weight:800; line-height:1; }
  .mobile-health span   { color:rgba(255,255,255,.55); font-size:9.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }

  /* Labels de seção */
  .section-label {
    display:block; padding:0 16px; margin:16px 0 8px;
    font-size:12.5px; font-weight:700; color:var(--ink-2); letter-spacing:.01em;
  }

  /* Alertas */
  .dash-alert { margin:0 16px 8px; border-radius:var(--r-sm); font-size:12.5px; padding:10px 12px; }
  .dash-alert .nav-icon { width:18px; height:18px; }

  /* KPI grid — 2 colunas */
  .kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:0 16px 4px; }
  .metric-card { min-height:92px; gap:3px; border-radius:var(--r-sm); padding:11px 12px; }
  .metric-card::before { display:none; }
  .metric-top .nav-icon { display:none; }
  .metric-top span { font-size:10px; color:var(--muted); font-weight:600; }
  .metric-card strong { font-size:19px; font-weight:800; }
  .metric-card small  { font-size:10px; color:var(--brand-600); font-weight:600; }
  .metric-card em,.sparkline { display:none; }

  /* Quick actions — 4 colunas */
  .quick-action-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; padding:0 16px; }
  .quick-action-card {
    display:grid; min-height:68px; justify-items:center; align-content:center; gap:6px;
    border:1px solid var(--line); border-radius:var(--r-sm); padding:9px 4px;
    background:#fff; color:var(--ink); box-shadow:var(--sh-sm);
    transition:transform var(--tf); -webkit-tap-highlight-color:transparent;
  }
  .quick-action-card:active { transform:scale(.94); }
  .quick-action-card .nav-icon { width:26px; height:26px; border-radius:7px; background:var(--brand-100); color:var(--brand-600); }
  .quick-action-card .nav-icon svg { width:14px; height:14px; }
  .quick-action-card span:not(.nav-icon) { font-size:9.5px; font-weight:600; text-align:center; color:var(--ink-2); }

  /* Unit list */
  .unit-mobile-list { display:grid; gap:7px; padding:0 16px; margin-bottom:14px; }
  .unit-snapshot { grid-template-columns:42px minmax(0,1fr) auto; border-radius:var(--r-sm); padding:9px 11px; }
  .unit-photo    { width:42px; height:42px; border-radius:7px; }
  .property-thumb { width:36px; height:36px; }

  .screen-dashboard .content-grid { display:none; }

  /* ── Panels ──────────────────────────────────────────── */
  .panel { border-radius:var(--r-sm); margin:0 16px 10px; }
  .panel-head { padding:11px 13px; gap:8px; }
  .panel-head h2 { font-size:13px; }
  .panel-body,.table-list { padding:11px 13px; gap:9px; }

  /* ── Filters ─────────────────────────────────────────── */
  .filters,.form-grid.two { grid-template-columns:1fr; }
  .filters { margin:0 16px 10px; border-radius:var(--r-sm); padding:10px; }
  .filters-extended { grid-template-columns:1fr; }
  .segmented-tabs { margin:0 16px 10px; border-radius:var(--r-sm); }
  .segmented-tabs button { padding:6px 10px; font-size:12px; }

  /* ── Page intro ──────────────────────────────────────── */
  .page-intro { flex-direction:column; align-items:stretch; margin:0 16px 10px; padding:13px; border-radius:var(--r-sm); }
  .page-intro h2 { font-size:17px; margin-top:5px; }
  .page-intro .btn { width:100%; }

  /* ── Records ─────────────────────────────────────────── */
  .record-card { padding:11px 12px; border-radius:var(--r-sm); }
  .compact-record { grid-template-columns:1fr; }
  .record-actions,.panel-actions,.inline-actions { flex-direction:column; align-items:stretch; }
  .record-actions .btn,.panel-actions .btn,.inline-actions .btn { width:100%; }
  .reservation-title { grid-template-columns:auto minmax(0,1fr); }
  .reservation-title .badge { display:none; }
  .timeline-item { grid-template-columns:auto minmax(0,1fr); }
  .timeline-item .badge { display:none; }

  /* ── Inputs/buttons ──────────────────────────────────── */
  /* font-size:16px evita zoom automático no iOS */
  input,select,textarea { min-height:44px; border-radius:var(--r-sm); font-size:16px; }
  .btn { min-height:44px; border-radius:var(--r-sm); font-size:13.5px; }

  /* ── Forms ───────────────────────────────────────────── */
  .reservation-grid,.cleaning-grid,.expense-grid,.team-grid { grid-template-columns:1fr; }
  .form-grid { gap:9px; }

  /* ── Calendar ────────────────────────────────────────── */
  .calendar-tools { grid-template-columns:1fr 1fr; gap:8px; padding:9px 12px; }
  .calendar-tools .field:first-child { grid-column:1/-1; }
  .calendar-tools .legend { grid-column:1/-1; justify-content:center; gap:6px 10px; }
  .legend span { font-size:10.5px; }
  .calendar-weekdays span { padding:7px 0; font-size:9px; }
  .calendar-day { min-height:72px; padding:3px; }
  .day-number { width:23px; height:23px; font-size:13px; }
  .calendar-event { min-height:18px; padding:2px 3px; }
  .calendar-event strong { display:none; }
  .calendar-event span { font-size:8px; }
  .available { display:none; }
  .calendar-integration-grid,.calendar-connect-hero,.calendar-link-card { grid-template-columns:1fr; }
  .calendar-connect-hero { padding:12px; }
  .calendar-connect-hero h3 { font-size:16px; }
  .calendar-link-card { grid-template-columns:auto minmax(0,1fr); }
  .calendar-link-card .record-actions { flex-direction:row; margin-top:8px; grid-column:1/-1; }
  .calendar-link-card .record-actions .btn { flex:1; }
  .section-title-row { flex-direction:column; align-items:stretch; }

  /* ── Financial ───────────────────────────────────────── */
  .content-grid,.support-layout { grid-template-columns:1fr; }
  .finance-visual { gap:10px; grid-template-columns:1fr; }
  .donut { margin:0 auto; width:100px; height:100px; }
  .donut span { width:62px; height:62px; font-size:16px; }
  /* report-table scroll horizontal */
  .report-table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .report-table { min-width:360px; }
  /* bar-row em coluna no mobile */
  .bar-row { grid-template-columns:minmax(0,1fr) auto; gap:6px; }
  .bar-row div { display:none; }
  .mini-chart { gap:6px; min-height:100px; }
  .mini-chart div { height:90px; }

  /* ── Summary row ─────────────────────────────────────── */
  .summary-row { grid-template-columns:minmax(0,1fr) auto; gap:8px; padding:9px 11px; }
  .summary-row strong { font-size:13px; }
  .summary-row p { font-size:11.5px; }

  /* ── Unit metrics ────────────────────────────────────── */
  .unit-mini-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }

  /* Reservation stepper scroll horizontal */
  .reservation-stepper { display:flex; flex-wrap:wrap; padding-bottom:2px; gap:4px; }
  .reservation-stepper span { flex-shrink:0; padding:5px 10px; font-size:10px; }

  /* Badges menores */
  .badge { padding:3px 8px; font-size:10px; }
  .detail-grid { grid-template-columns:1fr; }

  /* Board de limpeza — 2 colunas mobile */
  .cleaning-unit-board { grid-template-columns:repeat(2,minmax(0,1fr)); padding:0 16px; gap:8px; margin-bottom:14px; }
  .cleaning-unit-card  { padding:10px; border-radius:var(--r-sm); }
  .cub-header { grid-template-columns:auto minmax(0,1fr); gap:7px; }
  .cub-header .badge { display:none; }
  .cub-info strong { font-size:12px; }
  .cub-info span   { font-size:10.5px; }
  .cub-actions .btn { font-size:11px; min-height:32px; padding:4px 7px; }

  /* ── Modal — bottom sheet no iOS ────────────────────── */
  .modal-overlay { align-items:flex-end; padding:0; }
  .modal-card {
    border-radius:var(--r-lg) var(--r-lg) 0 0;
    width:100%; max-width:100%;
    /* Respeita safe area (notch/home bar) */
    padding:22px 20px calc(20px + env(safe-area-inset-bottom));
    animation:slideUp .22s cubic-bezier(.34,1.56,.64,1);
  }
  @keyframes slideUp { from{transform:translateY(100%)} to{transform:none} }
  .modal-actions { flex-direction:column-reverse; gap:8px; }
  .modal-actions .btn { width:100%; min-height:48px; }

  /* ── Toast mobile ────────────────────────────────────── */
  #toast-container { right:12px; bottom:calc(70px + env(safe-area-inset-bottom)); left:12px; width:auto; }

  /* ── Nav inferior ────────────────────────────────────── */
  .mobile-nav {
    position:fixed; right:0; bottom:0; left:0; z-index:40;
    display:grid; grid-template-columns:repeat(5,minmax(0,1fr));
    border-top:1px solid var(--line);
    /* Safe area para iPhone com home indicator */
    padding:5px 6px calc(5px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
  }
  .mobile-nav button {
    display:grid; min-height:56px; justify-items:center; align-content:center; gap:3px;
    border-radius:7px; padding:6px 2px; font-size:10px; font-weight:600;
    color:var(--muted-2); transition:background var(--tf),color var(--tf);
    -webkit-tap-highlight-color:transparent; touch-action:manipulation;
  }
  .mobile-nav button.active { color:var(--brand-600); background:var(--brand-100); }
  .mobile-nav .nav-icon { width:24px; height:24px; background:transparent; }
  .mobile-nav .nav-icon svg { width:20px; height:20px; }
  .mobile-nav button.active .nav-icon { color:var(--brand-600); }

  /* FAB — Floating Action Button */
  .fab {
    position:fixed; right:16px; bottom:calc(80px + env(safe-area-inset-bottom)); z-index:39;
    width:56px; height:56px; border-radius:50%; border:0;
    background:var(--brand-600); color:#fff;
    box-shadow:0 4px 14px rgba(27,108,168,.4), 0 2px 6px rgba(0,0,0,.15);
    display:flex; align-items:center; justify-content:center;
    font-size:24px; cursor:pointer; transition:transform .15s;
    -webkit-tap-highlight-color:transparent;
  }
  .fab:active { transform:scale(.92); }
  .fab svg { width:24px; height:24px; }

  /* Mais touch-friendly: aumentar botões pequenos no mobile */
  .btn { min-height:44px; }
  .btn.ghost { min-height:44px; }

  /* Dark mode mobile */
  .theme-dark .mobile-nav { background:rgba(9,15,20,.96); border-top-color:var(--line); }
  .theme-dark .mobile-nav button { color:var(--muted); }
  .theme-dark .mobile-nav button.active { color:var(--brand-400); background:rgba(33,150,211,.15); }
  .theme-dark .mobile-welcome { background:linear-gradient(140deg,#060C12 0%,#0D1822 100%); }
  .theme-dark .quick-action-card { background:var(--surface); border-color:var(--line); color:var(--ink); }
  .theme-dark .quick-action-card .nav-icon { background:rgba(33,150,211,.15); color:var(--brand-400); }
  .theme-dark .mobile-logo .wordmark .w-host { color:#fff; }
}

/* ── 390px — iPhone 14/15 Pro ───────────────────────────────── */
@media (max-width:390px) {
  .kpi-grid { gap:6px; margin:0 12px 4px; }
  .metric-card { min-height:86px; padding:10px; }
  .metric-card strong { font-size:17px; }
  .quick-action-grid { padding:0 12px; gap:6px; }
  .quick-action-card { min-height:62px; }
  .unit-mobile-list { padding:0 12px; }
  .panel { margin:0 12px 10px; }
  .filters { margin:0 12px 10px; }
  .segmented-tabs { margin:0 12px 10px; }
  .page-intro { margin:0 12px 10px; }
  .dash-alert { margin:0 12px 8px; }
  .cleaning-unit-board { padding:0 12px; }
  .mobile-brand-row { padding:12px 12px 0; }
  .mobile-welcome { margin:10px 12px 12px; }
  .section-label { padding:0 12px; }
  .calendar-day { min-height:62px; }
  .mobile-nav { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .mobile-nav button { font-size:9px; min-height:46px; }
  .mobile-nav .nav-icon svg { width:16px; height:16px; }
  .cleaning-unit-board { grid-template-columns:1fr; }
}

/* ══════════════════════════════════════════════════════════════
   CALENDAR — melhorias v15
   ══════════════════════════════════════════════════════════════ */

/* Novos status de eventos */
.reserved-whatsapp { background: #25D366; }
.cleaning-done     { background: #10B981; }
.legend i.reserved-whatsapp { background: #25D366; }
.legend i.cleaning-done     { background: #10B981; }

/* Dots de check-in / check-out no número do dia */
.day-number { position: relative; display: inline-flex; align-items: center; gap: 3px; }
.day-ci-dot, .day-co-dot {
  width: 5px; height: 5px; border-radius: 50%; flex-shrink: 0;
}
.day-ci-dot { background: #10B981; }
.day-co-dot { background: #F59E0B; }

/* Mais eventos */
.cal-more {
  font-size: 9px; color: var(--muted); padding: 0 2px;
  font-weight: 700; text-align: right;
}

/* Painel de detalhes rico */
.detail-panel {}
.detail-grid-rich {
  display: grid; grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 0; border: 1px solid var(--line); border-radius: var(--r-sm);
  overflow: hidden; margin: 4px 0 12px;
}
@media (max-width: 640px) {
  .detail-grid-rich { grid-template-columns: 1fr; }
}
.detail-col {
  display: grid; gap: 0;
  border-right: 1px solid var(--line);
}
.detail-col:last-child { border-right: 0; }
.detail-row {
  display: flex; flex-direction: column;
  padding: 10px 14px;
  border-bottom: 1px solid var(--line);
}
.detail-row:last-child { border-bottom: 0; }
.detail-row > span {
  font-size: 10.5px; color: var(--muted); font-weight: 600;
  text-transform: uppercase; letter-spacing: .04em; margin-bottom: 3px;
}
.detail-row > strong {
  font-size: 13.5px; color: var(--ink); font-weight: 600;
}
.detail-actions {
  display: flex; gap: 8px; flex-wrap: wrap; padding-top: 4px;
}

/* Indicador de dia sem eventos */
.calendar-day:not(.muted-day) .available {
  display: block; text-align: center; padding: 4px 0;
}

/* Melhorar visibilidade dos eventos no mobile */
@media (max-width: 640px) {
  .calendar-day { min-height: 64px; padding: 3px 2px; }
  .calendar-event { min-height: 20px; padding: 2px 3px; }
  .calendar-event strong { display: none; }
  .calendar-event span { font-size: 9px; }
  .day-number { font-size: 13.5px; width: 24px; height: 24px; }
  .detail-grid-rich { grid-template-columns: 1fr; }
  .calendar-tools { grid-template-columns: 1fr; gap: 8px; }
  .calendar-tools .legend { grid-column: 1/-1; }
}

/* Timeline item clicável */
.timeline-item[data-action] { cursor: pointer; }
.timeline-item[data-action]:hover { background: var(--brand-50); }


/* ══════════════════════════════════════════════════════════════
   V17 — CENTRAL DE COMANDO
   ══════════════════════════════════════════════════════════════ */

/* Hero */
.cmd-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 20px 16px;
  background: linear-gradient(135deg, var(--brand-900, #0D1F2D) 0%, #1E3A4F 100%);
  color: #fff;
  flex-wrap: wrap;
}
.cmd-greeting {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -.02em;
  margin-bottom: 10px;
}
.cmd-status {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
}
.cmd-pill {
  font-size: 12px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 999px;
}
.cmd-pill.occupied  { background: rgba(239,68,68,.25);  color: #FCA5A5; }
.cmd-pill.free      { background: rgba(16,185,129,.25); color: #6EE7B7; }
.cmd-pill.checkin   { background: rgba(59,130,246,.25); color: #93C5FD; }
.cmd-pill.checkout  { background: rgba(245,158,11,.25); color: #FCD34D; }

/* Pills do hero com icone de linha (mesma linguagem dos cartoes) */
.cmd-pill { display: inline-flex; align-items: center; gap: 4px; }
.cmd-pill .nav-icon { background: transparent; width: auto; height: auto; }
.cmd-pill svg { width: 13px; height: 13px; }
.cmd-mini-head { display: inline-flex; align-items: center; gap: 6px; }
.cmd-mini-head .nav-icon { background: transparent; width: auto; height: auto; color: var(--brand-600); }
.cmd-mini-head svg { width: 15px; height: 15px; }
.cmd-revenue-today  { text-align: right; }
.cmd-revenue-label  { font-size: 11.5px; color: rgba(255,255,255,.55); display: block; margin-bottom: 4px; }
.cmd-revenue-value  { font-size: 24px; font-weight: 700; color: #fff; }

/* Ops Grid */
.cmd-ops-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 10px;
  padding: 12px 16px;
}
.cmd-op-card {
  border-radius: var(--r);
  border: 1px solid var(--line);
  background: var(--surface);
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.cmd-op-card.cmd-checkin  { border-top: 3px solid var(--checkin); }
.cmd-op-card.cmd-checkout { border-top: 3px solid var(--checkout); }
.cmd-op-card.cmd-clean    { border-top: 3px solid var(--cleaning); }
.cmd-op-card.cmd-maint    { border-top: 3px solid var(--maintenance); }

.cmd-op-header {
  display: flex;
  align-items: center;
  gap: 6px;
}
.cmd-op-icon  { font-size: 16px; }
.cmd-op-icon .nav-icon { background: transparent; width: auto; height: auto; }
.cmd-op-icon svg { width: 19px; height: 19px; }
.cmd-op-card.cmd-checkin .cmd-op-icon { color: var(--checkin); }
.cmd-op-card.cmd-checkout .cmd-op-icon { color: var(--checkout); }
.cmd-op-card.cmd-clean .cmd-op-icon { color: var(--cleaning); }
.cmd-op-card.cmd-maint .cmd-op-icon { color: var(--maintenance); }
.cmd-op-title { font-size: 14px; font-weight: 600; color: var(--ink); flex: 1; }
.cmd-op-count {
  font-size: 20px;
  font-weight: 700;
  color: var(--text);
  line-height: 1;
}
.cmd-op-item  {
  display: grid;
  gap: 2px;
  padding: 8px 0;
  border-top: 1px solid var(--line);
}
.cmd-op-item:first-of-type { border-top: none; }
.cmd-op-unit  { font-size: 13px; font-weight: 600; color: var(--text); }
.cmd-op-guest { font-size: 12px; color: var(--muted); }
.cmd-op-meta  { display: flex; gap: 4px; }
.cmd-op-empty { font-size: 12.5px; color: var(--muted); padding: 6px 0; }

/* Mobile */
@media (max-width: 860px) {
  .cmd-ops-grid { grid-template-columns: 1fr; }
  .cmd-hero { padding: 16px; }
  .cmd-greeting { font-size: 18px; }
  .cmd-revenue-value { font-size: 20px; }
}

/* ══════════════════════════════════════════════════════════════
   V21 — CALENDÁRIO TIMELINE PMS PROFISSIONAL
   ══════════════════════════════════════════════════════════════ */

/* Shell da timeline */
.timeline-shell {
  display: flex;
  flex-direction: column;
  gap: 0;
  height: 100%;
}

/* Header da timeline */
.timeline-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 20px 12px;
  flex-wrap: wrap;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
  position: sticky;
  top: 0;
  z-index: 40;
}
.timeline-header-left { display: flex; flex-direction: column; }
.timeline-header-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

/* Toggle vista timeline/grade */
.tl-view-toggle {
  display: flex;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}
.tl-view-toggle button {
  padding: 7px 14px;
  font-size: 12.5px;
  font-weight: 600;
  background: var(--surface);
  color: var(--muted);
  border: none;
  cursor: pointer;
  transition: all .15s;
}
.tl-view-toggle button.active {
  background: var(--brand-600, #1B6CA8);
  color: #fff;
}
.tl-view-toggle button:hover:not(.active) {
  background: var(--surface-soft);
  color: var(--text);
}

/* Filtros da timeline */
.timeline-filters {
  display: flex;
  gap: 12px;
  padding: 10px 20px;
  background: var(--surface-soft);
  border-bottom: 1px solid var(--line);
  flex-wrap: wrap;
  align-items: flex-end;
}
.timeline-filters .field { margin: 0; }
.timeline-filters .legend {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
  margin-left: auto;
  font-size: 12px;
  color: var(--muted);
}
.timeline-filters .legend span {
  display: flex;
  align-items: center;
  gap: 5px;
}

/* Corpo da timeline */
.tl-body {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}

/* Header dos dias (sticky top dentro do scroll) */
.tl-days-header {
  display: flex;
  border-bottom: 2px solid var(--line);
  background: var(--surface);
  position: sticky;
  top: 0;
  z-index: 30;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.tl-unit-label-spacer {
  width: 120px;
  min-width: 120px;
  flex-shrink: 0;
  border-right: 2px solid var(--line);
  background: var(--surface-soft);
}
.tl-days-scroll {
  display: flex;
  overflow-x: hidden; /* controlado por JS via sync com rows */
}
.tl-day-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 6px 0;
  border-right: 1px solid var(--line);
  background: var(--surface);
  flex-shrink: 0;
  user-select: none;
}
.tl-day-cell.tl-today {
  background: rgba(27,108,168,.1);
}
.tl-day-cell.tl-weekend {
  background: var(--surface-soft);
}
.tl-dow {
  font-size: 9.5px;
  font-weight: 600;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: .04em;
}
.tl-dnum {
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
}
.tl-day-cell.tl-today .tl-dnum {
  color: var(--brand-600, #1B6CA8);
}

/* Grid principal */
.tl-grid-outer {
  display: flex;
  overflow-y: auto;
  max-height: 520px;
  position: relative;
}

/* Labels das unidades (sticky left) */
.tl-unit-labels {
  width: 120px;
  min-width: 120px;
  flex-shrink: 0;
  border-right: 2px solid var(--line);
  background: var(--surface-soft);
  position: sticky;
  left: 0;
  z-index: 20;
}
.tl-unit-label {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 10px;
  border-bottom: 1px solid var(--line);
  background: var(--surface-soft);
}
.tl-unit-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.tl-unit-dot.occupied { background: #EF4444; }
.tl-unit-dot.free     { background: #10B981; }
.tl-unit-label-text { overflow: hidden; min-width: 0; }
.tl-unit-label-text strong {
  display: block;
  font-size: 12px;
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tl-unit-label-text small {
  font-size: 10px;
  color: var(--muted);
  display: block;
}

/* Scroll horizontal das linhas */
.tl-rows-scroll {
  flex: 1;
  overflow-x: auto;
  overflow-y: hidden;
  position: relative;
}
.tl-rows-scroll::-webkit-scrollbar { height: 6px; }
.tl-rows-scroll::-webkit-scrollbar-thumb { background: var(--line); border-radius: 3px; }

/* Cada linha de unidade */
.tl-row {
  position: relative;
  border-bottom: 1px solid var(--line);
}
.tl-row:hover { background: rgba(27,108,168,.02); }

/* Células de fundo (dias) */
.tl-cell {
  position: absolute;
  top: 0;
  bottom: 0;
  border-right: 1px solid var(--line);
  pointer-events: none;
}
.tl-cell.tl-today   { background: rgba(27,108,168,.07); }
.tl-cell.tl-weekend { background: rgba(0,0,0,.025); }

/* Bloco de reserva/bloqueio */
.tl-block {
  position: absolute;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  padding: 0 8px;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,.15);
  transition: filter .12s, transform .12s, box-shadow .12s;
  z-index: 10;
  min-width: 20px;
}
.tl-block:hover {
  filter: brightness(1.1);
  transform: scaleY(1.04);
  box-shadow: 0 3px 10px rgba(0,0,0,.2);
  z-index: 15;
}
.tl-block-selected {
  outline: 2px solid #fff;
  box-shadow: 0 0 0 3px rgba(255,255,255,.6), 0 3px 12px rgba(0,0,0,.3) !important;
  z-index: 20 !important;
}
.tl-block-label {
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  text-shadow: 0 1px 2px rgba(0,0,0,.3);
}
.tl-block-nights {
  font-size: 10px;
  color: rgba(255,255,255,.8);
  background: rgba(0,0,0,.2);
  padding: 1px 5px;
  border-radius: 10px;
  flex-shrink: 0;
}

/* Ícone de limpeza pequeno */
.tl-clean-dot {
  position: absolute;
  font-size: 11px;
  cursor: pointer;
  z-index: 11;
  background: rgba(245,158,11,.15);
  border-radius: 3px;
  padding: 1px 3px;
  line-height: 1;
}
.tl-clean-dot.tl-clean-done {
  background: rgba(16,185,129,.15);
  color: #10B981;
}

/* Limpeza como barra visível e clicável (substitui o pontinho) */
.tl-clean-bar { position:absolute; bottom:3px; height:14px; border:none; border-radius:4px; background:#F59E0B; color:#fff; display:flex; align-items:center; gap:3px; padding:0 5px; cursor:pointer; overflow:hidden; z-index:12; box-shadow:0 1px 3px rgba(0,0,0,.25); transition:filter .12s; }
.tl-clean-bar:hover { filter:brightness(1.06); }
.tl-clean-bar.done { background:#10B981; }
.tl-clean-bar .tl-clean-ic { font-size:9px; line-height:1; flex-shrink:0; }
.tl-clean-bar .tl-clean-lbl { font-size:9px; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; text-shadow:0 1px 1px rgba(0,0,0,.25); }

/* Linha vertical "Hoje" */
.tl-today-line {
  position: absolute;
  top: 0;
  width: 2px;
  background: var(--brand-500, #1B6CA8);
  z-index: 25;
  pointer-events: none;
}
.tl-today-label {
  position: absolute;
  top: -18px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 9px;
  font-weight: 700;
  color: var(--brand-500, #1B6CA8);
  background: var(--surface);
  padding: 1px 4px;
  border-radius: 3px;
  white-space: nowrap;
}

/* ── Central de integrações (iCal) — .intg-* ── */
.intg-panel { padding:0; overflow:hidden; }
.intg-head { padding:14px 16px; border-bottom:1px solid var(--line); background:var(--surface-soft); }
.intg-head-top { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; flex-wrap:wrap; }
.intg-head-top h2 { margin:0; font-size:15.5px; font-weight:800; color:var(--ink); display:flex; align-items:center; gap:8px; }
.intg-head-top h2 .nav-icon svg { width:17px; height:17px; }
.intg-summary { display:flex; flex-wrap:wrap; gap:7px 14px; font-size:12.5px; color:var(--muted); }
.intg-summary .intg-stat { display:inline-flex; align-items:center; gap:4px; }
.intg-summary b { color:var(--ink); font-weight:800; }
.intg-last { margin-top:9px; font-size:11.5px; color:var(--muted-2); }
.intg-list { display:flex; flex-direction:column; }
.intg-card { border-bottom:1px solid var(--line); }
.intg-card[open] { background:var(--surface-soft); }
.intg-sum { display:flex; align-items:center; gap:11px; padding:13px 16px; cursor:pointer; list-style:none; -webkit-tap-highlight-color:transparent; }
.intg-sum::-webkit-details-marker { display:none; }
.intg-dot { font-size:11px; flex-shrink:0; }
.intg-main { display:flex; flex-direction:column; min-width:0; flex:1; }
.intg-main strong { font-size:13.5px; font-weight:700; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.intg-subline { font-size:11.5px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.intg-chips { display:flex; gap:6px; flex-shrink:0; }
.intg-chip { display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:600; color:var(--ink-2); background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:3px 9px 3px 4px; }
.intg-chip.off { color:var(--muted-2); }
.intg-chip-tag { width:16px; height:16px; border-radius:5px; display:grid; place-items:center; font-size:9px; font-weight:800; color:#fff; background:var(--muted-2); flex-shrink:0; }
.intg-gear { color:var(--muted-2); flex-shrink:0; transition:transform .2s; }
.intg-gear .nav-icon svg { width:18px; height:18px; }
.intg-card[open] .intg-gear { transform:rotate(180deg); }
.intg-body { padding:2px 16px 16px; }
.intg-ch { border:1px solid var(--line); border-radius:12px; padding:12px; margin-bottom:10px; background:var(--surface); }
.intg-ch-h { display:flex; align-items:center; gap:9px; margin-bottom:10px; }
.intg-ch-tag { width:26px; height:26px; border-radius:7px; display:grid; place-items:center; font-size:13px; font-weight:800; color:#fff; flex-shrink:0; }
.intg-ch-h strong { font-size:13.5px; color:var(--ink); flex:1; }
.intg-ch-st { font-size:11px; font-weight:700; color:var(--muted-2); background:var(--surface-soft); border-radius:20px; padding:3px 10px; }
.intg-ch-st.on { color:#0B7A5E; background:#E7F7F1; }
.intg-ch-acts { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.intg-ch-acts .btn { flex:1; min-width:140px; }
.intg-export { margin-top:4px; padding-top:12px; border-top:1px dashed var(--line); }
.intg-export-l { display:block; font-size:12px; color:var(--muted); margin-bottom:8px; line-height:1.4; }
.intg-export-acts { display:flex; gap:8px; flex-wrap:wrap; }
@media (max-width:560px) {
  .intg-chip-name { display:none; }
  .intg-chip { padding:3px 7px 3px 3px; }
  .intg-sum { padding:12px; gap:9px; }
  .intg-body { padding:2px 12px 14px; }
  .intg-ch-acts .btn { min-width:0; }
}

/* Faixa de KPIs abaixo da timeline */
.cal-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; padding:12px 16px; }
.cal-kpi { display:flex; flex-direction:column; align-items:center; gap:2px; background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:12px 8px; cursor:pointer; text-align:center; transition:border-color .12s, box-shadow .12s; }
.cal-kpi:hover { border-color:var(--brand-500); box-shadow:var(--sh-sm); }
.cal-kpi.alert { border-color:rgba(229,55,58,.35); background:rgba(229,55,58,.03); }
.cal-kpi-ic { width:34px; height:34px; border-radius:10px; display:grid; place-items:center; margin-bottom:3px; }
.cal-kpi-ic .nav-icon { background:transparent; width:auto; height:auto; }
.cal-kpi-ic svg { width:17px; height:17px; }
.cal-kpi-ic.green { background:rgba(15,163,127,.12); color:var(--ok); }
.cal-kpi-ic.orange { background:rgba(245,158,11,.13); color:#D97706; }
.cal-kpi-ic.purple { background:rgba(124,92,252,.13); color:#7C5CFC; }
.cal-kpi-ic.red { background:rgba(229,55,58,.11); color:var(--danger); }
.cal-kpi b { font-size:20px; font-weight:800; color:var(--ink); line-height:1.1; }
.cal-kpi-l { font-size:11.5px; font-weight:600; color:var(--ink-2); }
.cal-kpi-s { font-size:10.5px; color:var(--muted); }
@media (max-width:560px) {
  .cal-kpis { gap:7px; padding:10px 12px; }
  .cal-kpi { padding:10px 5px; border-radius:12px; }
  .cal-kpi b { font-size:18px; }
  .cal-kpi-l { font-size:10.5px; }
  .cal-kpi-s { font-size:9.5px; }
}

/* Mobile: timeline vira lista */
@media (max-width: 860px) {
  .tl-unit-label-spacer { width: 80px; min-width: 80px; }
  .tl-unit-labels       { width: 80px; min-width: 80px; }
  .tl-unit-label-text small { display: none; }
  .tl-unit-label-text strong { font-size: 10px; }
  .timeline-header { padding: 12px; }
  .timeline-filters { padding: 8px 12px; gap: 8px; }
  .tl-grid-outer { max-height: 360px; }
  .tl-block-nights, .tl-block-guests { display: none; }
}

/* Dark mode */
.theme-dark .tl-day-cell { background: var(--surface); border-color: var(--line); }
.theme-dark .tl-day-cell.tl-today { background: rgba(27,108,168,.15); }
.theme-dark .tl-day-cell.tl-weekend { background: rgba(255,255,255,.03); }
.theme-dark .tl-unit-label { background: rgba(255,255,255,.03); }
.theme-dark .tl-unit-label-spacer { background: rgba(255,255,255,.03); }
.theme-dark .tl-cell.tl-weekend { background: rgba(255,255,255,.02); }
.theme-dark .timeline-header { background: var(--surface); border-color: var(--line); }
.theme-dark .timeline-filters { background: rgba(255,255,255,.03); }

/* ══════════════════════════════════════════════════════════════
   V21 — CALENDÁRIO TIMELINE PMS
   ══════════════════════════════════════════════════════════════ */
.timeline-shell { display:flex; flex-direction:column; gap:0; }
.timeline-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:20px 20px 12px; flex-wrap:wrap; border-bottom:1px solid var(--line); background:var(--surface); position:sticky; top:0; z-index:40; }
.timeline-header-left { display:flex; flex-direction:column; }
.timeline-header-right { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.tl-view-toggle { display:flex; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.tl-view-toggle button { padding:7px 14px; font-size:12.5px; font-weight:600; background:var(--surface); color:var(--muted); border:none; cursor:pointer; transition:all .15s; }
.tl-view-toggle button.active { background:var(--brand-600,#1B6CA8); color:#fff; }
.tl-view-toggle button:hover:not(.active) { background:var(--surface-soft); color:var(--text); }
.timeline-filters { display:flex; gap:12px; padding:10px 20px; background:var(--surface-soft); border-bottom:1px solid var(--line); flex-wrap:wrap; align-items:flex-end; }
.timeline-filters .field { margin:0; }
.timeline-filters .legend { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-left:auto; font-size:12px; color:var(--muted); }
.timeline-filters .legend span { display:flex; align-items:center; gap:5px; }
.tl-body { display:flex; flex-direction:column; overflow:hidden; border-bottom:1px solid var(--line); background:var(--surface); }
.tl-days-header { display:flex; border-bottom:2px solid var(--line); background:var(--surface); position:sticky; top:0; z-index:30; box-shadow:0 2px 8px rgba(0,0,0,.06); }
.tl-unit-label-spacer { width:120px; min-width:120px; flex-shrink:0; border-right:2px solid var(--line); background:var(--surface-soft); }
.tl-days-scroll { display:flex; overflow-x:hidden; }
.tl-day-cell { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:6px 0; border-right:1px solid var(--line); background:var(--surface); flex-shrink:0; user-select:none; }
.tl-day-cell.tl-today { background:rgba(27,108,168,.1); }
.tl-day-cell.tl-weekend { background:var(--surface-soft); }
.tl-dow { font-size:9.5px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
.tl-dnum { font-size:15.5px; font-weight:800; color:var(--text); }
.tl-day-cell.tl-today .tl-dnum { color:var(--brand-600,#1B6CA8); }
.tl-grid-outer { display:flex; overflow-y:auto; max-height:480px; position:relative; }
.tl-unit-labels { width:120px; min-width:120px; flex-shrink:0; border-right:2px solid var(--line); background:var(--surface-soft); position:sticky; left:0; z-index:20; }
.tl-unit-label { display:flex; align-items:center; gap:8px; padding:0 10px; border-bottom:1px solid var(--line); background:var(--surface-soft); }
.tl-unit-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.tl-unit-dot.occupied { background:#EF4444; }
.tl-unit-dot.free { background:#10B981; }
.tl-unit-label-text { overflow:hidden; min-width:0; }
.tl-unit-label-text strong { display:block; font-size:11.5px; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tl-unit-label-text small { font-size:10px; color:var(--muted); display:block; }
.tl-rows-scroll { flex:1; overflow-x:auto; overflow-y:hidden; position:relative; }
.tl-rows-scroll::-webkit-scrollbar { height:6px; }
.tl-rows-scroll::-webkit-scrollbar-thumb { background:var(--line); border-radius:3px; }
.tl-row { position:relative; border-bottom:1px solid var(--line); }
.tl-row:hover { background:rgba(27,108,168,.02); }
.tl-cell { position:absolute; top:0; bottom:0; border-right:1px solid var(--line); pointer-events:none; }
.tl-cell.tl-today { background:rgba(27,108,168,.07); }
.tl-cell.tl-weekend { background:rgba(0,0,0,.025); }
.tl-block { position:absolute; border:none; border-radius:5px; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:4px; padding:0 8px; overflow:hidden; box-shadow:0 1px 4px rgba(0,0,0,.15); transition:filter .12s, transform .12s, box-shadow .12s; z-index:10; min-width:20px; }
.tl-block:hover { filter:brightness(1.1); transform:scaleY(1.04); box-shadow:0 3px 10px rgba(0,0,0,.2); z-index:15; }
.tl-block-selected { outline:2px solid #fff; box-shadow:0 0 0 3px rgba(255,255,255,.6), 0 3px 12px rgba(0,0,0,.3) !important; z-index:20 !important; }
.tl-block-label { font-size:11px; font-weight:700; color:#fff; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1; text-shadow:0 1px 2px rgba(0,0,0,.3); }
.tl-block-nights { font-size:10px; color:rgba(255,255,255,.8); background:rgba(0,0,0,.2); padding:1px 5px; border-radius:10px; flex-shrink:0; }
.tl-block-guests { font-size:9.5px; font-weight:700; color:#fff; background:rgba(0,0,0,.2); padding:1px 5px; border-radius:9px; flex-shrink:0; line-height:1.5; white-space:nowrap; }
.tl-block-pay { font-size:10px; font-weight:800; color:#7c4a03; background:#FACC15; min-width:15px; height:15px; display:flex; align-items:center; justify-content:center; border-radius:50%; flex-shrink:0; box-shadow:0 1px 2px rgba(0,0,0,.25); }
.tl-block-conflict { outline:2px solid #DC2626; box-shadow:0 0 0 2px rgba(220,38,38,.3), 0 1px 4px rgba(0,0,0,.15); animation:tl-pulse 1.6s ease-in-out infinite; }
.cal-alert-banner { display:flex; align-items:center; gap:12px; background:#FEF2F2; border:1px solid #FCA5A5; border-left:4px solid #DC2626; border-radius:8px; padding:10px 14px; margin-bottom:12px; }
.cal-alert-icon { font-size:20px; flex-shrink:0; }
.cal-alert-text strong { display:block; color:#991B1B; font-size:14px; }
.cal-alert-text small { color:#7F1D1D; font-size:12px; }
.tl-conflict-badge { position:absolute; top:-6px; right:-6px; background:#DC2626; color:#fff; font-size:10px; font-weight:700; width:18px; height:18px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 1px 3px rgba(0,0,0,.4); z-index:30; }
@keyframes tl-pulse { 0%,100% { box-shadow:0 0 0 2px rgba(220,38,38,.3), 0 1px 4px rgba(0,0,0,.15); } 50% { box-shadow:0 0 0 5px rgba(220,38,38,.15), 0 1px 4px rgba(0,0,0,.15); } }
.tl-today-line { position:absolute; top:0; width:2px; background:var(--brand-500,#1B6CA8); z-index:25; pointer-events:none; animation:tl-today-pulse 2s ease-in-out infinite; }
@keyframes tl-today-pulse { 0%,100% { opacity:1; } 50% { opacity:.5; } }
.tl-today-label { position:absolute; top:-18px; left:50%; transform:translateX(-50%); font-size:9px; font-weight:700; color:var(--brand-500,#1B6CA8); background:var(--surface); padding:1px 4px; border-radius:3px; white-space:nowrap; }
@media (max-width:860px) {
  .tl-unit-label-spacer,.tl-unit-labels { width:80px; min-width:80px; }
  .tl-unit-label-text small { display:none; }
  .tl-unit-label-text strong { font-size:10px; }
  .timeline-header { padding:12px; }
  .timeline-filters { padding:8px 12px; gap:8px; }
  .tl-grid-outer { max-height:320px; }
  .tl-block-nights { display:none; }
}
.theme-dark .tl-day-cell { background:var(--surface); }
.theme-dark .tl-day-cell.tl-today { background:rgba(27,108,168,.15); }
.theme-dark .tl-day-cell.tl-weekend { background:rgba(255,255,255,.03); }
.theme-dark .tl-unit-label,.theme-dark .tl-unit-label-spacer { background:rgba(255,255,255,.03); }
.theme-dark .timeline-header { background:var(--surface); }
.theme-dark .timeline-filters { background:rgba(255,255,255,.03); }

/* ══════════════════════════════════════════════════════════════
   V23 — TAB BADGES COLORIDOS
   ══════════════════════════════════════════════════════════════ */
.nav-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  background: rgba(255,255,255,.25);
  color: #fff;
  margin-left: auto;
}
.nav-badge-red   { background: #EF4444; color: #fff; }
.nav-badge-amber { background: #F59E0B; color: #111; }

/* ══════════════════════════════════════════════════════════════
   V24 — CHECKLIST INTERATIVO + HOJE + PORTAL
   ══════════════════════════════════════════════════════════════ */

/* Checklist */
.checklist-wrap { padding:6px 0; }
.checklist-progress {
  height:4px;background:var(--line);border-radius:2px;overflow:hidden;margin-bottom:4px;
}
.checklist-bar { height:100%;background:#10B981;border-radius:2px;transition:width .3s; }
.checklist-items { display:grid;gap:3px; }
.checklist-item {
  display:flex;align-items:flex-start;gap:8px;padding:5px 0;
  font-size:13px;cursor:pointer;border-bottom:1px solid var(--line);
}
.checklist-item:last-child { border-bottom:none; }
.checklist-item.done span { text-decoration:line-through;color:var(--muted); }
.checklist-item input[type=checkbox] {
  width:16px;height:16px;flex-shrink:0;margin-top:2px;
  accent-color:var(--brand-500,#1B6CA8);cursor:pointer;
}

/* Hoje — unit row no board */
.hoje-unit-row {
  display:flex;align-items:center;justify-content:space-between;
  gap:8px;padding:8px 0;border-bottom:1px solid var(--line);flex-wrap:wrap;
}
.hoje-unit-row:last-child { border-bottom:none; }
.hoje-unit-name {
  display:flex;align-items:center;gap:6px;font-size:13px;
}
.hoje-tag {
  font-size:10px;font-weight:800;padding:2px 5px;border-radius:4px;
}
.hoje-tag.out { background:#FEF3C7;color:#92400E; }
.hoje-tag.in  { background:#D1FAE5;color:#065F46; }

/* Portal do proprietário — sem dados sensíveis internos */
.portal-clean-table th,
.portal-clean-table td { font-size:13px; }

@media(max-width:860px) {
  .hoje-unit-row { flex-direction:column;align-items:flex-start; }
}

/* Custom checkbox para invite modal */
.prop-cb-label {
  display:flex;align-items:center;gap:12px;
  padding:12px;border:2px solid var(--line);border-radius:10px;
  cursor:pointer;user-select:none;transition:all .15s;
  background:var(--surface);
}
.prop-cb-label:hover { border-color:var(--brand-400); background:var(--surface-soft); }
.prop-cb-input { position:absolute;opacity:0;pointer-events:none; }
.prop-cb-box {
  width:22px;height:22px;border:2px solid var(--line);border-radius:6px;
  flex-shrink:0;background:#fff;position:relative;transition:all .15s;
}
.prop-cb-input:checked ~ .prop-cb-box {
  background:var(--brand-600);border-color:var(--brand-600);
}
.prop-cb-input:checked ~ .prop-cb-box::after {
  content:"";position:absolute;left:6px;top:2px;
  width:6px;height:12px;border:solid #fff;border-width:0 2px 2px 0;
  transform:rotate(45deg);
}
.prop-cb-input:checked ~ .prop-cb-text { font-weight:600;color:var(--brand-700); }
.prop-cb-label:has(.prop-cb-input:checked) {
  border-color:var(--brand-600);background:var(--brand-50);
}
.prop-cb-text { flex:1;font-size:14px; }

/* calendario: barra de controle compacta */
.timeline-header-right { gap: 8px; }
.timeline-header .inline-actions { flex-direction: row; align-items: center; gap: 6px; flex-wrap: nowrap; }
.timeline-header .inline-actions .btn { width: auto; }
.timeline-header .btn.icon-sq { width: 42px; min-width: 42px; padding: 0; }
.timeline-header .btn.icon-sq .nav-icon svg { width: 18px; height: 18px; }
.timeline-header .tl-view-toggle button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.timeline-header .nav-icon { background: transparent; width: auto; height: auto; }

/* rodape do app: conexao (so bolinha) + propriedades + sair */
.app-footer { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:10px; margin-top:28px; padding:16px clamp(16px,3vw,32px); border-top:1px solid var(--line); }
.app-footer-conn { display:inline-flex; align-items:center; cursor:help; padding:6px; }
.app-footer-conn span:last-child { display:none; }
@media (max-width:860px) {
  .app-footer { margin-top:24px; padding:16px; margin-bottom:calc(72px + env(safe-area-inset-bottom)); }
}

/* corrige toggle de tema duplicado no celular: mantem so o do topo (.mobile-brand-row) */
@media (max-width:860px) { .top-actions { display:none; } }

/* financeiro: cards recolhiveis (busca, simulador, fluxo de caixa) */
.fin-acc { border:1px solid var(--line); border-radius:var(--r); background:var(--surface); margin:0 16px 12px; overflow:hidden; }
.fin-acc>summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:10px; padding:13px 16px; font-size:14.5px; font-weight:600; color:var(--text); }
.fin-acc>summary::-webkit-details-marker { display:none; }
.fin-acc .acc-ttl { flex:1; }
.fin-acc .acc-chev .nav-icon { background:transparent; width:auto; height:auto; color:var(--muted); transition:transform .2s; }
.fin-acc[open] .acc-chev .nav-icon { transform:rotate(180deg); }
.fin-acc-body { padding:6px 14px 14px; }

.day-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border:.5px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);font-size:13px;font-family:inherit;cursor:pointer}
.day-chip b{font-weight:700}
.day-chip.open{border-color:var(--brand-600);background:var(--brand-600);color:#fff}

body { overflow-x: hidden; }

/* ══ INÍCIO PREMIUM (tela Hoje) ══════════════════════════════ */
.ini-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px 0}
.ini-greet h1{margin:0;font-size:23px;font-weight:800;letter-spacing:-.5px;color:var(--ink)}
.ini-greet p{margin:3px 0 0;color:var(--muted);font-size:13px}
.ini-chip{display:flex;align-items:center;gap:6px;background:var(--brand-100);color:var(--brand-700);border:none;border-radius:12px;padding:9px 13px;font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer;font-family:inherit}
.ini-rev{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px 16px 0}
.ini-card{background:var(--surface);border-radius:var(--r-lg);padding:15px;box-shadow:var(--sh)}
.ini-rev-top{display:flex;align-items:center;justify-content:space-between}
.ini-rev-label{font-size:12px;color:var(--muted);font-weight:600}
.ini-rev-ic{width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:16px}
.ini-rev-val{font-size:21px;font-weight:800;margin-top:9px;letter-spacing:-.5px}
.ini-rev-delta{font-size:11.5px;font-weight:700;margin-top:4px}
.ini-stats{display:flex;justify-content:space-between;gap:2px;background:var(--surface);border-radius:var(--r-lg);padding:15px 6px;margin:12px 16px 0;box-shadow:var(--sh-sm)}
.ini-stat{flex:1;text-align:center;display:flex;flex-direction:column;align-items:center;gap:5px}
.ini-stat .si{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center}
.ini-stat .si svg{width:20px;height:20px}
.ini-stat .sv{font-size:20px;font-weight:800;line-height:1;color:var(--ink)}
.ini-stat .sl{font-size:10px;color:var(--muted);font-weight:600;line-height:1.1}
.ini-sec{display:flex;align-items:center;justify-content:space-between;margin:24px 18px 10px}
.ini-sec h2{margin:0;font-size:17px;font-weight:800;letter-spacing:-.3px;color:var(--ink)}
.ini-agenda{background:var(--surface);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-sm);margin:0 16px}
.ini-ag{display:flex;align-items:center;gap:11px;padding:12px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap;row-gap:9px}
.ini-ag:last-child{border-bottom:0}
.ini-ag-time{width:60px;flex-shrink:0;position:relative;padding-left:15px}
.ini-ag-time::before{content:"";position:absolute;left:0;top:4px;width:9px;height:9px;border-radius:50%;background:var(--muted-2)}
.ini-ag-time.g::before{background:var(--ok)}.ini-ag-time.r::before{background:var(--danger)}.ini-ag-time.a::before{background:var(--warn)}
.ini-ag-time b{font-size:13px;font-weight:700;display:block;color:var(--ink)}
.ini-ag-time span{font-size:10.5px;color:var(--muted)}
.ini-ag-av{width:38px;height:38px;border-radius:11px;flex-shrink:0;background:var(--surface-soft);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:var(--brand-600);background-size:cover}
.ini-ag-main{flex:1 1 130px;min-width:120px}
.ini-ag-main b{font-size:14px;font-weight:700;display:block;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ini-ag-main span{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.ini-ag-end{display:flex;align-items:center;gap:6px;flex-shrink:0;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}
.ini-ag-btn{font-size:11.5px!important;padding:6px 11px!important;min-height:0!important;width:auto!important;flex-shrink:0}
.ini-empty{padding:24px;text-align:center;color:var(--muted);font-size:13px}

/* ══ SISTEMA PREMIUM (.ui-*) — reutilizável em todas as telas ══════ */
.ui-page{padding-bottom:26px}
.ui-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 16px 0}
.ui-page-head h1{margin:0;font-size:24px;font-weight:800;letter-spacing:-.5px;color:var(--ink)}
.ui-page-head p{margin:3px 0 0;color:var(--muted);font-size:13px}
.ui-chips{display:flex;gap:8px;overflow-x:auto;padding:14px 16px 2px;scrollbar-width:none}
.ui-chips::-webkit-scrollbar{display:none}
.ui-chip{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap}
.ui-chip b{background:var(--surface-soft);color:var(--muted);font-size:11.5px;font-weight:700;padding:1px 7px;border-radius:999px}
.ui-chip.on{background:var(--brand-600);border-color:var(--brand-600);color:#fff}
.ui-chip.on b{background:rgba(255,255,255,.22);color:#fff}
.ui-filters{display:flex;gap:8px;overflow-x:auto;padding:12px 16px 2px;scrollbar-width:none}
.ui-filters::-webkit-scrollbar{display:none}
.ui-filters .field{flex:0 0 auto;min-width:128px;margin:0}
.ui-list{display:flex;flex-direction:column;gap:11px;padding:14px 16px 0}
.ui-rec{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-sm);overflow:hidden}
.ui-rec[open]{box-shadow:var(--sh)}
.ui-rec>summary{list-style:none;cursor:pointer;padding:13px 14px}
.ui-rec>summary::-webkit-details-marker{display:none}
.ui-rec-sum{display:flex;align-items:center;gap:12px}
.ui-rec-thumb{width:46px;height:46px;border-radius:12px;flex-shrink:0;object-fit:cover;background:var(--surface-soft);background-size:cover;background-position:center}
.ui-rec-main{flex:1;min-width:0}
.ui-rec-main strong{font-size:14.5px;font-weight:700;color:var(--ink);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ui-rec-main p{margin:2px 0 0;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ui-rec-body{padding:12px 14px 14px;border-top:1px solid var(--line);margin-top:11px}
.ui-kv{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:5px 0}
.ui-kv>span{color:var(--muted)}.ui-kv>b{color:var(--ink);text-align:right;font-weight:700}
.ui-rec-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.ui-empty{padding:34px 20px;text-align:center;color:var(--muted);font-size:13.5px;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-sm);margin:14px 16px 0}

/* ══ Polimento premium do Calendário (CSS-only, não toca na grade) ══ */
.timeline-header{padding:16px 16px 12px}
.timeline-header-left .eyebrow{color:var(--brand-500);font-weight:700;letter-spacing:.02em}
.timeline-header-left h2{font-size:22px!important;font-weight:800!important;letter-spacing:-.4px;color:var(--ink)}
.tl-view-toggle{border-radius:11px;background:var(--surface-soft);border-color:transparent;padding:3px;gap:2px}
.tl-view-toggle button{border-radius:9px;padding:7px 14px}
.tl-view-toggle button.active{box-shadow:0 2px 8px rgba(27,108,168,.28)}
.tl-view-toggle button:not(.active){background:transparent}
.timeline-filters{background:var(--surface)}
.legend i{border-radius:4px!important}
.tl-block{border-radius:7px;box-shadow:0 2px 7px rgba(13,31,45,.18)}
.tl-block-label{font-weight:700}
.tl-day-cell.tl-today .tl-dnum{box-shadow:0 2px 8px rgba(27,108,168,.4)}

/* ══ Polimento premium dos KPIs (metric-card) ══ */
.metric-card{border-radius:var(--r-lg)!important;box-shadow:var(--sh)!important;border-color:transparent!important;padding:16px}
.metric-top .nav-icon{width:34px!important;height:34px!important;border-radius:10px!important}
.metric-top .nav-icon svg{width:17px!important;height:17px!important}
.metric-card strong{font-size:22px!important;font-weight:800!important}
.kpi-grid{gap:12px}

/* ══ Calendário premium bold (foto na unidade, alerta, legenda) ══ */
.tl-unit-label-spacer,.tl-unit-labels{width:96px!important;min-width:96px!important}
.tl-unit-label{padding:0 8px!important;gap:7px!important}
.tl-unit-thumb-wrap{position:relative;flex-shrink:0;width:28px;height:28px}
.tl-unit-thumb{width:28px;height:28px;border-radius:8px;object-fit:cover;background-size:cover;background-position:center;background-color:var(--surface-mid);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:var(--brand-600)}
.tl-unit-dot2{position:absolute;bottom:-2px;right:-2px;width:11px;height:11px;border-radius:50%;border:2px solid var(--surface-soft)}
.tl-unit-dot2.occupied{background:#EF4444}.tl-unit-dot2.free{background:#10B981}
.cal-alert-banner{margin:12px 16px;padding:14px 16px;border-radius:var(--r-lg);background:#FEF2F2;border:1px solid rgba(229,55,58,.22);display:flex;align-items:center;gap:12px;box-shadow:var(--sh-sm)}
.cal-alert-icon{width:38px;height:38px;border-radius:50%;background:rgba(229,55,58,.12);color:var(--danger);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.cal-alert-text strong{color:var(--danger);font-size:14.5px;font-weight:800;display:block}
.cal-alert-text small{color:var(--ink-2);font-size:12.5px}
.legend i{border-radius:999px!important;width:10px!important;height:10px!important}
.timeline-filters select,.timeline-filters input[type=month]{border-radius:10px;border-color:var(--line)}

/* ══ Financeiro premium bold (hero lucro + 4 KPIs) ══ */
.fin-hero{display:flex;align-items:center;gap:14px;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh);padding:16px 18px;margin:16px 16px 0}
.fin-hero-info{flex:1;min-width:0}
.fin-hero-top{display:flex;align-items:center;gap:9px;margin-bottom:7px}
.fin-hero-ic{width:38px;height:38px;border-radius:11px;background:rgba(124,92,252,.14);color:#7C5CFC;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.fin-hero-ic svg{width:19px;height:19px}
.fin-hero-label{font-size:13px;color:var(--muted);font-weight:600}
.fin-hero-val{font-size:27px;font-weight:800;letter-spacing:-.6px;line-height:1.05}
.fin-hero-delta{font-size:12.5px;font-weight:700;color:var(--ok);margin-top:6px}
.fin-hero-spark{width:118px;flex-shrink:0;opacity:.92;color:#7C5CFC}
.fin-hero-spark svg{display:block!important;width:100%;height:42px}
.fin-kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px 16px 0}
.fin-kpi{display:flex;align-items:center;gap:11px;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:14px}
.fin-kpi-ic{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.fin-kpi-ic svg{width:20px;height:20px}
.fin-kpi-label{font-size:12px;color:var(--muted);font-weight:600}
.fin-kpi-val{font-size:17px;font-weight:800;color:var(--ink);letter-spacing:-.4px;margin:2px 0 1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fin-kpi small{font-size:11px;font-weight:700}

/* ══ Reservas premium bold (cards de status + cards de reserva) ══ */
.res-stats{display:flex;gap:10px;overflow-x:auto;padding:14px 16px 2px;scrollbar-width:none}
.res-stats::-webkit-scrollbar{display:none}
.res-stat{flex:1 0 80px;background:var(--surface);border-radius:14px;box-shadow:var(--sh-sm);padding:12px 8px 11px;text-align:center;cursor:pointer;border:2px solid transparent;font-family:inherit}
.res-stat.on{border-color:var(--brand-500);box-shadow:var(--sh)}
.res-stat-ic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;margin:0 auto 8px}
.res-stat-ic svg{width:19px;height:19px}
.res-stat-v{font-size:21px;font-weight:800;color:var(--ink);line-height:1}
.res-stat-l{font-size:11px;color:var(--muted);font-weight:600;margin-top:3px}
.res-actions{display:flex;gap:10px;padding:14px 16px 0}
.res-actions>.btn{flex:1}
.res-sum{display:flex;align-items:flex-start;gap:12px}
.res-sum .ui-rec-thumb{width:58px;height:58px;border-radius:14px}
.res-main{flex:1;min-width:0;padding-top:1px}
.res-main strong{font-size:14.5px;font-weight:700;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.res-unit{font-size:12.5px;color:var(--muted);margin:1px 0 5px}
.res-meta{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted);margin-top:3px}
.res-meta span{display:inline-flex;align-items:center;gap:4px}
.res-meta .nav-icon,.res-meta .nav-icon svg{width:13px;height:13px}
.res-end{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex-shrink:0}
.res-value{font-size:14.5px;font-weight:800;color:var(--ink);white-space:nowrap}
.res-conflict{background:#FEF4F4}
.res-conflict-warn{margin-top:11px;padding:10px 12px;background:rgba(229,55,58,.08);border-radius:10px;font-size:12.5px;color:var(--danger);display:flex;align-items:center;gap:8px}
.res-conflict-warn .nav-icon,.res-conflict-warn .nav-icon svg{width:15px;height:15px;flex-shrink:0}

/* ══ Limpeza — label de seção premium ══ */
.lz-seclabel{font-size:15px;font-weight:800;color:var(--ink);letter-spacing:-.2px;padding:18px 18px 0;display:flex;align-items:center;gap:8px}
.lz-seclabel::before{content:"";width:4px;height:15px;border-radius:3px;background:var(--brand-500)}

/* ══ Tints de ícone (círculos coloridos) — usados em cards de stat ══ */
.c-red{background:rgba(229,55,58,.11);color:var(--danger)}
.c-green{background:rgba(15,163,127,.12);color:var(--ok)}
.c-blue{background:rgba(37,99,235,.11);color:var(--blue)}
.c-amber{background:rgba(217,119,6,.13);color:var(--warn)}
.c-purple{background:rgba(124,92,252,.13);color:#7C5CFC}

/* ══ Card "Visão geral" escuro (tela Hoje) ══ */
.vg-card{margin:16px 16px 0;border-radius:20px;background:linear-gradient(155deg,#1C3A50,#0D1F2D);color:#fff;padding:18px;box-shadow:0 14px 32px rgba(13,31,45,.28)}
.vg-head{font-size:14px;font-weight:700;color:rgba(255,255,255,.85);margin-bottom:14px}
.vg-overview{display:flex;align-items:center;gap:14px}
.vg-units{flex-shrink:0;text-align:center}
.vg-units-n{font-size:30px;font-weight:800;line-height:1}
.vg-units-l{font-size:11.5px;color:rgba(255,255,255,.6);margin-top:2px}
.vg-donut{width:86px;height:86px;border-radius:50%;flex-shrink:0;background:conic-gradient(#F6A828 calc(var(--p)*1%),rgba(255,255,255,.14) 0);display:flex;align-items:center;justify-content:center;position:relative}
.vg-donut::before{content:"";position:absolute;inset:9px;border-radius:50%;background:#15293a}
.vg-donut-c{position:relative;text-align:center;line-height:1.1}
.vg-donut-c b{font-size:17px;font-weight:800}
.vg-donut-c small{font-size:8.5px;color:rgba(255,255,255,.6);display:block}
.vg-rev{flex:1;min-width:0;text-align:right;border-left:1px solid rgba(255,255,255,.13);padding-left:14px}
.vg-rev-v{font-size:23px;font-weight:800;letter-spacing:-.5px;line-height:1.05;white-space:nowrap}
.vg-rev-l{font-size:11.5px;color:rgba(255,255,255,.6);margin-top:3px}
.vg-rev-m{font-size:11.5px;color:#5ce8a8;font-weight:700;margin-top:7px;white-space:nowrap}
.vg-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:16px}
.vg-stat{background:rgba(255,255,255,.06);border-radius:13px;padding:11px 6px;text-align:center}
.vg-stat-ic{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;margin:0 auto 6px}
.vg-stat-ic svg{width:16px;height:16px}
.vg-stat b{font-size:18px;font-weight:800;display:block;line-height:1}
.vg-stat small{font-size:9px;color:rgba(255,255,255,.6);display:block;margin-top:3px}

/* ══ Lista financeira colapsável (despesas/receitas "arquivadas") ══ */
.fin-row{display:flex;align-items:center;gap:11px}
.fin-row-ic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.fin-row-ic svg{width:18px;height:18px}
.fin-row-main{flex:1;min-width:0}
.fin-row-main strong{font-size:14px;font-weight:700;color:var(--ink);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fin-row-main span{font-size:12px;color:var(--muted)}
.fin-row-val{font-size:14.5px;font-weight:800;white-space:nowrap;flex-shrink:0}
.fin-item .ui-rec-body{padding:12px 14px 14px}

/* ══ Limpeza: "Detalhes e edição" como botão claro ══ */
.lz-edit{margin-top:8px}
.lz-edit>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--brand-600);background:var(--brand-100);border-radius:9px;padding:7px 12px;user-select:none}
.lz-edit>summary::-webkit-details-marker{display:none}
.lz-edit>summary .nav-icon,.lz-edit>summary .nav-icon svg{width:14px;height:14px}
.lz-edit[open]>summary{margin-bottom:10px}

/* ══ Limpeza: hóspedes + enxoval na tarefa ══ */
.lz-next{background:var(--brand-50,#F2F9FE);border:1px solid var(--brand-100);border-radius:12px;padding:11px 12px;margin-bottom:10px}
.lz-next-head{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--ink);margin-bottom:8px}
.lz-next-head .nav-icon,.lz-next-head .nav-icon svg{width:16px;height:16px;color:var(--brand-600)}
.lz-next-head strong{font-weight:800}
.lz-est-hint{font-size:11.5px;color:var(--warn);background:rgba(217,119,6,.08);border-radius:8px;padding:6px 8px;margin:0 0 8px}
.lz-enxoval{display:flex;flex-wrap:wrap;gap:6px}
.lz-enx{display:inline-flex;align-items:center;gap:5px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:4px 11px;font-size:12px;color:var(--ink-2);font-weight:600}
.lz-enx b{color:var(--brand-600);font-weight:800}


/* ═══════════════════════════════════════════════════════════════
   CARDS OPERACIONAIS (aba Hoje) — expansíveis <details> (v123)
   ═══════════════════════════════════════════════════════════════ */
.oc-wrap{display:flex;flex-direction:column;gap:12px;padding:6px 16px 24px}
.oc{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px rgba(13,31,45,.04);overflow:hidden}
.oc[open]{box-shadow:0 8px 22px rgba(13,31,45,.08)}
.oc-danger{border-color:rgba(229,55,58,.45)}
.oc-sum{display:flex;align-items:center;gap:12px;padding:14px;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent}
.oc-sum::-webkit-details-marker{display:none}
.oc-ic{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.oc-ic .nav-icon svg{width:20px;height:20px}
.oc-ic.indigo{background:rgba(99,102,241,.13);color:#6366F1}
.oc-ic.green{background:rgba(14,159,110,.14);color:#0E9F6E}
.oc-ic.blue{background:rgba(37,99,235,.12);color:#2563EB}
.oc-ic.orange{background:rgba(217,119,14,.15);color:#D9750E}
.oc-ic.purple{background:rgba(124,58,237,.13);color:#7C3AED}
.oc-ic.red{background:rgba(229,55,58,.12);color:#E5373A}
.oc-lbl{flex:1;min-width:0;font-size:14.5px;font-weight:700;color:var(--ink)}

/* ════════ Aba Hoje — estilo mockup ════════ */
.hpad{padding:0 16px}
.hsec-title{margin:18px 16px 8px;font-size:12.5px;font-weight:800;color:var(--muted);letter-spacing:.3px;text-transform:uppercase}
.hsec{margin:18px 16px 0}
.hsec-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.hsec-head h2{margin:0;font-size:16px;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:8px}
.hsec-pill{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#E5373A;color:#fff;font-size:11.5px;font-weight:800}
.hsec-link{background:none;border:none;color:var(--brand-700);font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}

/* Resumo do dia — KPIs */
.hk-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(112px,1fr);gap:10px;overflow-x:auto;padding:0 16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.hk-strip::-webkit-scrollbar{display:none}
.hk{display:flex;flex-direction:column;align-items:flex-start;gap:3px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px;text-align:left;cursor:pointer;font-family:inherit;box-shadow:0 1px 2px rgba(13,31,45,.04)}
div.hk{cursor:default}
.hk-ic{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:3px;font-size:16px}
.hk-ic .nav-icon svg{width:18px;height:18px}
.hk-ic.blue{background:rgba(37,99,235,.12);color:#2563EB}
.hk-ic.orange{background:rgba(217,119,14,.15);color:#D9750E}
.hk-ic.purple{background:rgba(124,58,237,.13);color:#7C3AED}
.hk-ic.green{background:rgba(14,159,110,.14);color:#0E9F6E}
.hk-ic.red{background:rgba(229,55,58,.12);color:#E5373A}
.hk-n{font-size:21px;font-weight:800;color:var(--ink);line-height:1.05}
.hk-money{font-size:15.5px}
.hk-l{font-size:11.5px;color:var(--muted);line-height:1.2}

/* Ocupados hoje — cards com foto */
.hoc-scroll{display:flex;gap:12px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.hoc-scroll::-webkit-scrollbar{display:none}
.hoc-card{flex:0 0 158px;background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;text-align:left;cursor:pointer;padding:0;font-family:inherit;box-shadow:0 1px 2px rgba(13,31,45,.04)}
.hoc-photo-wrap{position:relative;height:96px;background:var(--brand-100)}
.hoc-photo{width:100%;height:96px;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:22px;color:var(--brand-700)}
.hoc-badge{position:absolute;left:8px;bottom:8px;background:rgba(14,159,110,.94);color:#fff;font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:999px}
.hoc-info{padding:9px 11px 11px;display:flex;flex-direction:column;gap:2px}
.hoc-info strong{font-size:14px;color:var(--ink)}
.hoc-guest{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hoc-until{font-size:11.5px;color:var(--muted)}

/* Timeline de hoje */
.htl-list{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:4px 14px;box-shadow:0 1px 2px rgba(13,31,45,.04)}
.htl-row{display:flex;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid var(--line)}
.htl-row:last-child{border-bottom:none}
.htl-time{font-size:12px;font-weight:700;color:var(--muted);width:42px;flex-shrink:0}
.htl-dot{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.htl-dot .nav-icon svg{width:17px;height:17px}
.htl-emoji{font-size:16px}
.htl-dot.blue{background:rgba(37,99,235,.12);color:#2563EB}
.htl-dot.orange{background:rgba(217,119,14,.15);color:#D9750E}
.htl-dot.purple{background:rgba(124,58,237,.13);color:#7C3AED}
.htl-dot.green{background:rgba(14,159,110,.14);color:#0E9F6E}
.htl-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.htl-main strong{font-size:13.5px;color:var(--ink)}
.htl-main span{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.htl-row .badge{flex-shrink:0}

/* Atenção necessária — mini cards */
.hat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.hat-mini{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:11px 12px;text-align:left;cursor:pointer;font-family:inherit;box-shadow:0 1px 2px rgba(13,31,45,.04)}
.hat-ic{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.hat-ic .nav-icon svg{width:17px;height:17px}
.hat-ic.blue{background:rgba(37,99,235,.12);color:#2563EB}
.hat-ic.purple{background:rgba(124,58,237,.13);color:#7C3AED}
.hat-ic.amber{background:rgba(217,119,6,.14);color:#B45309}
.hat-ic.red{background:rgba(229,55,58,.12);color:#E5373A}
.hat-n{font-size:19px;font-weight:800;color:var(--ink);line-height:1}
.hat-l{font-size:11.5px;color:var(--muted);line-height:1.15}
.hat-ok{font-size:13px;color:var(--muted);padding:8px 2px}
.oc-n{font-size:22px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.oc-danger .oc-n{color:#E5373A}
.oc-chev{color:var(--muted);display:flex;transition:transform .2s ease}
.oc-chev .nav-icon svg{width:18px;height:18px}
.oc[open] .oc-chev{transform:rotate(180deg)}
.oc-body{padding:0 14px;border-top:1px solid var(--line)}
.oc-item{display:flex;align-items:flex-start;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}
.oc-item:last-child{border-bottom:none}
.oc-item-main{flex:1;min-width:0}
.oc-item-t{font-size:14px;font-weight:700;color:var(--ink);line-height:1.3}
.oc-item-sub{font-size:12.5px;color:var(--muted);margin-top:2px;line-height:1.45}
.oc-item-end{display:flex;flex-direction:column;align-items:flex-end;gap:7px;flex-shrink:0}
.oc-empty{padding:18px 2px;text-align:center;color:var(--muted);font-size:13px}
.oc-foot{padding:12px 2px 2px;color:var(--muted);font-size:12.5px}
.oc-foot strong{color:var(--ink)}
/* Atenção necessária: barra lateral por severidade (🔴 crítico / 🟠 pendência / 🟡 info) */
.oc-item.att{border-left:3px solid transparent;padding-left:10px;border-radius:0 6px 6px 0}
.oc-item.att.att-crit{border-left-color:var(--danger);background:rgba(229,55,58,.045)}
.oc-item.att.att-warn{border-left-color:#F59E0B;background:rgba(245,158,11,.05)}
.oc-item.att.att-info{border-left-color:var(--muted-2)}
/* Mobile: cards operacionais mais compactos (menos scroll) */
@media (max-width:560px){
  .oc-wrap{gap:9px;padding:6px 12px 22px}
  .oc-sum{padding:11px 12px;gap:10px}
  .oc-body{padding:0 12px}
  .oc-item{padding:9px 0}
}
.oc-act{display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;padding:7px 12px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;white-space:nowrap;text-decoration:none;font-family:inherit}
.oc-act:hover{background:var(--surface-soft)}
.oc-act.primary{background:var(--brand-500);color:#fff;border-color:transparent}
.oc-act.primary:hover{background:var(--brand-600)}
.oc-act.green{background:#0E9F6E;color:#fff;border-color:transparent}
.oc-act.green:hover{background:#0A8F6F}
.oc-assign{margin-top:7px}
.oc-assign select{font-size:12px;padding:7px 9px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);max-width:170px;font-family:inherit;cursor:pointer}
.oc-wide{width:100%;margin:12px 0 4px;padding:11px;border:1px solid var(--line);background:var(--surface);border-radius:11px;font-size:13px;font-weight:700;color:var(--ink);cursor:pointer;font-family:inherit}
.oc-wide:hover{background:var(--surface-soft)}

/* ═══════════════════════════════════════════════════════════════
   DASHBOARD DE DESEMPENHO (perfil admin/gerente) — v124
   ═══════════════════════════════════════════════════════════════ */
.db2{display:flex;flex-direction:column;gap:14px;padding:14px 16px 30px;max-width:780px;margin:0 auto}
.db2 .nav-icon{display:inline-flex}
.db-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.db-title{font-size:24px;font-weight:800;letter-spacing:-.025em;color:var(--ink);margin:0;line-height:1.1}
.db-sub{margin:3px 0 0;color:var(--muted);font-size:13.5px}
.db-month{display:inline-flex;align-items:center;gap:6px;padding:9px 12px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh-sm);color:var(--ink);font-size:13.5px;font-weight:600;cursor:pointer;flex-shrink:0}
.db-month .nav-icon svg{width:16px;height:16px;color:var(--brand-500)}
.db-month input{border:0;background:transparent;font-family:inherit;font-size:13.5px;font-weight:600;color:var(--ink);cursor:pointer;min-width:0;width:150px}

/* KPIs 2x2 */
.dk-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dk-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 1px 3px rgba(13,31,45,.05);padding:15px;min-width:0}
.dk-top{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.dk-ic{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dk-ic .nav-icon svg{width:19px;height:19px}
.dk-ic.green{background:rgba(14,159,110,.14);color:#0E9F6E}
.dk-ic.blue{background:rgba(37,99,235,.12);color:#2563EB}
.dk-ic.purple{background:rgba(124,58,237,.13);color:#7C3AED}
.dk-label{font-size:14px;color:var(--muted);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dk-val{font-size:21px;font-weight:800;letter-spacing:-.03em;color:var(--ink);line-height:1.05;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dk-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin-top:8px}
.dk-delta{font-size:11.5px;font-weight:700;white-space:nowrap}
.dk-delta.up{color:#0E9F6E}
.dk-delta.down{color:#E5373A}
.dk-sub{font-size:11px;color:var(--muted)}
.dk-spark{width:60px;height:26px;flex-shrink:0}
.dk-spark .sparkline{width:100%;height:100%;display:block}
.dk-spark.green{color:#0E9F6E}
.dk-spark.blue{color:#2563EB}
.dk-spark.purple{color:#7C3AED}

/* Card base */
.db-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 1px 3px rgba(13,31,45,.05);padding:16px}
.db-card-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.db-card-h h2{display:flex;align-items:center;gap:7px;font-size:16px;font-weight:800;letter-spacing:-.02em;color:var(--ink);margin:0}
.db-card-h h2 .nav-icon svg{width:18px;height:18px;color:var(--muted)}
.db-card-h.amber h2{color:#B45309}
.db-link{background:none;border:0;color:var(--brand-500);font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;padding:0;font-family:inherit}
.db-empty{color:var(--muted);font-size:13px;padding:6px 0}

/* Receita por canal */
.dch{display:flex;align-items:center;gap:18px}
.dch-donut{position:relative;width:116px;height:116px;border-radius:50%;flex-shrink:0}
.dch-hole{position:absolute;inset:23px;background:#fff;border-radius:50%}
.dch-leg{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}
.dch-row{display:flex;gap:9px}
.dch-dot{width:10px;height:10px;border-radius:50%;margin-top:4px;flex-shrink:0}
.dch-rin{flex:1;min-width:0}
.dch-rtop{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.dch-name{font-size:13.5px;font-weight:700;color:var(--ink)}
.dch-pct{font-size:13.5px;font-weight:800;color:var(--ink)}
.dch-val{font-size:12px;color:var(--muted);margin-top:1px}

/* Próximos 30 dias */
.dn-row{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid var(--line)}
.dn-row:last-child{border-bottom:none}
.dn-ic{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dn-ic .nav-icon svg{width:17px;height:17px}
.dn-ic.green{background:rgba(14,159,110,.14);color:#0E9F6E}
.dn-ic.blue{background:rgba(37,99,235,.12);color:#2563EB}
.dn-ic.indigo{background:rgba(99,102,241,.13);color:#6366F1}
.dn-ic.red{background:rgba(229,55,58,.12);color:#E5373A}
.dn-l{flex:1;min-width:0;font-size:14px;color:var(--ink);font-weight:600}
.dn-v{font-size:15px;font-weight:800;color:var(--ink)}
.dn-v.green{color:#0E9F6E}
.dn-v.red{color:#E5373A}

/* Oportunidades */
.dop-item{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}
.dop-item:last-child{border-bottom:none}
.dop-t{font-size:14px;font-weight:800;color:var(--ink)}
.dop-d{font-size:12.5px;color:var(--muted);margin-top:2px}
.dop-d strong{color:var(--ink)}
.dop-badge{font-size:11px;font-weight:700;color:#B45309;background:rgba(217,119,6,.13);padding:4px 10px;border-radius:999px;white-space:nowrap;flex-shrink:0}

/* Ocupação por unidade */
.du-row{display:flex;align-items:center;gap:12px;padding:7px 0}
.du-name{width:108px;flex-shrink:0;font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.du-bar{flex:1;height:9px;border-radius:999px;background:#EDF1F5;overflow:hidden}
.du-fill{display:block;height:100%;border-radius:999px;background:#0E9F6E}
.du-pct{width:40px;text-align:right;font-size:13px;font-weight:800;color:var(--ink)}

/* Insights */
.di-scroll{display:flex;gap:12px;overflow-x:auto;padding-bottom:4px;margin:0 -2px}
.di-scroll::-webkit-scrollbar{display:none}
.di-card{flex:0 0 80%;max-width:300px;border-radius:14px;padding:13px;display:flex;flex-direction:column;gap:9px}
.di-card.green{background:rgba(14,159,110,.08)}
.di-card.blue{background:rgba(37,99,235,.07)}
.di-card.purple{background:rgba(124,58,237,.07)}
.di-ic{width:34px;height:34px;border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center}
.di-ic .nav-icon svg{width:17px;height:17px}
.di-card.green .di-ic{color:#0E9F6E}
.di-card.blue .di-ic{color:#2563EB}
.di-card.purple .di-ic{color:#7C3AED}
.di-card p{margin:0;font-size:13px;color:var(--ink);line-height:1.4}
.di-card p b{font-weight:800}
.di-card .db-link{align-self:flex-start}

/* Reservas recentes */
.dr-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid var(--line)}
.dr-row:last-child{border-bottom:none}
.dr-av{width:40px;height:40px;border-radius:50%;background:rgba(37,99,235,.12);color:#2563EB;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex-shrink:0}
.dr-main{flex:1;min-width:0}
.dr-t{font-size:14px;font-weight:700;color:var(--ink)}
.dr-s{font-size:12px;color:var(--muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dr-end{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
.dr-val{font-size:14px;font-weight:800;color:var(--ink)}
.dr-wa{width:38px;height:38px;border-radius:50%;background:#0E9F6E;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;text-decoration:none}
.dr-wa svg{width:19px;height:19px}

/* ═══════════════════════════════════════════════════════════════
   LIMPEZA — painel operacional (admin) v125 · .lz2-*
   ═══════════════════════════════════════════════════════════════ */
.lz2-wrap{display:flex;flex-direction:column;gap:14px;padding:6px 16px 28px;max-width:780px;margin:0 auto}
.lz2-wrap .nav-icon{display:inline-flex}

/* Resumo */
.lz2-resumo{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.lz2-rc{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:11px 8px;text-align:center;box-shadow:0 1px 2px rgba(13,31,45,.04)}
.lz2-rc b{display:block;font-size:21px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.lz2-rc span{font-size:11px;color:var(--muted);font-weight:600}
.lz2-rc.crit b{color:#E5373A}
.lz2-rc.go b{color:#2563EB}
.lz2-rc.done b{color:#0E9F6E}

/* Próximo crítico (hero) */
.lz2-crit{background:linear-gradient(135deg,#0D1F2D,#13314a);border-radius:18px;padding:16px;color:#fff;box-shadow:0 10px 26px rgba(13,31,45,.25)}
.lz2-crit.hot{background:linear-gradient(135deg,#3a0d12,#7a1d28)}
.lz2-crit-top{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.lz2-crit-tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:rgba(255,255,255,.85)}
.lz2-crit-tag .nav-icon svg{width:15px;height:15px}
.lz2-crit-unit{font-size:20px;font-weight:800;letter-spacing:-.02em;margin-bottom:8px}
.lz2-crit-times{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13.5px;color:rgba(255,255,255,.9);margin-bottom:6px}
.lz2-crit-times strong{color:#fff}
.lz2-arrow{opacity:.6}
.lz2-count{margin-left:auto;font-weight:800;background:rgba(255,255,255,.14);padding:4px 11px;border-radius:999px}
.lz2-count.urgente{background:rgba(245,158,11,.25);color:#FCD34D}
.lz2-count.vencido{background:rgba(229,55,58,.3);color:#FCA5A5}
.lz2-crit-meta{font-size:12.5px;color:rgba(255,255,255,.75);margin-bottom:12px}
.lz2-crit .lz2-actions{margin:0}
.lz2-crit .btn.ghost{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);color:#fff}
.lz2-crit select{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:10px;padding:8px;font-size:12.5px}
.lz2-crit select option{color:#0D1F2D}

/* Seções */
.lz2-sec{display:flex;flex-direction:column;gap:10px}
.lz2-sec-h{display:flex;align-items:center;gap:8px}
.lz2-sec-h h3{font-size:15px;font-weight:800;color:var(--ink);margin:0}
.lz2-sec-n{font-size:12px;font-weight:800;color:var(--muted);background:var(--surface-soft);border:1px solid var(--line);border-radius:999px;min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}
.lz2-empty{color:var(--muted);font-size:13px;padding:10px 2px}

/* Card de tarefa */
.lz2-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:13px 14px;box-shadow:0 1px 2px rgba(13,31,45,.04)}
.lz2-card.crit{border-color:rgba(229,55,58,.4)}
.lz2-row1{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lz2-row1 strong{font-size:15px;font-weight:800;color:var(--ink)}
.lz2-st{margin-left:auto;font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:999px}
.lz2-st.wait{background:rgba(217,119,6,.14);color:#B45309}
.lz2-st.go{background:rgba(37,99,235,.12);color:#2563EB}
.lz2-st.late{background:rgba(229,55,58,.12);color:#D12F32}
.lz2-st.done{background:rgba(14,159,110,.15);color:#0A8F6F}
.lz2-pp{font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:999px}
.lz2-pp.crit{background:rgba(229,55,58,.14);color:#D12F32}
.lz2-pp.alta{background:rgba(217,119,6,.15);color:#B45309}
.lz2-meta{font-size:12.5px;color:var(--muted);margin:6px 0 0}
.lz2-enx{margin-top:10px;background:var(--surface-soft);border:1px solid var(--line);border-radius:12px;padding:9px 11px}
.lz2-enx-h{font-size:12.5px;color:var(--ink);font-weight:600;margin-bottom:7px;display:flex;align-items:center;gap:6px}
.lz2-enx-h .nav-icon svg{width:15px;height:15px;color:var(--brand-500)}
.lz2-assign{margin-top:9px}
.lz2-assign select{font-size:12.5px;padding:8px 9px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);width:100%;max-width:240px;font-family:inherit}
.lz2-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.lz2-approved{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:700;color:#0A8F6F}
.lz2-approved .nav-icon svg{width:16px;height:16px}
/* Atalho "concluir sem validação" (anfitrião) — discreto, secundário */
.lz-forcedone{font-size:12px;padding:6px 10px;color:#B45309;border-color:rgba(217,119,6,.35)}
.lz-forcedone:hover{background:rgba(217,119,6,.08)}
/* Selo nas concluídas sem validação */
.lz2-unverified{color:#B45309;font-weight:700}

/* Equipe */
.lz2-team{display:flex;flex-direction:column;gap:10px}
.lz2-emp{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:11px 13px;box-shadow:0 1px 2px rgba(13,31,45,.04)}
.lz2-emp-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.lz2-emp-top strong{font-size:14px;font-weight:800;color:var(--ink)}
.lz2-emp-top span{font-size:12px;color:var(--muted);font-weight:600}
.lz2-emp-bar{height:7px;border-radius:999px;background:#EDF1F5;overflow:hidden;margin:8px 0 6px}
.lz2-emp-bar span{display:block;height:100%;border-radius:999px;background:#0E9F6E}
.lz2-emp-prox{font-size:12px;color:var(--muted)}

/* Histórico */
.lz2-hist{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:4px 14px;box-shadow:0 1px 2px rgba(13,31,45,.04)}
.lz2-hist>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:11px 0;font-size:14px;font-weight:700;color:var(--ink)}
.lz2-hist>summary::-webkit-details-marker{display:none}
.lz2-hist>summary .nav-icon svg{width:17px;height:17px;color:var(--muted)}

/* Limpeza Fase 2 — fotos obrigatórias + botão travado */
.lz-photos{margin-top:10px}
.lz-photos-h{font-size:12.5px;color:var(--ink);font-weight:600;display:flex;align-items:center;gap:6px;margin-bottom:8px}
.lz-photos-h .nav-icon svg{width:15px;height:15px;color:var(--muted)}
.lz-photos-h strong.ok{color:#0E9F6E}
.lz-photos-h strong.miss{color:#E5373A}
.lz-photos-grid{display:flex;flex-wrap:wrap;gap:8px}
.lz-photo{position:relative;width:64px;height:64px;border-radius:10px;background-size:cover;background-position:center;background-color:var(--bg);border:1px solid var(--line)}
.lz-photo-rm{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:#E5373A;color:#fff;border:2px solid var(--surface);font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.lz-photo-add{width:64px;height:64px;border-radius:10px;border:1.5px dashed var(--line);background:var(--surface-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;color:var(--muted);font-size:10.5px;font-weight:600}
.lz-photo-add .nav-icon svg{width:18px;height:18px}
.lz-photo-add:hover{border-color:var(--brand-500);color:var(--brand-500)}
.btn.lz-locked{background:var(--surface-soft)!important;color:var(--muted)!important;border:1px solid var(--line)!important;box-shadow:none!important;cursor:not-allowed;font-size:12.5px;font-weight:700}
.lz2-crit .btn.lz-locked{background:rgba(255,255,255,.1)!important;color:rgba(255,255,255,.7)!important;border-color:rgba(255,255,255,.2)!important}

/* Limpeza Fase 3 — informar problema → manutenção */
.lz-prob{margin-top:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);overflow:hidden}
.lz-prob>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:7px;padding:10px 12px;font-size:13px;font-weight:700;color:#B45309}
.lz-prob>summary::-webkit-details-marker{display:none}
.lz-prob>summary .nav-icon svg{width:16px;height:16px}
.lz-prob-body{padding:0 12px 12px;display:flex;flex-direction:column;gap:8px}
.lz-prob-body select,.lz-prob-body textarea{width:100%;box-sizing:border-box;font-family:inherit;font-size:13px;padding:9px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);resize:vertical}
.lz-prob-body .btn{align-self:flex-start;background:#D97706;font-size:12.5px}
.lz-prob-body .btn:hover{background:#B45309}
.lz-prob-done{margin-top:10px;display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:#7C3AED;background:rgba(124,58,237,.08);border:1px solid rgba(124,58,237,.2);border-radius:10px;padding:9px 11px}
.lz-prob-done .nav-icon svg{width:15px;height:15px}

/* Limpeza Fase 4 — escala da equipe + distribuição */
.lz2-emp-st{font-size:11.5px;font-weight:700;padding:2px 10px;border-radius:999px}
.lz2-emp-st.on{background:rgba(14,159,110,.14);color:#0A8F6F}
.lz2-emp-st.off{background:var(--surface-soft);color:var(--muted);border:1px solid var(--line)}
.lz-sched{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.lz-sched>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--brand-500)}
.lz-sched>summary::-webkit-details-marker{display:none}
.lz-sched>summary .nav-icon svg{width:15px;height:15px}
.lz-sched-body{display:flex;flex-direction:column;gap:11px;padding:11px 0 2px}
.lz-sched-row{display:flex;flex-direction:column;gap:6px}
.lz-sched-row>span{font-size:11.5px;color:var(--muted);font-weight:600}
.lz-days{display:flex;gap:6px;flex-wrap:wrap}
.lz-day input,.lz-pref input{position:absolute;opacity:0;width:0;height:0}
.lz-day{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:700;color:var(--muted);cursor:pointer;user-select:none}
.lz-day:has(input:checked){background:var(--brand-500);color:#fff;border-color:transparent}
.lz-sched-limit{width:80px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;font-size:13px;font-family:inherit;background:#fff;color:var(--ink)}
.lz-prefs{display:flex;flex-wrap:wrap;gap:6px}
.lz-pref{padding:6px 11px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;user-select:none}
.lz-pref:has(input:checked){background:rgba(33,150,211,.12);color:var(--brand-500);border-color:var(--brand-500)}
.lz-sched-body>.btn{align-self:flex-start;font-size:12.5px}

/* ═══════════════════════════════════════════════════════════════
   CENTRAL DE NOTIFICAÇÕES (Fase 5) — .nz-*
   ═══════════════════════════════════════════════════════════════ */
.nz-bell{position:relative}
.nz-badge{position:absolute;top:-4px;right:-4px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--danger);color:#fff;font-size:10.5px;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid var(--surface)}
.nz-overlay{position:fixed;inset:0;z-index:1200;display:flex;justify-content:flex-end}
.nz-backdrop{position:absolute;inset:0;background:rgba(13,31,45,.4);backdrop-filter:blur(1px)}
.nz-panel{position:relative;z-index:1;width:min(380px,92vw);max-height:100dvh;background:var(--surface);border-left:1px solid var(--line);box-shadow:-12px 0 40px rgba(13,31,45,.25);display:flex;flex-direction:column;animation:nz-slide .2s ease}
@keyframes nz-slide{from{transform:translateX(20px);opacity:.4}to{transform:translateX(0);opacity:1}}
.nz-head{display:flex;align-items:center;gap:10px;padding:16px;border-bottom:1px solid var(--line)}
.nz-head strong{flex:1;font-size:16px;font-weight:800;color:var(--ink)}
.nz-readall{background:none;border:0;color:var(--brand-500);font-size:12.5px;font-weight:700;cursor:pointer}
.nz-close{background:none;border:0;font-size:18px;color:var(--muted);cursor:pointer;line-height:1;padding:2px 6px}
.nz-list{flex:1;overflow-y:auto;padding:6px 0}
.nz-item{display:flex;gap:11px;padding:13px 16px 13px 14px;border-bottom:1px solid var(--line);border-left:3px solid transparent}
/* Severidade: barra lateral + cor do chip do ícone */
.nz-item.sev-crit{border-left-color:var(--danger)}
.nz-item.sev-crit .nz-ic{background:#FEECEC;color:var(--danger)}
.nz-item.sev-warn{border-left-color:#F59E0B}
.nz-item.sev-warn .nz-ic{background:#FEF3E2;color:#B45309}
.nz-item.sev-fin{border-left-color:#0FA37F}
.nz-item.sev-fin .nz-ic{background:#E7F7F1;color:#0B7A5E}
.nz-item.sev-resv{border-left-color:var(--brand-500)}
.nz-item.sev-resv .nz-ic{background:var(--brand-100);color:var(--brand-600)}
.nz-item.sev-clean{border-left-color:#6366F1}
.nz-item.sev-clean .nz-ic{background:#EEF0FE;color:#4F46E5}
.nz-item.sev-ok{border-left-color:#10B981}
.nz-item.sev-ok .nz-ic{background:#E7F8F0;color:#059669}
.nz-item.unread{background:rgba(33,150,211,.05)}
.nz-item.unread .nz-t::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--brand-500);margin-right:7px;vertical-align:middle}
.nz-ic{width:36px;height:36px;border-radius:11px;background:var(--surface-soft);display:flex;align-items:center;justify-content:center;color:var(--brand-500);flex-shrink:0}
.nz-ic .nav-icon svg{width:18px;height:18px}
.nz-main{flex:1;min-width:0}
.nz-t{font-size:14px;font-weight:700;color:var(--ink);line-height:1.3}
.nz-b{font-size:12.5px;color:var(--muted);margin-top:2px;line-height:1.4}
.nz-time{font-size:11px;color:var(--muted);margin-top:4px}
.nz-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:48px 20px;text-align:center;color:var(--muted)}
.nz-empty .nav-icon svg{width:34px;height:34px;opacity:.4}
.nz-empty p{margin:0;font-size:13.5px}

/* ═══════════════════════════════════════════════════════════════
   RESERVAS — card operacional (Fase 2): chips de canal + operação
   ═══════════════════════════════════════════════════════════════ */
.res-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:2px}
.res-name-row strong{font-size:15px;font-weight:800;color:var(--ink);letter-spacing:-.01em}
.res-ch{font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:6px;white-space:nowrap}
.ch-airbnb{background:rgba(230,30,77,.12);color:#E61E4D}
.ch-booking{background:rgba(0,53,128,.12);color:#0A4FB0}
.ch-whatsapp{background:rgba(18,140,126,.14);color:#128C7E}
.ch-direto{background:rgba(37,99,235,.10);color:#2563EB}
.ch-vrbo{background:rgba(29,78,216,.12);color:#1D4ED8}
.ch-outros{background:var(--surface-soft);color:var(--muted)}
.res-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.res-opchip{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;white-space:nowrap;line-height:1.5}
.oc-green{background:rgba(14,159,110,.13);color:#0A8F6F}
.oc-amber{background:rgba(217,119,6,.14);color:#B45309}
.oc-blue{background:rgba(37,99,235,.12);color:#2563EB}
.oc-red{background:rgba(229,55,58,.12);color:#D12F32}
.oc-grey{background:var(--surface-soft);color:var(--muted)}

/* Reservas Fase 3 — conflito expansível + ações rápidas */
.res-conf-detail{background:rgba(229,55,58,.06);border:1px solid rgba(229,55,58,.25);border-radius:12px;padding:11px 12px;margin-bottom:12px}
.res-conf-h{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:#D12F32;margin-bottom:7px}
.res-conf-h .nav-icon svg{width:16px;height:16px}
.res-conf-item{display:flex;flex-direction:column;padding:6px 0;border-top:1px solid rgba(229,55,58,.15)}
.res-conf-item strong{font-size:13px;color:var(--ink)}
.res-conf-item span{font-size:12px;color:var(--muted)}
.res-quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.res-quick-sec{margin-top:8px}
.oc-act.ghost-sec{font-size:11.5px;padding:6px 11px;color:var(--muted);border-color:var(--line)}
.oc-act.danger-sec{font-size:11.5px;padding:6px 11px;color:var(--danger);border-color:rgba(229,55,58,.3)}
.oc-act.danger-sec:hover{background:rgba(229,55,58,.06)}

/* Reservas Fase 4 — timeline da reserva */
.res-tl-label{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:16px 0 10px}
.res-timeline{display:flex;flex-direction:column;padding-left:2px}
.rt-step{display:flex;gap:12px;align-items:flex-start;position:relative;padding-bottom:15px}
.rt-step:last-child{padding-bottom:0}
.rt-step::before{content:"";position:absolute;left:5px;top:14px;bottom:0;width:2px;background:var(--line)}
.rt-step:last-child::before{display:none}
.rt-dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--line);background:var(--surface);flex-shrink:0;margin-top:1px;position:relative;z-index:1}
.rt-step.done .rt-dot{background:#0E9F6E;border-color:#0E9F6E}
.rt-step.done::before{background:#0E9F6E}
.rt-main{display:flex;flex-direction:column;gap:1px;min-width:0}
.rt-t{font-size:13px;font-weight:700;color:var(--ink)}
.rt-step.todo .rt-t{color:var(--muted);font-weight:600}
.rt-d{font-size:11.5px;color:var(--muted)}

/* ═══════════════════════════════════════════════════════════════
   LIMPEZA — visão FUNCIONÁRIA (execução, mobile-first) · .fz-*
   ═══════════════════════════════════════════════════════════════ */
.fz-dash{margin:14px 16px 6px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 1px 3px rgba(13,31,45,.05);padding:16px}
.fz-greet{font-size:21px;font-weight:800;letter-spacing:-.02em;color:var(--ink);margin:0 0 12px}
.fz-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:14px}
.fz-stat{background:var(--surface-soft);border:1px solid var(--line);border-radius:13px;padding:10px 8px;text-align:center}
.fz-stat b{display:block;font-size:18px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.fz-stat span{font-size:10.5px;color:var(--muted);font-weight:600;line-height:1.2;display:block;margin-top:2px}
.fz-stat.hot{background:rgba(229,55,58,.08);border-color:rgba(229,55,58,.3)}
.fz-stat.hot b{color:#E5373A}
.fz-prog-bar{height:12px;border-radius:999px;background:#EDF1F5;overflow:hidden}
.fz-prog-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#0E9F6E,#31C48D);transition:width .3s}
.fz-prog-l{font-size:12.5px;color:var(--muted);margin-top:7px;text-align:center}
.fz-prog-l strong{color:var(--ink)}

.fz-wrap{display:flex;flex-direction:column;padding:8px 16px 28px}
.fz-sec{display:flex;align-items:center;gap:8px;margin:16px 0 10px}
.fz-sec h3{font-size:16px;font-weight:800;color:var(--ink);margin:0}
.fz-secn{font-size:12px;font-weight:800;color:var(--muted);background:var(--surface-soft);border:1px solid var(--line);border-radius:999px;min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}
.fz-empty{color:var(--muted);font-size:13.5px;padding:16px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:14px}

.fz-card{background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--line);border-radius:14px;box-shadow:0 1px 2px rgba(13,31,45,.04);margin-bottom:12px;overflow:hidden}
.fz-card[open]{box-shadow:0 6px 18px rgba(13,31,45,.08)}
.fz-summary{display:flex;align-items:flex-start;gap:10px;padding:14px;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent}
.fz-summary::-webkit-details-marker{display:none}
.fz-sum-main{flex:1;min-width:0}
.fz-chev{color:var(--muted);flex-shrink:0;margin-top:3px;transition:transform .2s ease;display:flex}
.fz-chev .nav-icon svg{width:18px;height:18px}
.fz-card[open] .fz-chev{transform:rotate(180deg)}
.fz-body{padding:0 14px 14px}
.fz-confd-pill{font-size:11px;font-weight:700;color:#0A8F6F;background:rgba(14,159,110,.12);padding:2px 8px;border-radius:999px}
.fz-card.prio-alta{border-left-color:#E5373A}
.fz-card.prio-media{border-left-color:#D97706}
.fz-card.prio-baixa{border-left-color:#0E9F6E}
.fz-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.fz-prio{font-size:11.5px;font-weight:800;padding:3px 10px;border-radius:999px}
.fz-prio.prio-alta{background:rgba(229,55,58,.12);color:#D12F32}
.fz-prio.prio-media{background:rgba(217,119,6,.14);color:#B45309}
.fz-prio.prio-baixa{background:rgba(14,159,110,.13);color:#0A8F6F}
.fz-manut{font-size:11.5px;font-weight:700;color:#B45309;display:inline-flex;align-items:center;gap:5px}
.fz-manut .nav-icon svg{width:14px;height:14px}
.fz-unit{font-size:19px;font-weight:800;letter-spacing:-.02em;color:var(--ink);line-height:1.15}
.fz-sub{font-size:12.5px;color:var(--muted);margin-top:2px}
.fz-badge-go{font-size:11.5px;font-weight:700;color:#2563EB;background:rgba(37,99,235,.1);padding:2px 9px;border-radius:999px;vertical-align:middle;margin-left:4px}
.fz-count{margin-top:9px;font-size:13px;font-weight:700;color:var(--ink);background:var(--surface-soft);border:1px solid var(--line);border-radius:10px;padding:8px 11px}
.fz-count.soon{background:rgba(217,119,6,.1);border-color:rgba(217,119,6,.3);color:#B45309}
.fz-count.late{background:rgba(229,55,58,.1);border-color:rgba(229,55,58,.35);color:#D12F32}
.fz-acts{display:flex;flex-direction:column;gap:9px;margin-top:12px}
.fz-acts .btn{min-height:48px;font-size:15px}
.fz-confd{font-size:13px;font-weight:700;color:#0A8F6F;text-align:center}

.fz-exec-body{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.fz-exec-foot{margin-top:14px}
.fz-exec-foot .btn{min-height:50px;font-size:15.5px;width:100%}
.fz-note-l{display:block;font-size:12px;color:var(--muted);margin:12px 0 4px}
.fz-note{width:100%;box-sizing:border-box;font-size:13px;padding:9px;border:1px solid var(--line);border-radius:10px;resize:vertical;font-family:inherit}

.fz-done{display:flex;align-items:center;gap:11px;border-left-color:#0E9F6E;opacity:.85;padding:11px 14px}
.fz-check{width:32px;height:32px;border-radius:50%;background:rgba(14,159,110,.14);color:#0A8F6F;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.fz-check .nav-icon svg{width:18px;height:18px}
.fz-done strong{font-size:14.5px;color:var(--ink);display:block}
.fz-done span{font-size:12px;color:var(--muted)}

.fz-future{margin-top:14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:2px 14px}
.fz-future>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:12px 0;font-size:14px;font-weight:700;color:var(--ink)}
.fz-future>summary::-webkit-details-marker{display:none}
.fz-future>summary .nav-icon svg{width:16px;height:16px;color:var(--muted)}
.fz-fut-row{display:flex;justify-content:space-between;padding:9px 0;border-top:1px solid var(--line);font-size:13.5px}
.fz-fut-row strong{color:var(--ink);font-weight:700}
.fz-fut-row span{color:var(--muted)}

/* Limpeza funcionária — painel de desempenho */
.fz-perf{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:2px 14px;box-shadow:0 1px 2px rgba(13,31,45,.04)}
.fz-perf>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:12px 0;font-size:14px;font-weight:800;color:var(--ink)}
.fz-perf>summary::-webkit-details-marker{display:none}
.fz-perf>summary .nav-icon svg{width:17px;height:17px;color:var(--brand-500)}
.fz-perf-body{padding:4px 0 14px}
.fz-perf-lvl{display:flex;align-items:center;gap:11px;margin-bottom:9px}
.fz-lvl-ic{font-size:30px;line-height:1}
.fz-perf-lvl strong{display:block;font-size:16px;color:var(--ink)}
.fz-perf-lvl span{font-size:12px;color:var(--muted)}
.fz-perf-bar{height:9px;border-radius:999px;background:#EDF1F5;overflow:hidden;margin-bottom:14px}
.fz-perf-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#D9750E,#F5A623)}
.fz-perf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.fz-perf-grid>div{background:var(--surface-soft);border:1px solid var(--line);border-radius:12px;padding:10px 6px;text-align:center}
.fz-perf-grid b{display:block;font-size:18px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.fz-perf-grid span{font-size:10.5px;color:var(--muted);font-weight:600;display:block;margin-top:2px}

/* ── Desempenho & bonificação da equipe (admin / Equipe) ─────── */
.tp-wrap{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px 16px 14px;margin:0 0 18px;box-shadow:0 1px 2px rgba(13,31,45,.04)}
.tp-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.tp-head h3{margin:0;font-size:16px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.tp-month{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);background:var(--surface-soft);border:1px solid var(--line);border-radius:10px;padding:5px 9px;font-weight:600}
.tp-month input{border:0;background:transparent;font:inherit;color:var(--ink);font-weight:700;cursor:pointer}
.tp-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:12px}
.tp-sum{background:var(--surface-soft);border:1px solid var(--line);border-radius:12px;padding:10px 8px;text-align:center}
.tp-sum b{display:block;font-size:19px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.tp-sum span{font-size:10.5px;color:var(--muted);font-weight:600;display:block;margin-top:2px}
.tp-sum.hot{background:#FFF7ED;border-color:#FED7AA}
.tp-sum.hot b{color:#C2410C}
.tp-cfg{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px;padding:10px 12px;background:var(--brand-50);border:1px solid var(--brand-100);border-radius:12px}
.tp-cfg label{font-size:12px;color:var(--brand-700);font-weight:700;display:inline-flex;align-items:center;gap:6px}
.tp-cfg input{width:64px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:4px 7px;font:inherit;font-weight:700;color:var(--ink);text-align:center}
.tp-list{display:flex;flex-direction:column;gap:10px}
.tp-card{border:1px solid var(--line);border-radius:14px;padding:12px 13px;background:var(--surface)}
.tp-card.elig{border-color:#FCD34D;background:#FFFCF5;box-shadow:0 1px 6px rgba(245,158,11,.12)}
.tp-top{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.tp-rank{font-size:12px;font-weight:800;color:var(--muted);background:var(--surface-soft);border-radius:8px;padding:2px 7px;min-width:30px;text-align:center}
.tp-top strong{flex:1;font-size:14.5px;color:var(--ink);font-weight:700}
.tp-nivel{font-size:11.5px;font-weight:700;color:var(--brand-700);background:var(--brand-50);border:1px solid var(--brand-100);border-radius:999px;padding:2px 9px}
.tp-bar{height:7px;border-radius:999px;background:var(--surface-soft);overflow:hidden;margin-bottom:9px}
.tp-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#0FA37F,#34D399)}
.tp-metrics{display:flex;flex-wrap:wrap;gap:6px 14px;margin-bottom:10px}
.tp-metrics span{font-size:11.5px;color:var(--muted);font-weight:600}
.tp-metrics b{color:var(--ink);font-weight:800}
.tp-elig{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:#FFFBEB;border:1px solid #FDE68A;border-radius:10px;padding:8px 11px}
.tp-elig span{font-size:13px;color:#92400E;font-weight:600}
.tp-elig strong{color:#B45309}
.tp-elig .btn{background:#D9750E;color:#fff;border:0;border-radius:9px;padding:7px 13px;font-size:12.5px;font-weight:700;cursor:pointer;white-space:nowrap}
.tp-elig .btn:hover{background:#B45309}
.tp-paid{font-size:12.5px;font-weight:700;color:var(--ok);background:var(--ok-bg);border:1px solid #A7F3D0;border-radius:10px;padding:7px 11px;display:inline-flex;align-items:center;gap:6px}
.tp-noelig{font-size:11.5px;color:var(--muted);font-weight:600;padding:2px 0}
.tp-noelig strong{color:var(--ink)}
.tp-note{font-size:11px;color:var(--muted);margin:11px 0 0;line-height:1.5}
.tp-note strong{color:var(--brand-700)}
@media(max-width:560px){.tp-summary{grid-template-columns:repeat(2,1fr)}}

/* ── Inteligência de datas: demanda & preço ──────────────────── */
/* Selo na célula do calendário */
.calendar-day.demand-alta{background:linear-gradient(180deg,#FFF7ED 0%,transparent 60%)}
.calendar-day.demand-media{background:linear-gradient(180deg,#FFFBEB 0%,transparent 60%)}
.day-demand{font-size:11px;margin-left:3px;vertical-align:middle}
.day-holiday{display:block;font-size:9.5px;font-weight:700;line-height:1.1;margin-top:1px;color:#C2410C;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-day.demand-media .day-holiday{color:#B45309}

/* Bloco de demanda no painel do dia */
.cal-demand-panel{margin:0 0 14px;border-radius:12px;padding:12px 13px;border:1px solid #FED7AA;background:#FFF7ED}
.cal-demand-panel.media{border-color:#FDE68A;background:#FFFBEB}
.cdp-head{display:flex;align-items:center;gap:8px;font-size:14px;color:#9A3412}
.cal-demand-panel.media .cdp-head{color:#92400E}
.cdp-emoji{font-size:17px}
.cdp-reasons{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0}
.cdp-tag{font-size:11px;font-weight:600;color:#9A3412;background:#FFEDD5;border-radius:999px;padding:2px 9px}
.cal-demand-panel.media .cdp-tag{color:#92400E;background:#FEF3C7}
.cdp-price{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 11px;margin-top:4px}
.cdp-price-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted);padding:2px 0}
.cdp-price-row strong{color:var(--ink)}
.cdp-price-row.hot{border-top:1px dashed var(--line);margin-top:4px;padding-top:6px}
.cdp-price-row.hot span{color:#C2410C;font-weight:700}
.cdp-price-row.hot strong{color:#C2410C;font-size:16px}
.cdp-nobase{font-size:12px;color:var(--muted);margin:6px 0 0}
.cdp-cta{font-size:12.5px;color:#9A3412;margin:9px 0 0;line-height:1.45}

/* Faixa de oportunidades na Início */
.op-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:13px 14px;margin:0 0 14px;box-shadow:0 1px 2px rgba(13,31,45,.04)}
.op-head{display:flex;align-items:center;gap:8px;margin-bottom:11px}
.op-head strong{font-size:14.5px;color:var(--ink)}
.op-ic{font-size:16px}
.op-sub{margin-left:auto;font-size:11px;color:var(--muted);font-weight:600}
.op-list{display:flex;flex-direction:column;gap:8px}
.op-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid var(--line);border-radius:12px;padding:9px 11px;background:var(--surface-soft);cursor:pointer;font:inherit;transition:border-color .12s,background .12s}
.op-item:hover{border-color:#FDBA74;background:#FFF7ED}
.op-item.alta{border-left:3px solid #F97316}
.op-item.media{border-left:3px solid #F59E0B}
.op-emoji{font-size:17px;flex:0 0 auto}
.op-body{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}
.op-motivo{font-size:13px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.op-meta{font-size:11.5px;color:var(--muted);font-weight:600}
.op-bump{flex:0 0 auto;font-size:12px;font-weight:800;color:#C2410C;background:#FFEDD5;border-radius:999px;padding:4px 10px;white-space:nowrap}

/* ── Próximos recebimentos (fluxo de caixa por canal) ────────── */
.recb-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:12px}
.recb-sum{background:var(--surface-soft);border:1px solid var(--line);border-radius:12px;padding:10px 8px;text-align:center}
.recb-sum span{display:block;font-size:10.5px;color:var(--muted);font-weight:600;margin-bottom:3px}
.recb-sum b{font-size:16px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.recb-list{display:flex;flex-direction:column;gap:8px}
.recb-item{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:11px;padding:8px 11px;background:var(--surface)}
.recb-ch{flex:0 0 auto;font-size:11px;font-weight:700;border-radius:999px;padding:3px 10px;color:#fff}
.recb-ch.ch-airbnb{background:#E91E8C}
.recb-ch.ch-booking{background:#003B95}
.recb-ch.ch-whatsapp{background:#25D366}
.recb-ch.ch-direct{background:#2196D3}
.recb-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.recb-body strong{font-size:14px;color:var(--ink);font-weight:800}
.recb-body span{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recb-when{flex:0 0 auto;font-size:11.5px;font-weight:700;color:var(--muted);background:var(--surface-soft);border-radius:8px;padding:4px 9px;white-space:nowrap}
.recb-when.today{color:#0F7A5A;background:#D1FAE5}
.recb-when.late{color:#B45309;background:#FEF3C7}
.recb-more{font-size:11.5px;color:var(--muted);text-align:center;padding:4px 0}
.recb-note{font-size:11px;color:var(--muted);margin:11px 0 0;line-height:1.5}

/* ── Planos & Cobrança (billing) ─────────────────────────────── */
.bil-plans{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:stretch;padding-top:8px}
.bil-plan{position:relative;display:flex;flex-direction:column;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px 18px;box-shadow:0 1px 3px rgba(13,31,45,.05)}
.bil-plan.popular{border:2px solid var(--brand-500);box-shadow:0 10px 30px rgba(27,108,168,.16);margin-top:6px}
.bil-badge{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:linear-gradient(90deg,var(--brand-600),var(--brand-500));color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.04em;padding:4px 13px;border-radius:999px;white-space:nowrap;box-shadow:0 3px 10px rgba(27,108,168,.32)}
.bil-phead h3{margin:0;font-size:16px;font-weight:800;color:var(--ink);letter-spacing:-.01em}
.bil-price{display:flex;align-items:baseline;gap:5px;margin-top:5px}
.bil-price b{font-size:28px;font-weight:800;color:var(--ink);letter-spacing:-.03em}
.bil-price span{font-size:13px;color:var(--muted);font-weight:600}
.bil-feats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.bil-feats li{display:flex;align-items:flex-start;gap:9px;font-size:13.5px;color:var(--ink);line-height:1.4}
.bil-feats li svg{flex:0 0 auto;width:16px;height:16px;color:var(--ok);margin-top:1px}
.bil-cta{margin-top:auto;width:100%;border:0;border-radius:11px;padding:12px;font-size:14px;font-weight:700;cursor:pointer;background:var(--brand-600);color:#fff;transition:background .15s,transform .05s}
.bil-cta:hover{background:var(--brand-700)}
.bil-cta:active{transform:translateY(1px)}
.bil-plan.popular .bil-cta{background:linear-gradient(90deg,var(--brand-600),var(--brand-500))}
.bil-cta.is-current{background:var(--surface-soft);color:var(--muted);cursor:default;box-shadow:inset 0 0 0 1px var(--line)}

/* ── Billing: toggle mensal/anual + linhas extras ────────────── */
.bil-toggle{display:flex;gap:4px;padding:4px;background:var(--surface-soft);border:1px solid var(--line);border-radius:999px;margin:0 auto 16px;width:max-content}
.bil-toggle button{border:0;background:transparent;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:background .15s,color .15s}
.bil-toggle button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(13,31,45,.1)}
.bil-save{font-size:10px;font-weight:800;color:#0F7A5A;background:#D1FAE5;border-radius:999px;padding:2px 7px}
#billing-plans.bil-plans{align-items:stretch}
.bil-eq{font-size:12px;color:var(--ok);font-weight:600;margin-top:3px}
.bil-units{font-size:12.5px;color:var(--muted);font-weight:600;margin-top:7px}

/* ── Feature bloqueada por plano ─────────────────────────────── */
.feat-lock{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:var(--brand-700);background:var(--brand-50);border:1px solid var(--brand-100);border-radius:999px;padding:4px 11px;cursor:pointer;transition:background .12s}
.feat-lock:hover{background:var(--brand-100)}
.feat-locked{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:26px 18px;background:var(--surface-soft);border:1px dashed var(--line);border-radius:14px;margin:4px 0}
.feat-locked-ic{font-size:30px;line-height:1}
.feat-locked strong{font-size:15px;color:var(--ink)}
.feat-locked p{font-size:13px;color:var(--muted);margin:0;max-width:340px;line-height:1.5}
.feat-locked .btn{margin-top:4px;background:var(--brand-600);color:#fff;border:0}
.lz-sched-locked{font-size:12px;color:var(--muted);padding:7px 10px;background:var(--surface-soft);border:1px dashed var(--line);border-radius:10px;margin-top:8px}
.lz-sched-locked strong{color:var(--brand-700)}
.lz-link{background:none;border:0;color:var(--brand-600);font-weight:700;cursor:pointer;text-decoration:underline;font-size:12px;padding:0 2px}

/* ── Estoque ─────────────────────────────────────────────────── */
.inv-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.inv-stat{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 8px;text-align:center}
.inv-stat b{display:block;font-size:19px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.inv-stat span{font-size:11px;color:var(--muted);font-weight:600}
.inv-stat.hot{background:#FFF7ED;border-color:#FED7AA}
.inv-stat.hot b{color:#C2410C}
.inv-low{background:#FFF7ED;border:1px solid #FED7AA;border-radius:14px;padding:13px 14px;margin-bottom:14px}
.inv-low-h{font-size:14px;color:#9A3412;margin-bottom:9px}
.inv-low-list{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:11px}
.inv-low-chip{font-size:12px;font-weight:600;color:#9A3412;background:#FFEDD5;border-radius:999px;padding:3px 10px}
.inv-low-chip b{color:#C2410C}
.inv-cat{margin-bottom:16px}
.inv-cat-h{font-size:12.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 8px;display:flex;align-items:center;gap:7px}
.inv-cat-h span{background:var(--surface-soft);border-radius:999px;padding:1px 8px;font-size:11px}
.inv-item{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:11px 13px;margin-bottom:8px}
.inv-item-main{flex:1;min-width:0}
.inv-item-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.inv-item-top strong{font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inv-unit{flex:0 0 auto;font-size:10.5px;font-weight:700;color:var(--brand-700);background:var(--brand-50);border-radius:999px;padding:2px 8px}
.inv-bar{height:6px;border-radius:999px;background:var(--surface-soft);overflow:hidden;margin-bottom:6px}
.inv-bar span{display:block;height:100%;border-radius:999px}
.inv-bar.ok span{background:#10B981}
.inv-bar.warn span{background:#F59E0B}
.inv-bar.low span{background:#EF4444}
.inv-meta{font-size:11.5px;color:var(--muted);font-weight:600}
.inv-meta b{color:var(--ink);font-weight:800}
.inv-item-actions{display:flex;align-items:center;gap:5px;flex:0 0 auto}
.inv-step{width:30px;height:30px;border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;font-size:17px;font-weight:700;color:var(--ink);cursor:pointer;line-height:1}
.inv-step:hover{background:var(--brand-50);border-color:var(--brand-100)}
.inv-buy{border:1px solid var(--line);background:var(--surface);border-radius:8px;font-size:11.5px;font-weight:700;color:var(--brand-700);padding:0 9px;height:30px;cursor:pointer;white-space:nowrap}
.inv-buy:hover{background:var(--brand-50)}
.inv-edit{width:30px;height:30px;border:1px solid var(--line);background:var(--surface);border-radius:8px;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.inv-edit svg{width:15px;height:15px}
.inv-form{display:flex;flex-direction:column;gap:11px}
.inv-form-row{display:grid;grid-template-columns:1fr 1fr;gap:11px}
@media(max-width:430px){
  .inv-item{flex-wrap:wrap}
  .inv-item-actions{width:100%;justify-content:flex-end;margin-top:2px}
  .inv-item-top strong{white-space:normal}
}

/* ── Picker de comodidades (modal página de reservas) ────────── */
.amen-pick{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600;color:var(--ink);background:var(--surface-soft);border:1px solid var(--line);border-radius:999px;padding:7px 12px;cursor:pointer;user-select:none;transition:background .12s,border-color .12s}
.amen-pick:hover{border-color:var(--brand-100)}
.amen-pick.on{background:var(--brand-50);border-color:var(--brand-500);color:var(--brand-700)}

/* ── Unidades: lista + edição focada (mobile-first) ─────────── */
/* Editor de horários da propriedade (check-in/out) */
.un-times{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:13px 14px;margin:0 0 14px;box-shadow:0 1px 2px rgba(13,31,45,.04)}
.un-times-h{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:800;color:var(--ink)}
.un-times-h span{font-weight:600;color:var(--muted);font-size:11.5px}
.un-times-h .nav-icon svg{width:16px;height:16px}
.un-times-row{display:flex;align-items:flex-end;gap:10px;margin-top:10px;flex-wrap:wrap}
.un-time-fld{display:flex;flex-direction:column;gap:4px;font-size:11.5px;font-weight:700;color:var(--muted)}
.un-time-fld input{border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:14px;color:var(--ink);background:var(--surface);font-family:inherit}
.un-time-save{padding:9px 18px}
.un-times-hint{font-size:11.5px;color:var(--muted);margin:9px 0 0}
.un-list{display:flex;flex-direction:column;gap:10px}
.un-card{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px;cursor:pointer;font:inherit;box-shadow:0 1px 2px rgba(13,31,45,.04);transition:border-color .12s,box-shadow .12s}
.un-card:hover{border-color:#BDD0E0;box-shadow:0 3px 12px rgba(13,31,45,.07)}
.un-thumb{flex:0 0 auto;width:60px;height:60px;border-radius:12px;background:var(--surface-soft);border:1px solid var(--line);background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;color:var(--muted)}
.un-card-info{flex:1;min-width:0}
.un-card-top{display:flex;align-items:center;gap:8px;margin-bottom:3px}
.un-card-top strong{font-size:15px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.un-card-sub{font-size:12px;color:var(--muted);font-weight:600;margin-bottom:5px}
.un-card-kpis{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;color:var(--muted);font-weight:600}
.un-card-go{flex:0 0 auto;color:#CBD5E1}.un-card-go svg{width:18px;height:18px}

.un-edit{padding-bottom:84px}
.un-edit-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.un-back{display:inline-flex;align-items:center;gap:3px;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:7px 11px 7px 8px;font-size:13px;font-weight:700;color:var(--brand-700);cursor:pointer}
.un-back svg{width:16px;height:16px}
.un-edit-head h2{margin:0;font-size:19px;font-weight:800;color:var(--ink)}
.un-edit-head p{margin:1px 0 0;font-size:12.5px;color:var(--muted)}

.un-resumo{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:12px}
.un-resumo-info{flex:1;min-width:0}.un-resumo-info strong{display:block;font-size:15px;color:var(--ink)}
.un-resumo-info span{font-size:12px;color:var(--muted);font-weight:600}

.un-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.un-kpis>div{background:var(--surface-soft);border:1px solid var(--line);border-radius:12px;padding:10px 6px;text-align:center}
.un-kpis b{display:block;font-size:15px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.un-kpis span{font-size:10px;color:var(--muted);font-weight:600}

.un-sec{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:15px;margin-bottom:12px}
.un-sec-h{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:12px}
.un-field{margin-bottom:13px}
.un-field:last-child{margin-bottom:0}
.un-field>label{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:6px}
.un-field>label svg{width:15px;height:15px;color:var(--muted)}
.un-field input,.un-field select,.un-field textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;font-size:15px;font-family:inherit;background:var(--surface);color:var(--ink)}
.un-field textarea{resize:vertical;min-height:64px}
.un-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.un-row2 .un-field{margin-bottom:13px}

/* ── Kit de formulário premium (.pf-*): reutilizável em modais e telas ── */
.pf-modal-head{display:flex;align-items:center;gap:12px;margin:0 0 16px}
.pf-modal-head .pf-ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none;background:var(--brand-100);color:var(--brand-600)}
.pf-modal-head .pf-ic .nav-icon{background:transparent;width:auto;height:auto}
.pf-modal-head .pf-ic svg{width:21px;height:21px}
.pf-modal-head h3{margin:0;font-size:17px;font-weight:800;color:var(--ink);line-height:1.2}
.pf-modal-head p{margin:2px 0 0;font-size:12.5px;color:var(--muted);line-height:1.35}
.pf-sec{margin-bottom:16px}
.pf-sec:last-of-type{margin-bottom:8px}
.pf-sec-h{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-2);margin:0 0 10px}
.pf-field{margin-bottom:12px}
.pf-field:last-child{margin-bottom:0}
.pf-field>label{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--ink-2);margin-bottom:6px}
.pf-field>label .nav-icon{background:transparent;width:auto;height:auto}
.pf-field>label svg{width:15px;height:15px;color:var(--muted-2)}
.pf-field input,.pf-field select,.pf-field textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;font-size:15px;font-family:inherit;background:var(--surface);color:var(--ink);transition:border-color .15s,box-shadow .15s}
.pf-field input:focus,.pf-field select:focus,.pf-field textarea:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px rgba(33,150,211,.16)}
.pf-field textarea{resize:vertical;min-height:64px}
.pf-field input::placeholder,.pf-field textarea::placeholder{color:var(--muted-2)}
.pf-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pf-error{color:var(--danger);font-size:13px;min-height:18px;margin-top:2px}
.pf-help{font-size:12.5px;color:var(--muted);line-height:1.5;margin:0 0 12px}
.pf-field .pwd-wrap{position:relative}
.pf-field .pwd-wrap input{padding-right:42px}

/* Onboarding (.ob-*): seletores e cartões de unidade premium */
.ob-unit{border:1px solid var(--line);border-radius:12px;padding:13px;background:var(--surface);margin-bottom:10px}
.ob-unit-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.ob-unit-h>span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-2)}
.ob-unit-rm{background:none;border:0;color:var(--danger);cursor:pointer;display:flex;padding:4px;border-radius:6px}
.ob-unit-rm:disabled{opacity:.3;cursor:not-allowed}
.ob-unit-rm svg{width:16px;height:16px}
.ob-pick{margin-bottom:13px}
.ob-pick>span.lbl{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--ink-2);margin-bottom:8px}
.ob-pick>span.lbl svg{width:15px;height:15px;color:var(--muted-2)}
.ob-chips{display:flex;gap:7px;flex-wrap:wrap}
.ob-chip{font-size:21px;line-height:1;padding:7px 10px;border:1.5px solid var(--line);background:var(--surface);border-radius:10px;cursor:pointer;transition:border-color .12s,background .12s}
.ob-chip.sel{border-color:var(--brand-500);background:var(--brand-100)}
.ob-swatch{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border:1.5px solid var(--line);background:var(--surface);border-radius:10px;cursor:pointer;font-size:13px;font-weight:600;color:var(--ink-2);transition:border-color .12s,background .12s}
.ob-swatch .dot{width:14px;height:14px;border-radius:50%;flex:none}

.un-acc{padding:0}
.un-acc>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:15px;font-size:13px;font-weight:700;color:var(--ink)}
.un-acc>summary::-webkit-details-marker{display:none}
.un-acc>summary svg{width:16px;height:16px;color:var(--muted)}
.un-chev{margin-left:auto;transition:transform .15s}.un-chev svg{width:16px;height:16px}
.un-acc[open] .un-chev{transform:rotate(180deg)}
.un-acc-body{padding:0 15px 15px}

.un-photo{display:flex;flex-direction:column;gap:10px}
.un-photo-img{width:100%;height:180px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}
.un-photo-empty{width:100%;height:140px;border:2px dashed var(--line);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--muted);font-size:13px;background:var(--surface-soft)}
.un-photo-empty svg{width:26px;height:26px;opacity:.6}
.un-photo-actions{display:flex;gap:8px}
.un-photo-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:9px;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer}
.un-photo-btn:hover{background:var(--surface-soft)}
.un-photo-btn svg{width:15px;height:15px}
.un-photo-btn.rm{color:var(--muted)}.un-photo-btn.rm:hover{color:var(--danger);border-color:#FECACA}
.un-photo-hint{font-size:11px;color:var(--muted);margin:0}

.un-save-bar{position:sticky;bottom:0;left:0;right:0;padding:12px 0 14px;background:linear-gradient(180deg,rgba(248,250,251,0),#F8FAFB 35%);margin-top:4px}
.un-save{width:100%;font-size:15px;font-weight:800;padding:14px}

/* ════ Limpeza — novo padrão (.lz3-*) ════ */
.lz3-tabs{display:flex;gap:6px;padding:0 16px 12px}
.lz3-tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:11px;padding:10px 8px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer}
.lz3-tab .nav-icon svg{width:15px;height:15px}
.lz3-tab.on{background:var(--brand-100);border-color:var(--brand-500);color:var(--brand-600)}
.lz3-wrap{padding:14px 16px 24px;display:flex;flex-direction:column;gap:16px}
.lz2-empty{padding:18px 2px;text-align:center;color:var(--muted);font-size:13px}

.lz3-hero{display:flex;gap:14px;background:#0D1F2D;border-radius:18px;padding:18px;color:#fff}
.lz3-hero.hot{box-shadow:0 0 0 2px rgba(245,158,11,.55)}
.lz3-hero-l{flex:1;min-width:0}
.lz3-hero-tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.06em;color:var(--brand-400)}
.lz3-hero-tag .nav-icon svg{width:14px;height:14px}
.lz3-hero-unit{margin:8px 0 12px;font-size:26px;font-weight:800;line-height:1.1;color:#fff}
.lz3-hero-times{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.lz3-hero-times small{display:block;font-size:11px;color:rgba(255,255,255,.55)}
.lz3-hero-times b{font-size:18px;font-weight:800}
.lz3-hero-arrow{color:rgba(255,255,255,.5)}
.lz3-hero-g{display:flex;align-items:center;gap:6px;font-size:13.5px;color:rgba(255,255,255,.85);margin-bottom:6px}
.lz3-hero-g .nav-icon svg{width:15px;height:15px}
.lz3-hero-count{font-size:12.5px;color:rgba(255,255,255,.65)}
.lz3-hero-count.late{color:#FCA5A5;font-weight:700}
.lz3-hero-r{width:150px;flex-shrink:0;display:flex;flex-direction:column;gap:10px}
.lz3-hero-photo{width:150px;height:92px;border-radius:12px;background:#1a2f40;background-size:cover;background-position:center;display:grid;place-items:center;color:rgba(255,255,255,.5);font-weight:800}
.lz3-hero-btn,.lz3-hero-btnwrap .btn{width:100%}
@media(max-width:560px){
  .lz3-hero{flex-direction:column;padding:16px}
  .lz3-hero-r{width:100%}
  .lz3-hero-photo{width:100%;height:120px}
  .lz3-hero-unit{font-size:23px}
}

.lz3-pend{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 16px}
.lz3-pend-h{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:800;color:var(--ink);margin-bottom:6px}
.lz3-pend-h .nav-icon svg{width:17px;height:17px;color:var(--danger)}
.lz3-pend-h em{font-style:normal;background:rgba(229,55,58,.12);color:var(--danger);font-size:12px;border-radius:20px;padding:1px 8px}
.lz3-pend-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line-soft)}
.lz3-pend-dot{width:9px;height:9px;border-radius:50%;background:var(--danger);flex-shrink:0}
.lz3-pend-main{flex:1;min-width:0}
.lz3-pend-u{font-size:13.5px;color:var(--ink)}
.lz3-pend-u span{color:var(--muted);font-weight:400}
.lz3-pend-d{font-size:12px;color:var(--muted);margin-top:1px}
.lz3-pend-cobrar{flex-shrink:0;display:inline-flex;align-items:center;gap:5px;border:1px solid #FCA5A5;color:var(--danger);border-radius:20px;padding:6px 12px;font-size:12.5px;font-weight:600;text-decoration:none;background:#fff}

.lz3-sec{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 16px}
.lz3-sec-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.lz3-sec-h h3{margin:0;font-size:15px;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:7px}
.lz3-sec-h h3 .nav-icon svg{width:16px;height:16px}
.lz3-sec-h h3 em{font-style:normal;color:var(--muted-2);font-weight:700;font-size:13px}
.lz3-prog-l{font-size:12.5px;color:var(--ok);font-weight:700}
.lz3-prog{height:7px;border-radius:5px;background:var(--surface-mid);overflow:hidden;margin-bottom:12px}
.lz3-prog>span{display:block;height:100%;background:var(--ok);border-radius:5px}

.lz3-card{border-top:1px solid var(--line-soft)}
.lz3-card:first-of-type{border-top:none}
.lz3-csum{display:flex;align-items:center;gap:11px;padding:11px 0;cursor:pointer;list-style:none}
.lz3-csum::-webkit-details-marker{display:none}
.lz3-thumb{position:relative;width:52px;height:52px;flex-shrink:0}
.lz3-thumb-img{width:52px;height:52px;border-radius:11px;background:var(--surface-mid);background-size:cover;background-position:center;display:grid;place-items:center;font-size:13px;font-weight:800;color:var(--muted)}
.lz3-chan{position:absolute;left:-5px;bottom:-5px;width:21px;height:21px;border-radius:7px;display:grid;place-items:center;font-size:11px;font-weight:800;color:#fff;border:2px solid var(--surface)}
.lz3-cmain{flex:1;min-width:0}
.lz3-cname{font-size:15px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lz3-cmeta,.lz3-ctimes{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:5px;margin-top:2px}
.lz3-cmeta .nav-icon svg,.lz3-ctimes .nav-icon svg{width:13px;height:13px}
.lz3-ck{flex-shrink:0;display:flex;flex-direction:column;align-items:center;border:1.5px solid var(--line);border-radius:11px;padding:6px 10px;min-width:64px}
.lz3-ck small{font-size:9.5px;color:var(--muted);font-weight:600}
.lz3-ck b{font-size:15px;font-weight:800}
.lz3-ck.zero{border-color:var(--brand-400)}.lz3-ck.zero b{color:var(--brand-600)}
.lz3-ck.part{border-color:#FCD9A8}.lz3-ck.part b{color:#D97706}
.lz3-ck.full{border-color:#A7E8CE}.lz3-ck.full b{color:var(--ok)}
.lz3-ic{flex-shrink:0;color:var(--muted-2);display:grid;place-items:center;width:30px;height:30px}
.lz3-ic.done{color:var(--ok)}
.lz3-ic .nav-icon svg{width:20px;height:20px}
.lz3-card[open] .lz3-ic .nav-icon{transform:rotate(90deg);transition:transform .2s}
.lz3-cbody{padding:2px 0 12px}
.lz3-assign,.lz3-resp{margin-bottom:8px;font-size:13px;color:var(--muted)}
.lz3-assign select{width:100%}
.lz3-card.done .lz3-csum{opacity:.82}
.lz3-card.late .lz3-thumb-img{outline:2px solid var(--danger);outline-offset:1px}
.fz-greetwrap{padding:14px 16px 4px}
.lz3-go{font-size:10.5px;font-weight:800;color:var(--ok);background:rgba(15,163,127,.13);border-radius:20px;padding:2px 8px;vertical-align:middle;margin-left:4px}
.lz3-cbody .fz-exec-body{margin-top:4px}

/* Seletor de propriedades — extras (conexão no topo, Ativa, receita) */
.psx-head-right{flex-wrap:wrap;justify-content:flex-end}
.psx-conn-top{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:20px;background:var(--surface);border:1px solid var(--line)}
.psx-ico{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);cursor:pointer}
.psx-ico:hover{background:var(--surface-soft)}
.psx-ico .nav-icon svg{width:18px;height:18px}
.psx-ativa{display:inline-block;font-size:10.5px;font-weight:700;color:#0B7A5E;background:#E7F7F1;border-radius:20px;padding:1px 9px;vertical-align:middle;margin-left:4px}
.psx-card-loc{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);margin-top:3px}
.psx-card-loc .nav-icon svg{width:13px;height:13px}
.psx-occ-on{color:var(--ok);font-weight:600}
.psx-rev{display:flex;align-items:center;gap:10px;margin-top:11px;padding-top:11px;border-top:1px solid var(--line-soft)}
.psx-rev-ic{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:rgba(15,163,127,.12);color:var(--ok);flex-shrink:0}
.psx-rev-ic .nav-icon svg{width:16px;height:16px}
.psx-rev-l{font-size:11.5px;color:var(--muted)}
.psx-rev-v{font-size:16px;font-weight:800;color:var(--ok)}
@media (max-width:560px){
  .psx-conn-top span:last-child{display:none}
  .psx-conn-top{padding:0;width:30px;height:30px;justify-content:center;border-radius:50%}
  .psx-ico{width:34px;height:34px}
}
@media (max-width:560px){
  .psx-head{flex-wrap:wrap}
  .psx-greet{flex:1 1 100%}
  .psx-head-right{flex:1 1 100%;justify-content:flex-start;margin-top:6px}
}

/* ══════════════════════════════════════════════════════════════
   DESIGN SYSTEM v1 — componentes canônicos (usar via app/core/ui.js)
   Regra de cor: azul=ação · verde=receita/sucesso/pago · verde-claro=check-in ·
   laranja=check-out · roxo=limpeza · vermelho=problema/excluir · cinza=neutro.
   Botões: SÓ .btn (primário) · .btn.ghost (secundário) · .btn.accent (sucesso) ·
   .btn.danger (alerta). Card = .panel/.record-card. KPI = .metric-card.
   ══════════════════════════════════════════════════════════════ */

/* Cabeçalho de página: subtítulo + slot de ação (pageHead()) */
.page-intro p { margin-top: 4px; color: var(--muted); font-size: var(--text-base); line-height: 1.45; }
.page-intro-act { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

/* Card (card()): barra de acento por operação + slot de ação no header */
.panel-act { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-left: auto; }
.panel.accent-checkin     { border-top: 3px solid var(--checkin); }
.panel.accent-checkout    { border-top: 3px solid var(--checkout); }
.panel.accent-cleaning    { border-top: 3px solid var(--cleaning); }
.panel.accent-maintenance { border-top: 3px solid var(--maintenance); }
.panel.accent-revenue     { border-top: 3px solid var(--ok); }
.panel.accent-brand       { border-top: 3px solid var(--brand-500); }

/* Status-pill (statusPill()): ícone + variantes de operação/canal sobre .badge */
.badge .nav-icon { width: 13px; height: 13px; background: transparent; margin-right: 4px; }
.badge .nav-icon svg { width: 13px; height: 13px; }
.badge.checkin     { background: var(--checkin-bg);     color: var(--checkin); }
.badge.checkout    { background: var(--checkout-bg);    color: var(--checkout); }
.badge.cleaning    { background: var(--cleaning-bg);    color: var(--cleaning); }
.badge.maintenance { background: var(--maintenance-bg); color: var(--maintenance); }
.badge.revenue     { background: var(--ok-bg);          color: var(--ok); }
.badge.ch-airbnb   { background: rgba(233,30,140,.12);  color: var(--ch-airbnb); }
.badge.ch-booking  { background: rgba(0,59,149,.12);    color: var(--ch-booking); }
.badge.ch-whatsapp { background: rgba(37,211,102,.14);  color: #0E7C43; }
.badge.ch-direto   { background: var(--brand-100);      color: var(--brand-600); }
.theme-dark .badge.ch-whatsapp { color: #4ADE80; }

/* Ícone de operação (opIcon()) */
.op-icon .nav-icon { background: transparent; width: auto; height: auto; }
.op-icon svg { width: 18px; height: 18px; }

/* KPI com tom semântico (metric()) */
.metric-card.tone-revenue strong { color: var(--ok); }
.metric-card.tone-problem strong { color: var(--danger); }

/* Item de lista (recordCard()) — reaproveita .record-card; define slots */
.record-card .rec-media { flex: none; }
.record-card .rec-main  { flex: 1; min-width: 0; }
.record-card .rec-meta  { font-size: var(--text-sm); color: var(--muted); margin-top: 2px; }
.record-card .rec-pills { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.record-card .rec-act   { flex: none; display: flex; gap: 6px; align-items: center; }

/* Modal por tipo (modal()) — reaproveita .modal-overlay/.modal-card */
.modal-card.modal-success .modal-icon { color: var(--ok); }
.modal-card.modal-danger  .modal-icon { color: var(--danger); }

/* Valores monetários (money()) — mono, tabular */
.num { font-family: var(--mono); font-variant-numeric: tabular-nums; }

/* "Valor escondido" — privacidade ao mostrar a tela em público/print.
   Embaralha os valores monetários (motor money() + receita do Hoje). */
.hide-values .num,
.hide-values .hk-money,
.hide-values .vg-rev-v { filter: blur(9px); user-select: none; transition: filter .12s; }

/* ═══ Calendário — Centro de Operações (redesign) ═══ */
.cal2 { padding-bottom: 10px; }
.cal2-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:14px 16px 6px; }
.cal2-head h1 { margin:0; font-size:24px; letter-spacing:-.02em; }
.cal2-period { margin:2px 0 0; color:var(--muted); font-size:13.5px; text-transform:capitalize; }
.cal2-modebar { display:flex; gap:5px; overflow-x:auto; -webkit-overflow-scrolling:touch; padding:4px 16px 0; scrollbar-width:none; }
.cal2-modebar::-webkit-scrollbar { display:none; }
.cal2-modebar button { flex:0 0 auto; border:1px solid var(--line); background:var(--surface); color:var(--muted); font-size:13.5px; font-weight:600; padding:7px 16px; border-radius:999px; cursor:pointer; transition:all .12s; }
.cal2-modebar button.active { background:var(--brand-600); border-color:var(--brand-600); color:#fff; box-shadow:var(--sh-sm); }
.cal2-modebar button:hover:not(.active) { border-color:var(--brand-500); color:var(--ink); }
.cal2-nav { display:flex; align-items:center; gap:8px; padding:10px 16px 4px; }
.cal2-datepick { display:inline-flex; align-items:center; gap:6px; margin-left:auto; border:1px solid var(--line); background:var(--surface); border-radius:var(--r-sm); padding:6px 10px; color:var(--muted); cursor:pointer; }
.cal2-datepick input { border:0; background:transparent; color:var(--ink); font-size:13px; font-family:inherit; width:118px; }
.cal2-filters { margin:8px 16px 0; }
.cal2-filt-btn { display:inline-flex; align-items:center; gap:6px; list-style:none; cursor:pointer; border:1px solid var(--line); background:var(--surface); border-radius:999px; padding:6px 14px; font-size:13px; font-weight:600; color:var(--muted); width:max-content; }
.cal2-filt-btn::-webkit-details-marker { display:none; }
.cal2-filt-dot { width:7px; height:7px; border-radius:50%; background:var(--brand-500); }
.cal2-filt-body { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:8px; padding:10px; background:var(--surface-soft); border-radius:var(--r-lg); }
.cal2-filt-body .field { margin:0; }
@media (max-width:560px){ .cal2-filt-body { grid-template-columns:1fr; } }

.cw { margin:12px 12px 0; border:1px solid var(--line); border-radius:var(--r-lg); background:var(--surface); overflow:hidden; box-shadow:var(--sh-sm); }
.cw-headrow { display:flex; border-bottom:1px solid var(--line); background:var(--surface-soft); }
.cw-corner { flex:0 0 62px; }
.cw-days { flex:1; display:flex; }
.cw-dcol { flex:1; display:flex; flex-direction:column; align-items:center; gap:1px; padding:7px 0; border:0; background:transparent; cursor:pointer; }
.cw-dow { font-size:10px; text-transform:uppercase; color:var(--muted); }
.cw-dnum { font-size:15px; font-weight:700; color:var(--ink); width:26px; height:26px; display:grid; place-items:center; border-radius:50%; }
.cw-dcol.is-today .cw-dnum { background:var(--brand-600); color:#fff; }
.cw-dcol.is-wknd .cw-dow { color:var(--brand-500); }
.cw-rows { position:relative; }
.cw-row { display:flex; align-items:stretch; min-height:56px; border-bottom:1px solid var(--line-soft); }
.cw-row:last-child { border-bottom:0; }
.cw-ulabel { flex:0 0 62px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; padding:6px 4px; position:relative; border-right:1px solid var(--line-soft); }
.cw-thumb { width:30px; height:30px; border-radius:8px; object-fit:cover; background:var(--surface-soft); display:grid; place-items:center; font-size:10px; font-weight:700; color:var(--muted); }
.cw-udot { position:absolute; top:6px; right:9px; width:8px; height:8px; border-radius:50%; border:1.5px solid var(--surface); }
.cw-udot.occ { background:var(--brand-500); } .cw-udot.free { background:var(--muted-2); }
.cw-utext { text-align:center; line-height:1.05; } .cw-utext strong { font-size:12px; display:block; } .cw-utext small { font-size:9.5px; color:var(--muted); }
.cw-track { flex:1; position:relative; }
.cw-cell { position:absolute; top:0; bottom:0; border-right:1px solid var(--line-soft); }
.cw-cell.is-today { background:rgba(33,150,211,.05); }
.cw-card { position:absolute; top:6px; bottom:6px; left:0; border:0; border-radius:9px; background:var(--cw-c,#1B6CA8); color:#fff; padding:4px 8px; text-align:left; overflow:hidden; cursor:pointer; box-shadow:var(--sh-sm); display:flex; flex-direction:column; justify-content:center; gap:1px; min-width:22px; }
.cw-card-nm { font-size:12px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cw-card-mt { font-size:10px; opacity:.92; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cw-card.is-sel { outline:2px solid var(--ink); outline-offset:1px; }
.cw-card.is-conf { box-shadow:0 0 0 2px var(--danger); }
.cw-todayline { position:absolute; top:0; bottom:0; width:2px; background:var(--brand-500); opacity:.55; pointer-events:none; z-index:2; }
.cw-legend { display:flex; flex-wrap:wrap; gap:12px; padding:10px 16px 2px; }
.cw-legend span { display:inline-flex; align-items:center; gap:5px; font-size:11.5px; color:var(--muted); }
.cw-legend i { width:10px; height:10px; border-radius:3px; display:inline-block; }

.cw-ag-list { display:flex; flex-direction:column; }
.cw-ag { display:flex; align-items:center; gap:12px; padding:11px 4px; border:0; border-bottom:1px solid var(--line-soft); background:transparent; cursor:pointer; text-align:left; width:100%; }
.cw-ag:last-child { border-bottom:0; }
.cw-ag-t { font-size:13px; font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; min-width:44px; }
.cw-ag-ic { width:32px; height:32px; border-radius:9px; display:grid; place-items:center; flex:0 0 auto; }
.cw-ag-ic.green { background:var(--ok-bg); color:var(--ok); }
.cw-ag-ic.orange { background:var(--warn-bg); color:var(--warn); }
.cw-ag-ic.purple { background:rgba(124,58,237,.12); color:#7C3AED; }
.cw-ag-main { flex:1; min-width:0; } .cw-ag-main strong { display:block; font-size:13.5px; } .cw-ag-main small { color:var(--muted); font-size:12px; }
.cw-ag-chev { color:var(--muted-2); }

.cal2-ical { margin:14px 12px 0; }
.cal2-ical-sum { display:flex; align-items:center; gap:8px; list-style:none; cursor:pointer; padding:12px 14px; border:1px solid var(--line); border-radius:var(--r-lg); background:var(--surface); font-weight:600; font-size:14px; color:var(--ink); }
.cal2-ical-sum::-webkit-details-marker { display:none; }
.cal2-ical-warn { margin-left:auto; font-size:11.5px; font-weight:700; color:var(--warn); }
.cal2-ical-warn:not(.pend) { color:var(--danger); }

/* Prévia de foto do guia — quadro fixo (não estica a tela toda) */
.gs-photo-prev { width:100%; max-width:200px; aspect-ratio:4/3; border-radius:10px; overflow:hidden; border:1px solid var(--line); background:var(--surface-soft); margin-bottom:8px; }
.gs-photo-prev img { width:100%; height:100%; object-fit:cover; display:block; }
.gs-photo-btn { display:inline-flex; align-items:center; gap:6px; margin:0 0 6px; }

/* CTA dentro de estados vazios (empty state que ensina o proximo passo) */
.empty-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:center; margin-top:12px; }

/* Filtro rápido de unidades por status */
.un-filterbar { display:flex; gap:6px; overflow-x:auto; -webkit-overflow-scrolling:touch; padding:0 16px 6px; scrollbar-width:none; }
.un-filterbar::-webkit-scrollbar { display:none; }
.un-fchip { flex:0 0 auto; border:1px solid var(--line); background:var(--surface); color:var(--muted); font-size:13px; font-weight:600; padding:6px 13px; border-radius:999px; cursor:pointer; transition:all .12s; }
.un-fchip.on { background:var(--brand-600); border-color:var(--brand-600); color:#fff; }
.un-fchip em { font-style:normal; opacity:.7; font-weight:700; }
.un-fchip.on em { opacity:.85; }

/* Estado de carregamento p/ qualquer elemento interativo */
.loading { opacity: .7; pointer-events: none; }
