:root {
  --bg: #f3eee6;
  --surface: #fbf8f2;
  --sunken: #e8dfd0;
  --ink: #12100e;
  --muted: #3d3833;
  --line: #d9d0c3;
  --lagoon: #0d5c63;
  --lagoon-fg: #f4f8f6;
  --lagoon-deep: #0a474c;
  --lagoon-soft: #d7e6e4;
  --radius: 14px;
  --shadow: 0 0 0 1px color-mix(in oklab, var(--ink) 6%, transparent),
    0 8px 24px -16px color-mix(in oklab, var(--ink) 18%, transparent);
  --sans: "Figtree", ui-sans-serif, system-ui, sans-serif;
  --display: "Newsreader", ui-serif, Georgia, serif;
}

[hidden] { display: none !important; }
* { box-sizing: border-box; }
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
  font-weight: 500;
  letter-spacing: -0.011em;
  -webkit-font-smoothing: antialiased;
  -webkit-overflow-scrolling: touch;
}
html, body { min-height: 100%; }
body { overflow-x: clip; }
img, video { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3 {
  font-family: var(--display);
  letter-spacing: -0.03em;
  font-weight: 600;
  text-wrap: balance;
  margin: 0;
}
p { text-wrap: pretty; }
.wrap { width: min(1120px, calc(100% - 2rem)); margin-inline: auto; max-width: 100%; box-sizing: border-box; }

header.nav {
  position: sticky; top: 0; z-index: 20;
  background: color-mix(in oklab, var(--bg) 90%, transparent);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid color-mix(in oklab, var(--line) 80%, transparent);
}
.nav-inner { display: flex; align-items: center; justify-content: space-between; height: 96px; gap: 10px; min-width: 0; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; flex-shrink: 0; }
.mark {
  width: 116px; height: 80px; border-radius: 0; object-fit: contain;
  display: block; flex-shrink: 0; background: transparent;
}
.brand-name {
  font-family: var(--display);
  font-style: italic;
  font-weight: 500;
  font-size: 1.15rem;
  color: var(--ink);
  letter-spacing: -0.03em;
  line-height: 1;
  white-space: nowrap;
}
body:not(.shell) .brand-name { display: none; }
.nav-links {
  display: flex; align-items: center; justify-content: flex-end; gap: 4px; flex: 1; min-width: 0;
}
.nav-links a {
  text-decoration: none; padding: 8px 10px; border-radius: 10px; color: var(--ink);
  font-size: 0.88rem; font-weight: 700; min-height: 44px; display: inline-flex; align-items: center;
}
.lang-switch {
  display: flex;
  gap: 2px;
  flex-shrink: 0;
  margin-left: 4px;
}
.lang-switch button {
  border: 0;
  background: transparent;
  font: inherit;
  font-weight: 800;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  padding: 8px 8px;
  border-radius: 8px;
  min-height: 44px;
  color: var(--muted);
  cursor: pointer;
}
.lang-switch button.on {
  background: var(--lagoon-soft);
  color: var(--lagoon-deep);
}

.hero { position: relative; height: min(72dvh, 44rem); min-height: 28rem; overflow: hidden; }
.hero img {
  width: 100%; height: 100%; object-fit: cover;
  animation: heroMove 16s ease-in-out infinite alternate;
  transform-origin: 58% 42%;
  will-change: transform;
}
@media (prefers-reduced-motion: reduce) {
  .hero img { animation: none; }
}
@keyframes heroMove {
  from { transform: scale(1.05) translate(0, 0); }
  to { transform: scale(1.22) translate(-4%, 2.5%); }
}
.hero-video { padding: 0 0 0.4rem; }
.lead-video { width: 100%; border-radius: var(--radius); background: #000; max-height: 56dvh; }
.hero-shade {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(28,25,23,.72), rgba(28,25,23,.18) 45%, rgba(28,25,23,.12));
}
.hero-copy { position: absolute; left: 0; right: 0; bottom: 0; padding: 0 0 1.6rem; color: var(--lagoon-fg); z-index: 3; }
.hero .actions { margin-top: 0; }
.kicker {
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--lagoon-deep); margin: 0 0 0.75rem;
}
.hero .kicker {
  color: color-mix(in oklab, var(--lagoon-fg) 92%, white);
}
.hero h1 { font-size: clamp(2.2rem, 6vw, 3.8rem); font-style: italic; line-height: 0.95; max-width: 16ch; }
.actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 1.4rem; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px;
  padding: 0 1.2rem; border-radius: 14px; text-decoration: none; font-weight: 600;
  font-size: 0.95rem; border: 0; cursor: pointer; font-family: inherit;
}
.btn-primary { background: var(--lagoon); color: var(--lagoon-fg); }
.btn-ghost { background: color-mix(in oklab, var(--surface) 90%, transparent); color: var(--ink); }
.btn-outline { background: transparent; color: var(--lagoon); border: 2px solid var(--lagoon); }
.btn-add {
  width: 100%;
  white-space: normal;
  text-align: center;
  line-height: 1.3;
  font-weight: 800;
  padding: 0.85rem 1rem;
}

section { padding: 3.5rem 0; }
h2 { font-size: clamp(1.6rem, 3vw, 2rem); }
.lead { color: var(--muted); line-height: 1.55; max-width: 42ch; font-weight: 500; }
.lead.wide { max-width: 54ch; }
.intro { padding: 1.2rem 0 0.85rem; }
.intro-copy { max-width: 40rem; }
.intro h1 {
  font-size: clamp(2.2rem, 7vw, 3.4rem);
  font-style: italic;
  line-height: 1;
  margin: 0.2rem 0 0.8rem;
}
.lede {
  font-family: var(--display);
  font-size: clamp(1.35rem, 3vw, 1.7rem);
  line-height: 1.3;
  margin: 0 0 0.8rem;
}
.intro .btn { margin-top: 1.1rem; }

.story { padding: 2.6rem 0; }
.story-grid { display: flex; flex-direction: column; gap: 1.4rem; min-width: 0; }
.story-copy { min-width: 0; }
.shot-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  min-width: 0;
}
.shot-grid img {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: var(--radius);
  max-width: 100%;
  cursor: zoom-in;
}
.shot-grid figure { margin: 0; min-width: 0; }
.shot-grid figcaption {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--ink);
  padding: 6px 2px 0;
  letter-spacing: 0.02em;
}
.facts { list-style: none; padding: 0; margin: 1.1rem 0 0; display: grid; gap: 12px; }
.facts li { margin: 0; }
.facts strong { display: block; font-size: 1rem; }
.facts span { display: block; color: var(--muted); font-size: 0.95rem; line-height: 1.45; font-weight: 500; }
.story-copy a { color: var(--lagoon); font-weight: 700; text-decoration: none; }

.cta-wrap { padding: 0 0 3rem; }
.cta-band {
  background: var(--lagoon);
  color: var(--lagoon-fg);
  border-radius: 22px;
  padding: 2rem 1.4rem;
  text-align: center;
}
.cta-band h2 { color: #fff; font-style: italic; margin-bottom: 0.6rem; }
.cta-band p { color: #e7f1f0; max-width: 36ch; margin: 0 auto 1.2rem; }
.cta-band .btn-primary { background: #fbf8f2; color: var(--lagoon-deep); }
body.no-copy, body.no-copy * {
  -webkit-user-select: none !important;
  user-select: none !important;
  -webkit-touch-callout: none !important;
}
body.no-copy input,
body.no-copy textarea,
body.no-copy select {
  -webkit-user-select: text;
  user-select: text;
  -webkit-touch-callout: default;
}
.refer-wrap { padding: 0 0 2.6rem; }
.refer-card {
  background: #fff8e8;
  border: 2px solid #e2b15a;
  border-radius: 22px;
  padding: 1.7rem 1.3rem 1.5rem;
  text-align: center;
  box-shadow: 0 12px 28px rgba(180, 130, 40, 0.18);
}
.refer-card .kicker { color: #9a6b12; letter-spacing: 0.14em; }
.refer-card h2 { font-style: italic; margin: 0.15rem 0 0.55rem; }
.refer-card p { margin: 0 auto 1.15rem; max-width: 34ch; }
.refer-card .btn { min-height: 52px; padding: 0 22px; font-size: 1.05rem; }

@media (min-width: 900px) and (pointer: fine) {
  .story-grid {
    display: grid;
    grid-template-columns: 1fr 1.05fr;
    gap: 2.4rem;
    align-items: start;
  }
  .story.flip .story-copy { order: 2; }
}

html.iphone .story-grid {
  display: flex !important;
  flex-direction: column !important;
}

.mosaic {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  min-width: 0;
}
.mosaic img, .mosaic video {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--radius);
  max-width: 100%;
  outline: 1px solid color-mix(in oklab, var(--ink) 10%, transparent);
  outline-offset: -1px;
}
.mosaic .big {
  grid-column: 1 / -1;
  aspect-ratio: 4 / 3;
  min-height: 0;
}
.mosaic .wide { grid-column: 1 / -1; aspect-ratio: 16/9; background: var(--ink); }

.split {
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
  min-width: 0;
}
.split > * { min-width: 0; max-width: 100%; }

@media (min-width: 900px) and (pointer: fine) {
  .mosaic { grid-template-columns: 1.4fr 1fr; gap: 10px; }
  .mosaic .big {
    grid-column: auto;
    grid-row: span 2;
    height: 100%;
    min-height: 280px;
    aspect-ratio: auto;
  }
  .split {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    align-items: start;
    gap: 2rem;
  }
}

html.iphone .split,
html.iphone .guest-cals {
  display: flex !important;
  flex-direction: column !important;
}
html.iphone .mosaic {
  grid-template-columns: 1fr 1fr !important;
}
html.iphone .mosaic .big {
  grid-row: auto !important;
  grid-column: 1 / -1 !important;
  height: auto !important;
  min-height: 0 !important;
}
html.iphone .mosaic img,
html.iphone .mosaic video {
  height: auto !important;
  max-width: 100% !important;
}
.chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 1.2rem 0 0; list-style: none; }
.chips li { background: var(--sunken); padding: 6px 12px; border-radius: 999px; font-size: 0.9rem; }

.rooms { display: grid; gap: 2.5rem; }
.room h3 { font-size: 1.4rem; }
.room p { color: var(--muted); line-height: 1.5; }
.thumbs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 0.9rem; }
.thumbs img {
  aspect-ratio: 3/2; object-fit: cover; width: 100%; border-radius: 10px; cursor: zoom-in;
  outline: 1px solid color-mix(in oklab, var(--ink) 10%, transparent); outline-offset: -1px;
}

.ask { background: var(--lagoon); color: #fff; border-radius: 22px; padding: 1.6rem 1.4rem; }
.ask h2 { font-style: italic; color: #fff; }
.ask p,
.ask .hint,
.ask .kicker,
.ask .lead,
.ask .status {
  color: #ffffff;
  font-weight: 700;
  opacity: 1;
}
.ask .status,
.ask #status,
.ask #status2 {
  background: #ffffff;
  color: #111111;
  border-radius: 12px;
  padding: 12px 14px;
  margin: 0.6rem 0 0;
  font-size: 1rem;
  font-weight: 800;
}
.ask #status:empty,
.ask #status2:empty {
  display: none;
  padding: 0;
  margin: 0;
  background: none;
}

footer {
  border-top: 1px solid var(--line);
  padding: 0.55rem 16px 0.8rem;
  text-align: center; color: var(--muted); font-size: 0.75rem; font-weight: 600;
}
footer a { color: var(--muted); text-decoration: none; }
.chat-near { width: 100%; margin-top: 14px; background: color-mix(in oklab, var(--lagoon-fg) 16%, transparent); color: #fff; }
#lightbox {
  position: fixed; inset: 0; background: rgba(28,25,23,.88);
  display: none; align-items: center; justify-content: center; z-index: 50; padding: 1.5rem;
}
#lightbox.open { display: flex; }
#lightbox img { max-height: 90dvh; max-width: 100%; border-radius: 8px; }

.admin { padding: 2rem 0 4rem; }
.admin h1 { font-size: 2rem; margin: 0.3rem 0 0.6rem; }
.card-block { background: var(--surface); border-radius: 22px; padding: 1.4rem; box-shadow: var(--shadow); max-width: 28rem; }
.login-form { display: grid; gap: 8px; margin-top: 1rem; }
.login-form input, .fields input, .fields select {
  min-height: 48px; border: 1px solid var(--line); border-radius: 10px;
  padding: 0 12px; font: inherit; background: var(--bg); color: var(--ink);
}
.fields { display: grid; gap: 10px; margin: 1.2rem 0; }
@media (min-width: 700px) { .fields { grid-template-columns: repeat(3, 1fr); } }
.fields label, .login-form label {
  font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); display: grid; gap: 6px;
}
.cal-nav { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.cal-nav h2 { font-size: 1.3rem; text-transform: none; }
.dow, .cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.dow { margin: 1rem 0 6px; color: var(--muted); font-size: 0.75rem; text-align: center; letter-spacing: 0.08em; }
.cal button {
  position: relative;
  min-height: 52px; border: 0; border-radius: 10px; background: var(--surface);
  font: inherit; cursor: pointer; box-shadow: var(--shadow);
}
.cal button.feriado::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 4px;
  width: 5px;
  height: 5px;
  margin-left: -2px;
  border-radius: 50%;
  background: #b45309;
}
.cal button.res { background: var(--lagoon); color: var(--lagoon-fg); }
.cal button.bloq { background: var(--sunken); color: var(--muted); text-decoration: line-through; }
.cal button.horizon { background: #efe8dc; color: var(--muted); }
.cal button.sel { outline: 2px solid var(--lagoon); background: var(--lagoon-soft); }
.cal.prices button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 4px 0; font-size: 0.9rem; }
.cal.prices small { font-size: 0.62rem; font-weight: 600; }
.legend { display: flex; gap: 12px; align-items: center; color: var(--muted); font-size: 0.85rem; flex-wrap: wrap; }
.legend i { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.legend i.livre { background: var(--surface); box-shadow: var(--shadow); }
.legend i.sel { background: var(--lagoon-soft); outline: 2px solid var(--lagoon); }
.legend i.res { background: var(--lagoon); }
.legend i.bloq { background: var(--sunken); }
.err { color: #8f3d32; font-size: 0.9rem; }
.ok { color: #3d6b4f; font-size: 0.9rem; }
.fields label.check {
  display: flex; flex-direction: row; align-items: center; justify-content: flex-start; gap: 8px;
  text-transform: none; letter-spacing: normal; font-size: 0.9rem; color: var(--ink, #0d5c63);
}
.fields label.check input[type="checkbox"] { width: auto; }

.tabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 0 0 1.4rem; }
.tab {
  min-height: 44px; padding: 0 14px; border: 0; border-radius: 999px;
  background: var(--sunken); color: var(--ink); font: inherit; cursor: pointer; font-weight: 600;
}
.tab.on { background: var(--lagoon); color: var(--lagoon-fg); }
.tab b {
  display: inline-flex; min-width: 1.2rem; justify-content: center; margin-left: 6px;
  background: #8f3d32; color: #fff; border-radius: 999px; font-size: 0.75rem; padding: 0 5px;
}
.sub { margin: 1.6rem 0 0.7rem; font-size: 1.2rem; }
.fields.stack { grid-template-columns: 1fr; }
.fields textarea, .room-edit textarea, .room-edit input, .fields.stack input, .fields.stack textarea {
  width: 100%; min-height: 48px; border: 1px solid var(--line); border-radius: 10px;
  padding: 10px 12px; font: inherit; background: var(--bg); color: var(--ink);
}
.fields label.wide { grid-column: 1 / -1; text-transform: none; letter-spacing: 0; font-size: 0.85rem; }
.fields label.wide textarea { min-height: 96px; }
.photo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
}
.slot img, .preview {
  width: 100%;
  max-width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 12px;
  background: var(--sunken);
  display: block;
  cursor: pointer;
}
.slot {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  margin: 0;
  padding: 10px;
  background: var(--card, #fff);
  border: 1px solid rgba(13, 92, 99, 0.12);
  border-radius: 16px;
  font-size: 0.85rem;
  color: var(--ink);
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
}
.slot strong {
  font-size: 0.82rem;
  font-weight: 800;
}
.slot label {
  display: grid;
  gap: 4px;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--muted);
}
.slot label input[type="text"] {
  width: 100%;
  min-height: 42px;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid rgba(13, 92, 99, 0.18);
  font: inherit;
  font-weight: 600;
  color: var(--ink);
  background: #fff;
}
.slot-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.slot-actions .btn {
  width: 100%;
  padding: 10px 8px;
  font-size: 0.8rem;
}
.sr-file {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.lib-overlay {
  position: fixed;
  inset: 0;
  z-index: 80;
  background: rgba(8, 28, 32, 0.55);
  padding: 16px;
  overflow: auto;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}
.lib-overlay[hidden] { display: none; }
.lib-box {
  width: min(920px, 100%);
  margin: 24px auto;
  background: #fff;
  border-radius: 20px;
  padding: 16px;
}
.lib-box header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
}
.lib-box h3 { margin: 0; font-size: 1.1rem; }
.lib-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.lib-item {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
  position: relative;
}
.lib-item img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 12px;
  display: block;
}
.lib-del {
  position: absolute;
  top: 6px;
  right: 6px;
  border: 0;
  border-radius: 999px;
  background: rgba(20, 20, 20, 0.78);
  color: #fff;
  font: inherit;
  font-size: 0.7rem;
  font-weight: 800;
  padding: 6px 10px;
  cursor: pointer;
}
.pasta-toolbar { max-width: 280px; margin: 0 0 12px; }
.pasta-grid { margin: 0 0 1.5rem; }
.lib-item span {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 4px 2px 0;
}
@media (min-width: 900px) {
  .lib-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
.thumbs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.thumbs .slot { margin: 0; }
.thumbs .slot input[type="file"] { height: 100%; inset: 0; }
.preview { max-width: 88px; margin: 8px 0; }
.room-edit { background: var(--surface); padding: 1rem; border-radius: 16px; margin-bottom: 10px; box-shadow: var(--shadow); }
.cal.airbnb button.in { background: var(--lagoon-soft); color: var(--ink); }
.cal.airbnb button:disabled { opacity: 0.45; cursor: not-allowed; }
.guest-cals { display: grid; gap: 1.2rem; margin-top: 1rem; }
.guest-cal-wrap { position: relative; }
.guest-scroll {
  max-height: 520px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  border-radius: 16px;
}
.guest-cal-wrap.is-locked .guest-scroll { pointer-events: none; }
.cal-lock {
  position: absolute;
  inset: 0;
  z-index: 5;
  border: 0;
  border-radius: 16px;
  background: rgba(8, 48, 52, 0.42);
  color: #fff;
  font: inherit;
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.35;
  padding: 24px;
  cursor: pointer;
}
.cal-lock[hidden] { display: none; }
.guest-scroll .guest-dow {
  position: sticky;
  top: 0;
  z-index: 2;
  margin: 0;
  padding: 8px 0 10px;
  background: var(--lagoon);
}
.guest-month { padding: 0; margin: 0; }
.guest-month h3 {
  margin: 16px 4px 8px;
  text-transform: none;
  color: var(--lagoon-fg);
  font-size: 1.25rem;
  font-weight: 650;
}
.guest-month .cal { margin-bottom: 4px; }
.people-note { margin: 6px 2px 0; }
.cal-blank { min-height: 52px; }
@media (min-width: 900px) { .guest-cals { grid-template-columns: 1.1fr 0.9fr; align-items: start; } }
.cal.light button { background: color-mix(in oklab, var(--lagoon-fg) 14%, transparent); color: var(--lagoon-fg); box-shadow: none; }
.cal.light button.res { background: var(--lagoon-fg); color: var(--lagoon); }
.cal.light button.in { background: color-mix(in oklab, var(--lagoon-fg) 30%, transparent); }
.cal.light button.bloq { background: transparent; color: color-mix(in oklab, var(--lagoon-fg) 45%, transparent); text-decoration: line-through; }
.dow.light { color: color-mix(in oklab, var(--lagoon-fg) 70%, transparent); }
.cal-nav.light h3 { margin: 0; text-transform: capitalize; color: var(--lagoon-fg); font-size: 1.1rem; }
.book-form { display: grid; gap: 10px; position: relative; z-index: 2; }
.book-form .hint {
  margin: 0; font-family: var(--sans); font-size: 0.85rem; font-weight: 500;
  letter-spacing: 0; text-transform: none; color: #d5e6e4; line-height: 1.4;
}
.book-form label {
  display: grid; gap: 6px;
  font-family: var(--sans); font-size: 0.8rem; font-weight: 600;
  letter-spacing: 0.04em; text-transform: none; color: #fff;
}
.book-form input,
.guest-toggle,
.ask #rangeLabel {
  width: 100%; min-height: 48px; border: 0; border-radius: 12px; padding: 0 14px;
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
  box-sizing: border-box;
}
.book-form input,
.guest-toggle {
  background: #fff;
}
.guest-toggle { text-align: left; cursor: pointer; display: flex; align-items: center; }
.ask #rangeLabel {
  display: flex; align-items: center; min-height: auto; padding: 0;
  background: transparent; color: #fff; font-weight: 500;
}
.book-form input:focus,
.guest-toggle:focus {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
.book-form input:-webkit-autofill,
.book-form input:-webkit-autofill:hover,
.book-form input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--ink);
  box-shadow: 0 0 0 1000px #fff inset;
  font-size: 16px;
  font-weight: 500;
  transition: background-color 9999s ease-out;
}
.ask .book-form > .btn-primary,
.ask .row-actions .btn-primary,
.ask .btn-primary,
.ask .row-actions .btn-ghost,
.ask .btn-ghost:not(.chat-near),
.ask #toContract,
.ask #pedirBtn {
  background: color-mix(in oklab, var(--lagoon-fg) 16%, transparent) !important;
  color: #ffffff !important;
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 800;
  width: 100%;
  min-height: 52px;
  margin-top: 4px;
  box-shadow: none;
  cursor: pointer;
  pointer-events: auto;
}
.ask #toContract.is-ready {
  box-shadow: none;
}
.guest-sheet .btn-primary {
  background: var(--lagoon);
  color: var(--lagoon-fg);
}
.pix { margin-top: 1rem; padding: 1rem; border-radius: 14px; background: color-mix(in oklab, var(--lagoon-fg) 12%, transparent); }
.pix-key, .pix-val { font-size: 1.15rem; font-weight: 700; margin: 0.3rem 0; }
.book-side { min-width: 0; }
.pay-card {
  background: #fff;
  color: var(--ink);
  border-radius: 18px;
  padding: 18px 16px 16px;
  box-shadow: 0 12px 32px -18px rgba(0,0,0,.35);
}
.pay-card h3 {
  font-family: var(--display);
  font-size: 1.45rem;
  margin: 0 0 4px;
  color: var(--lagoon-deep);
}
.pay-kicker {
  margin: 0 0 4px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--lagoon);
}
.pay-dates { margin: 0 0 12px; color: var(--muted); font-weight: 650; font-size: 0.92rem; }
.pay-sum {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 0 0 14px;
}
.pay-sum div {
  background: var(--sunken);
  border-radius: 12px;
  padding: 10px 12px;
}
.pay-sum span { display: block; font-size: 0.75rem; font-weight: 700; color: var(--muted); }
.pay-sum b { display: block; margin-top: 2px; font-size: 1.05rem; color: var(--lagoon-deep); }
.pay-pix {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 12px;
  align-items: center;
  margin: 0 0 14px;
}
.pay-pix img {
  width: 160px;
  height: 160px;
  background: #fff;
  border-radius: 12px;
  border: 1px solid var(--line);
  padding: 6px;
}
.pay-pix p { margin: 0 0 2px; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.pay-pix strong { display: block; margin: 0 0 8px; font-size: 1rem; }
.pay-pix .btn { width: 100%; margin: 0 0 6px; background: var(--sunken); color: var(--ink); font-weight: 750; }
.pay-card .btn-primary,
.pay-card a.btn-primary {
  background: var(--lagoon) !important;
  color: #fff !important;
  width: 100%;
  min-height: 48px;
  font-weight: 800;
  margin-top: 8px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.pay-hint {
  margin: 8px 0 4px;
  font-size: 0.88rem;
  line-height: 1.4;
  color: var(--muted);
  font-weight: 600;
}
.pay-card .pay-pix .btn {
  background: var(--lagoon) !important;
  color: #fff !important;
}
.pay-wa {
  display: block;
  margin-top: 10px;
  text-align: center;
  font-weight: 700;
  font-size: 0.88rem;
  color: var(--lagoon);
  text-decoration: none;
}
.pay-close {
  display: block;
  width: 100%;
  margin-top: 12px;
  border: 0;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-weight: 700;
  font-size: 0.88rem;
  cursor: pointer;
  min-height: 40px;
}
@media (max-width: 800px) {
  .pay-pix { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .pay-pix div { width: 100%; }
}
.list { display: grid; gap: 10px; }
.res-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.res-filters .btn { padding: 8px 12px; font-size: 0.85rem; }
.res-filters .btn.on { background: var(--lagoon); color: #fff; }
.res-filters .btn.origin-airbnb.on { background: #ff5a5f; }
.res-filters .btn.origin-booking.on { background: #003580; }
.res-filters .btn.origin-whatsapp.on { background: #128C7E; }
#resDateBox .cal button.has { box-shadow: inset 0 -4px 0 var(--lagoon); }
#resDateBox .cal button.on { outline: 2px solid var(--lagoon); background: var(--lagoon-soft); }
#resDateBox .cal-nav h3 { margin: 0; font-size: 1.05rem; text-transform: capitalize; }
.st-origin-site { background: #d7e6e4; color: #0a474c; }
.st-origin-airbnb { background: #ff5a5f; color: #fff; }
.st-origin-booking { background: #003580; color: #fff; }
.st-origin-whatsapp { background: #128C7E; color: #fff; }
.card-row.origin-airbnb { border-left: 5px solid #ff5a5f; }
.card-row.origin-booking { border-left: 5px solid #003580; }
.card-row.origin-site { border-left: 5px solid var(--lagoon); }
.card-row.origin-whatsapp { border-left: 5px solid #128C7E; }
.fold {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 0 14px 12px;
  margin: 0 0 12px;
  background: var(--surface);
}
.fold > summary {
  cursor: pointer;
  font-weight: 800;
  font-size: 1rem;
  padding: 14px 2px;
  list-style: none;
}
.fold > summary::-webkit-details-marker { display: none; }
.fold > summary::after { content: "abrir"; float: right; font-size: 0.78rem; font-weight: 700; color: var(--muted); }
.fold[open] > summary::after { content: "fechar"; }
.fold > summary:has(.fold-move) { display: flex; align-items: center; gap: 8px; }
.fold > summary:has(.fold-move)::after { float: none; margin-left: 8px; }
.fold-move { margin-left: auto; display: flex; gap: 6px; }
.fold-move button {
  min-width: 36px;
  min-height: 32px;
  padding: 0;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
}
.sticky-save {
  position: sticky;
  bottom: calc(76px + env(safe-area-inset-bottom, 0px));
  z-index: 6;
  padding: 10px 0 8px;
  background: linear-gradient(transparent, var(--bg) 28%);
}
.cal button.res.origin-airbnb { box-shadow: inset 0 5px 0 #ff5a5f; }
.cal button.res.origin-booking { box-shadow: inset 0 5px 0 #003580; }
.cal button.res.origin-site { box-shadow: inset 0 5px 0 var(--lagoon); }
.cal button.res.origin-whatsapp { box-shadow: inset 0 5px 0 #128C7E; }
.cal button.res.origin-ical { box-shadow: inset 0 5px 0 #888; }
.stay-list { display: flex; flex-direction: column; gap: 8px; margin: 8px 0 14px; }
.stay-list > p {
  margin: 0;
  padding: 10px 12px;
  border-radius: 12px;
  font-weight: 800;
  border-left: 6px solid transparent;
  background: var(--surface);
}
.stay-list .origin-airbnb { background: #fff1f1; border-left-color: #ff5a5f; color: #9b1c1c; }
.stay-list .origin-booking { background: #e7eef8; border-left-color: #003580; color: #003580; }
.stay-list .origin-site { background: #e5f3f1; border-left-color: #0d5c63; color: #0d5c63; }
.stay-list .on { outline: 2px solid currentColor; }
.st-pill {
  display: inline-block;
  margin: 8px 0 0;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}
.st-wait { background: #fff4d6; color: #8a5a00; }
.st-ok { background: #d8f5e3; color: #0f6b38; }
.st-exp { background: #ffe1d6; color: #9a2b12; }
.st-off { background: #ececec; color: #555; }
.card-row.is-exp, .card-row.is-off { opacity: 0.92; }
.card-row {
  display: grid; gap: 12px; background: var(--surface); padding: 1rem; border-radius: 16px; box-shadow: var(--shadow);
}
@media (min-width: 800px) {
  .card-row { grid-template-columns: 1fr; align-items: stretch; }
}
.pay-wait {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px;
  border-radius: 16px;
  background: #fff3c4;
  border: 1px solid #e6c56a;
  color: #5c4308;
}
.pay-wait strong { font-size: 1.02rem; line-height: 1.3; }
.pay-wait .pay-shop { margin: 0; font-weight: 800; color: #5c4308; }
.pay-wait .shop-items { margin: 0; }
.pay-wait .shop-items li { color: #5c4308; }
.pay-wait .pay-meta { margin: 0; font-weight: 700; }
.pay-photos {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
@media (min-width: 801px) {
  .pay-photos { grid-template-columns: repeat(4, 1fr); }
}
.pay-photos a, .pay-photos img { display: block; }
.pay-photos img {
  width: 100%;
  height: 120px;
  object-fit: cover;
  border-radius: 12px;
  background: #111;
}
.pay-wait .shop-pix {
  margin: 4px 0;
  grid-template-columns: 160px minmax(0, 1fr);
}
.pay-wait .shop-pix img { width: 160px; }
.pay-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}
@media (min-width: 801px) {
  .pay-actions { grid-template-columns: 1fr 1fr 1fr; }
}
.pay-actions .btn { width: 100%; min-height: 48px; justify-content: center; }
.js-save-guia { width: 100%; margin-top: 12px; }
.row-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.row-actions button, .row-actions .btn {
  min-height: 44px; padding: 0 12px; border: 0; border-radius: 10px;
  background: var(--sunken); font: inherit; cursor: pointer;
}
.row-actions .btn-primary,
.fold .row-actions .btn-primary {
  background: var(--lagoon) !important;
  color: var(--lagoon-fg) !important;
  font-weight: 800;
}
.ask #bookStep2 .row-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.ask #pedirBtn,
.ask #bookStep2 .row-actions .btn-primary,
.ask #bookStep2 .row-actions .btn-ghost {
  background: color-mix(in oklab, var(--lagoon-fg) 16%, transparent) !important;
  color: #ffffff !important;
  width: 100%;
  min-height: 52px;
  font-weight: 800;
  box-shadow: none;
}
.chat-layout { display: grid; gap: 12px; }
@media (min-width: 800px) { .chat-layout { grid-template-columns: 220px 1fr; min-height: 420px; } }
.thread-list { display: grid; align-content: start; gap: 6px; }
.thread {
  text-align: left; border: 0; border-radius: 12px; padding: 10px; background: var(--surface);
  box-shadow: var(--shadow); cursor: pointer; font: inherit;
}
.thread.on { outline: 2px solid var(--lagoon); }
.thread span { display: block; color: var(--muted); font-size: 0.85rem; }
.chat-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  flex-wrap: wrap;
}
.chat-toolbar p { margin: 0; font-weight: 700; flex: 1; }
.chat-tools { display: flex; gap: 8px; flex-shrink: 0; }
.chat-tools .btn { min-height: 40px; padding: 0 14px; }
.bubble.sys { background: transparent; box-shadow: none; text-align: center; color: var(--muted); font-size: 0.8rem; }
.bubble.sys b { display: none; }
.thread-view { display: grid; grid-template-rows: auto auto 1fr auto; background: var(--surface); border-radius: 16px; min-height: 360px; }
.msgs { overflow: auto; padding: 12px; display: grid; gap: 8px; max-height: 50dvh; }
.bubble { background: var(--bg); padding: 8px 10px; border-radius: 12px; color: var(--ink); }
.bubble.host { background: var(--lagoon-soft); }
.bubble img { max-width: 180px; border-radius: 8px; margin-top: 6px; }
.composer { display: grid; gap: 8px; padding: 10px; }
.composer input:not([type="file"]) {
  width: 100%; min-height: 44px; max-height: 44px;
  border: 1px solid var(--line); border-radius: 12px;
  padding: 0 12px; font: inherit; background: var(--bg); color: var(--ink);
  box-sizing: border-box;
}
.composer textarea {
  min-height: 52px; max-height: 96px; resize: none; overflow-y: auto;
  border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px;
  font: inherit; width: 100%; line-height: 1.45; background: var(--bg); color: var(--ink);
  box-sizing: border-box;
}
#hostChat textarea { max-height: 140px; }
.composer-tools { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.composer-tools .btn { margin-left: auto; }
.icon-btn {
  position: relative;
  width: 44px; height: 44px; border-radius: 12px; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--sunken); color: var(--ink); border: 0; padding: 0;
}
.icon-btn svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.icon-btn input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.composer input[type="file"] { display: none; }
.chat-fab { display: none; }
.chat-panel {
  position: fixed; z-index: 50;
  left: 12px; right: 12px;
  bottom: calc(76px + env(safe-area-inset-bottom));
  top: auto;
  width: auto;
  max-width: 420px;
  margin-inline: auto;
  max-height: min(72dvh, calc(100dvh - 120px));
  background: var(--surface); color: var(--ink); border-radius: 18px; box-shadow: var(--shadow);
  display: grid; grid-template-rows: auto 1fr auto auto auto;
  overflow: hidden;
}
.chat-panel header {
  display: flex; align-items: center; padding: 14px 16px 8px;
  border-bottom: 1px solid var(--line);
}
.chat-panel header strong {
  font-size: 0.95rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.chat-panel .msgs { min-height: 120px; }
.chat-sla {
  margin: 0 12px 8px;
  padding: 8px 12px;
  border-radius: 10px;
  background: var(--lagoon-soft);
  color: var(--lagoon-deep);
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.35;
}
.typing { margin: 0 12px 6px; font-size: 0.9rem; font-weight: 700; color: var(--lagoon); }
.typing::after { content: ""; animation: dots 1.2s steps(4, end) infinite; }
@keyframes dots {
  0% { content: ""; }
  25% { content: "."; }
  50% { content: ".."; }
  75% { content: "..."; }
}
.hint { margin: 0 12px 8px; font-size: 0.82rem; color: var(--muted); }
.chat-panel header button { border: 0; background: none; font: inherit; cursor: pointer; color: var(--muted); min-height: 44px; }
#hostChat { display: grid; }
.composer input[type="file"] { max-width: 48%; font-size: 0.75rem; }

.app-tabs {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  position: fixed;
  left: 0; right: 0; bottom: 0; z-index: 45;
  background: var(--surface); border-top: 1px solid var(--line);
  padding: 6px 4px calc(8px + env(safe-area-inset-bottom));
}
.app-tabs a, .app-tabs button {
  border: 0; background: none; font: inherit; font-weight: 650;
  color: var(--ink); text-decoration: none; min-height: 52px;
  display: flex; align-items: center; justify-content: center;
  flex-direction: column; gap: 2px; font-size: 0.62rem; letter-spacing: 0;
}
.app-tabs .ico { font-size: 1.1rem; line-height: 1; }
.app-tabs a.on, .app-tabs button.on { color: var(--lagoon); }
body:not(.shell) .app-tabs { display: none; }
body:not(.shell) { padding-bottom: 8px; }
.install-hint {
  position: sticky; bottom: 0; margin: 0; padding: 10px 16px;
  background: var(--lagoon); color: var(--lagoon-fg); text-align: center; font-size: 0.85rem;
}

.guest-grid { display: grid; gap: 12px; }
@media (min-width: 800px) { .guest-grid { grid-template-columns: 1fr 1fr; } }
.card-block.wide { max-width: none; }
@media (min-width: 800px) { .card-block.wide { grid-column: 1 / -1; } }
.safe { margin-top: 0.8rem; padding: 0.8rem; border-radius: 12px; background: var(--lagoon-soft); color: var(--ink); }
pre { white-space: pre-wrap; font-family: inherit; color: var(--muted); line-height: 1.5; }

@media (max-width: 800px) {
  header.nav { padding-top: env(safe-area-inset-top); }
}
.cal button.out { opacity: 0.42; }

.guest-sheet {
  background: #fff; color: var(--ink); border-radius: 16px; padding: 4px 12px 12px;
}
.guest-row {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 14px 0; border-bottom: 1px solid var(--line);
}
.guest-row strong { display: block; font-size: 1rem; }
.guest-row span { display: block; color: var(--muted); font-size: 0.82rem; letter-spacing: 0; text-transform: none; }
.guest-row span[data-i18n="infantsHint"],
.guest-row span[data-i18n="petsHint"] { color: var(--ink); font-weight: 650; }
#partyHint { color: var(--ink); font-weight: 700; font-size: 0.95rem; line-height: 1.4; margin: 6px 0 12px; }
.stepper { display: flex; align-items: center; gap: 10px; }
.stepper button {
  width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line);
  background: #fff; font-size: 1.2rem; cursor: pointer; color: var(--ink);
}
.stepper b { min-width: 1.2rem; text-align: center; }
.child-ages { display: grid; gap: 8px; padding: 8px 0 4px; }
.child-ages label { letter-spacing: 0; text-transform: none; font-size: 0.85rem; color: var(--muted); }
.child-ages select {
  width: 100%; min-height: 44px; border-radius: 10px; border: 1px solid var(--line);
  font: inherit; padding: 0 10px; background: var(--bg);
}

.actions-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  width: 100%;
  max-width: 440px;
}
.actions-grid .btn, .actions-grid button, .actions-grid a, .actions-grid label {
  width: 100%;
  margin: 0;
  justify-content: center;
  min-height: 48px;
  border-radius: 14px;
  border: 1.5px solid color-mix(in oklab, var(--lagoon) 28%, var(--line));
  background: #fff;
  color: var(--lagoon);
  font-weight: 800;
  box-shadow: 0 2px 0 color-mix(in oklab, var(--lagoon) 10%, transparent);
}
.actions-grid .btn:hover, .actions-grid button:hover {
  background: var(--lagoon);
  color: #fff;
  border-color: var(--lagoon);
}
.actions-grid .btn-primary {
  background: var(--lagoon) !important;
  color: #fff !important;
  border-color: var(--lagoon) !important;
}
.actions-grid .btn-warn {
  color: #9a2b12;
  border-color: #e8b4a8;
  background: #fff8f6;
}
.actions-grid .btn-warn:hover {
  background: #9a2b12;
  color: #fff;
  border-color: #9a2b12;
}
.action-note {
  grid-column: 1 / -1;
  margin: 0;
  padding: 10px 12px;
  border-radius: 12px;
  background: #e8f6ee;
  color: #0f6b38;
  font-size: 0.85rem;
  font-weight: 700;
  text-align: center;
}
.steps {
  list-style: none; padding: 0; margin: 0 0 2rem;
  display: grid; gap: 12px;
}
.steps li {
  background: var(--surface); border-radius: 16px; padding: 1.1rem 1.2rem;
  box-shadow: var(--shadow); display: grid; gap: 4px;
}
.steps b { color: var(--lagoon); font-size: 1.35rem; }
.steps strong { font-size: 1.05rem; }
.steps span { color: var(--muted); font-weight: 500; }
.review-stage { position: relative; min-height: 12rem; }
.review {
  display: none;
  background: var(--surface);
  padding: 1.35rem 1.3rem 1.2rem;
  border-radius: 18px;
  box-shadow: var(--shadow);
}
.review.on { display: block; animation: revIn 0.4s ease; }
@keyframes revIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}
.review .stars { margin: 0 0 0.55rem; color: var(--lagoon); letter-spacing: 0.12em; font-size: 0.95rem; }
.review blockquote {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(1.15rem, 2.4vw, 1.4rem);
  line-height: 1.4;
  font-weight: 500;
}
.review figcaption {
  display: block;
  margin-top: 0.9rem;
  color: var(--muted);
  font-size: 0.88rem;
  font-weight: 700;
}
.review-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 14px;
}
.rev-btn {
  width: 44px; height: 44px; border: 0; border-radius: 12px;
  background: var(--sunken); color: var(--ink); font: inherit; cursor: pointer;
}
.review-dots { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; }
.rev-dot {
  width: 8px; height: 8px; border: 0; border-radius: 99px; padding: 0;
  background: var(--line); cursor: pointer;
}
.rev-dot.on { background: var(--lagoon); width: 18px; }
.quotes figure {
  margin: 0; background: var(--surface); border-radius: 16px;
  padding: 1.2rem; box-shadow: var(--shadow);
}
.quotes blockquote {
  margin: 0; font-family: var(--display); font-size: 1.2rem; line-height: 1.35;
}
.quotes figcaption { margin-top: 0.8rem; color: var(--muted); font-weight: 700; font-size: 0.88rem; }
@media (min-width: 801px) {
  .steps, .quotes { grid-template-columns: 1fr 1fr 1fr; }
}
.album-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin-top: 1.2rem;
}
.album-grid figure { margin: 0; }
.album-grid img {
  width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 12px; cursor: zoom-in;
}
.album-grid figcaption {
  font-size: 0.78rem; font-weight: 600; color: var(--muted); padding: 6px 2px 0;
}
.album-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 0.2rem;
}
.album-head h1 { margin: 0; }
.album-head .lead { margin: 0.3rem 0 0; }
.album-head .btn { flex: 0 0 auto; }
.album-back { display: flex; justify-content: flex-end; margin: 0 0 0.7rem; }
.album-back-end { margin: 1rem 0 0.2rem; }
@media (min-width: 801px) {
  .album-grid { grid-template-columns: repeat(4, 1fr); gap: 12px; }
}
.thread em, .mini-close {
  display: inline-block; margin-top: 6px; font-size: 0.75rem; font-style: normal;
  color: var(--lagoon); font-weight: 700;
}
.mini-close { cursor: pointer; }

.sair-link {
  border: 0; background: none; color: var(--muted);
  font: inherit; font-size: 0.9rem; min-height: 44px; cursor: pointer; padding: 0 4px;
}

body.shell { background: var(--bg); }
body.shell footer {
  display: block;
  padding: 1.1rem 16px calc(88px + env(safe-area-inset-bottom));
}
body.shell .kicker {
  color: var(--lagoon-deep);
  letter-spacing: 0.1em;
}
body.shell .lead { color: var(--muted); }
body.shell .app-frame {
  width: 100%;
  min-height: 100dvh;
  background: var(--bg);
  overflow: visible;
}
body.shell .nav-bar,
body.shell .admin-screen {
  width: 100%;
  box-sizing: border-box;
  padding-left: max(28px, env(safe-area-inset-left));
  padding-right: max(28px, env(safe-area-inset-right));
}
body.shell .nav-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 96px;
  gap: 8px;
}
body.shell .admin-screen {
  padding-top: 12px;
  padding-bottom: 24px;
}
body.shell .card-block { max-width: none; }
body.shell .fields input,
body.shell .fields textarea,
body.shell .fields select,
body.shell .login-form input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

@media (max-width: 800px) {
  body.shell header.nav { padding-top: env(safe-area-inset-top); }
  body.shell .admin-screen { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
  body.shell .app-tabs {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    position: fixed; left: 0; right: 0; bottom: 0; width: 100%;
    z-index: 45; background: var(--surface);
    border-top: 1px solid var(--line);
    padding: 6px 8px calc(10px + env(safe-area-inset-bottom));
    transform: none;
  }
  body.shell .admin-tabs {
    grid-template-columns: repeat(3, 1fr);
    gap: 4px 6px;
    padding: 8px 10px calc(10px + env(safe-area-inset-bottom));
  }
  body.shell .app-tabs a, body.shell .app-tabs button, body.shell .admin-tabs .tab {
    border: 0; background: color-mix(in oklab, var(--sunken) 80%, transparent); font: inherit; font-weight: 750;
    color: var(--ink); text-decoration: none; min-height: 58px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 14px; padding: 6px 4px; flex-direction: column; gap: 3px; font-size: 0.72rem;
  }
  body.shell .admin-tabs .tab.on { background: var(--lagoon); color: var(--lagoon-fg); }
  body.shell .admin-tabs .tab { position: relative; }
  body.shell .tab-ico { width: 22px; height: 22px; fill: currentColor; }
  body.shell .tab b {
    position: absolute; top: 4px; right: 8px; margin: 0; transform: none;
    min-width: 1rem; font-size: 0.65rem;
  }
  body.shell .fields,
  body.shell .fields.stack,
  body.shell .chat-layout,
  body.shell .card-row,
  body.shell .guest-grid { grid-template-columns: 1fr !important; }
  body.shell .photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  body.shell .cal.prices button { min-height: 58px; }
  .thread-view { min-height: 280px; }
  #tab-chat .msgs { max-height: 36dvh; }
}

@media (min-width: 801px) {
  body.shell .app-frame { display: flex; flex-direction: column; }
  body.shell header.nav { order: 0; }
  body.shell .admin-tabs { order: 1; }
  body.shell main { order: 2; }
  body.shell footer { order: 3; padding-bottom: 1.2rem; }
  body.shell .nav-bar,
  body.shell .admin-screen,
  body.shell .app-tabs.admin-tabs {
    width: min(960px, calc(100% - 48px));
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
  }
  body.shell .card-block { max-width: 28rem; }
  body.shell #panelBox { max-width: none; }
  body.shell #panelBox .card-block,
  body.shell .card-block.wide { max-width: none; }
  body.shell .fields { grid-template-columns: repeat(3, 1fr) !important; }
  body.shell .fields.stack { grid-template-columns: 1fr !important; }
  body.shell .chat-layout { grid-template-columns: 240px 1fr !important; min-height: 480px; }
  body.shell .guest-grid { grid-template-columns: 1fr 1fr !important; }
  body.shell .photo-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  body.shell .app-tabs.admin-tabs {
    display: grid !important;
    grid-template-columns: repeat(6, 1fr);
    position: static; transform: none; left: auto; bottom: auto;
    width: min(960px, calc(100% - 48px));
    gap: 6px;
    background: var(--surface);
    border: 0;
    border-radius: 18px;
    padding: 8px;
    box-shadow: var(--shadow);
    margin-top: 10px;
  }
  body.shell .admin-tabs .tab {
    background: transparent; border-radius: 14px; min-height: 52px;
    padding: 8px 6px; flex-direction: column; gap: 4px; font-size: 0.8rem;
    color: var(--ink); font-weight: 750; border: 0;
    display: flex; align-items: center; justify-content: center;
  }
  body.shell .admin-tabs .tab.on { background: var(--lagoon); color: var(--lagoon-fg); }
  body.shell .tab-ico { width: 20px; height: 20px; fill: currentColor; }
  body:not(.shell) .install-hint { display: none !important; }
}
@media (display-mode: standalone) {
  header.nav { padding-top: env(safe-area-inset-top); }
  .install-hint { display: none !important; }
}
.rel-thumb {
  display: block;
  width: 96px;
  height: 72px;
  object-fit: cover;
  border-radius: 10px;
  margin-top: 8px;
}
.rel-row { align-items: start; }
#finMonthWrap { display: flex; flex-direction: column; gap: 6px; margin-bottom: 28px; }
#finSum > .kicker { margin-top: 4px; }
.fin-sum {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 12px 0 16px;
}
.fin-sum div,
.fin-sum button.fin-pick {
  background: var(--surface);
  border-radius: 14px;
  padding: 12px 10px;
  box-shadow: var(--shadow);
}
.fin-sum button.fin-pick {
  border: 1px solid transparent;
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
  width: 100%;
}
.fin-sum button.fin-pick.on {
  border-color: var(--lagoon, #0d5c63);
  background: #f4faf8;
}
.fin-sum span { display: block; color: var(--muted); font-size: 0.78rem; font-weight: 700; }
.fin-sum b { display: block; margin-top: 4px; font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.fin-kind { display: flex; gap: 16px; align-items: center; }
.fin-kind label { display: flex; gap: 6px; align-items: center; font-weight: 700; }
.fin-form { margin: 0 0 16px; }
.fin-sum-final b { font-size: 1.18rem; }
.fin-sum-final { margin-top: 4px; }
.fin-row > div:first-child { min-width: 0; }
.fin-row strong { display: block; }
.fin-row .fin-note {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 8px 0 0;
  white-space: normal;
}
.fin-row .fin-note span { display: block; line-height: 1.35; }
.fin-stay { white-space: nowrap; }
.fin-date {
  margin: 10px 0 0;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.35;
  color: var(--ink, #3a2f24);
}
.fin-row .row-actions {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  margin-top: 8px;
}
.fin-row .row-actions .btn { margin-left: 0; }
.fin-btns { display: flex; gap: 8px; margin-left: auto; flex: 0 0 auto; }
.fin-edit {
  display: grid;
  gap: 8px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
.fin-edit[hidden] { display: none; }
.fin-edit label { display: grid; gap: 4px; font-size: 0.85rem; font-weight: 650; }
.fin-edit input,
.fin-edit select,
.fin-edit textarea {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 8px 12px;
  font: inherit;
  font-weight: 500;
  background: #fff;
  box-sizing: border-box;
}
.fin-edit textarea { min-height: 72px; resize: vertical; }
.fin-edit-actions { display: flex; gap: 8px; }
.fin-edit-actions .btn { flex: 1; margin: 0; }
.fin-period { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 4px 0 10px; }
.fin-period label { display: grid; gap: 4px; font-size: 0.85rem; font-weight: 650; }
.fin-period input {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 0 12px;
  font: inherit;
  background: #fff;
  box-sizing: border-box;
}
.fin-period-picks { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.fin-period-picks .btn { width: auto; flex: 1 1 7rem; min-height: 40px; }
.fin-rep { margin-top: 16px; }
.fin-rep h3 { margin: 0 0 4px; }
.fin-rep-cat { margin-top: 18px; padding-top: 10px; border-top: 1px solid var(--line); }
.fin-rep-cat header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
.fin-rep-cat header b { white-space: normal; }
.fin-rep-cat ul { list-style: none; margin: 8px 0 0; padding: 0; }
.fin-rep-cat li {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}
.fin-rep-date { font-weight: 700; }
.fin-rep-cat li .fin-note {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
  width: 100%;
}
.fin-rep-cat li .fin-note span {
  display: block;
  line-height: 1.35;
  white-space: normal;
}
.fin-rep-cat li > b {
  margin-top: 6px;
  white-space: nowrap;
}
@media print {
  body.printing-fin * { visibility: hidden; }
  body.printing-fin #finReport,
  body.printing-fin #finReport * { visibility: visible; }
  body.printing-fin #finReport {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    background: #fff;
    color: #1a1a1a;
    padding: 16px;
  }
}
@media (max-width: 700px) {
  .fin-sum {
    grid-template-columns: 1fr 1fr;
  }
  .fin-sum > :last-child {
    grid-column: 1 / -1;
  }
  .fin-sum b,
  .fin-sum-final b {
    font-size: 1.08rem;
  }
  #tab-caixa label:has(#finMonth) {
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: 6px;
  }
  #finMonth {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
}
@media (min-width: 801px) {
  body.shell #tab-caixa .fin-form { max-width: 420px; }
}
.sim-quote,
.ask .sim-quote {
  display: grid;
  gap: 6px;
  margin: 0 0 14px;
  padding: 14px 16px;
  border-radius: 16px;
  background: #ffffff;
  border: 1px solid #9ec9c0;
  color: #0d5c63;
  font-weight: 700;
}
#simBanner[hidden] {
  display: none !important;
}
.ask .sim-quote,
.ask .sim-quote strong,
.ask .sim-quote span,
.ask .sim-quote b {
  color: #0d5c63;
}
.sim-quote strong,
.ask .sim-quote strong { font-size: 1.05rem; }
.sim-quote span,
.ask .sim-quote span { display: block; font-weight: 700; }
.sim-quote .sim-pay { font-size: 1.08rem; }
.sim-quote .sim-discount { font-weight: 600; }
.sim-quote em,
.ask .sim-quote em { font-style: normal; font-weight: 800; color: #9a2b12; }
.sim-quote .sim-discount,
.ask .sim-quote .sim-discount { color: #3d6b4f; }
.long-stay-promo,
.ask .long-stay-promo {
  display: block;
  margin: 0 0 14px;
  padding: 10px 16px;
  border-radius: 14px;
  background: #eaf3ee;
  color: #3d6b4f;
  font-weight: 700;
  font-size: 0.88rem;
  line-height: 1.4;
}
.sim-busy,
.ask .sim-busy { border-color: #e6c56a; background: #fff8e4; }
.guest-head h1 { font-size: 1.8rem; margin: 4px 0 8px; }
.guest-head .muted { color: var(--muted); margin: 0; }
.review-card {
  display: grid;
  gap: 12px;
}
.review-card .review-photo {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 16px;
  background: var(--sunken);
}
.review-card .review-title {
  margin: 4px 0 0;
  font-size: 1.45rem;
  line-height: 1.2;
}
.review-card .review-text {
  margin: 0;
}
.review-card .review-btn {
  width: 100%;
  margin-top: 4px;
}
body.review-only footer {
  order: 3;
  padding: 0.9rem 16px 1.3rem;
}
body.review-only main.review-page {
  order: 2;
  flex: 1;
  max-width: 520px;
  width: 100%;
  margin: 0 auto;
  padding: 12px 16px 28px;
}
body.review-only header.nav { order: 0; }
.review-page .review-card {
  padding: 16px;
}
.guest-card a,
.guest-link {
  display: inline;
  color: var(--lagoon);
  font-weight: 800;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.guest-card a.btn,
.guest-card .btn,
.guest-body .btn-primary,
.guest-page .btn-primary,
.guest-screen .btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #ffffff !important;
  background: var(--lagoon);
  font-weight: 800;
  overflow-wrap: normal;
  word-break: normal;
}
.guest-card a.btn-ghost,
.guest-card .btn-ghost,
.guest-body .btn-ghost {
  color: var(--ink) !important;
  background: var(--sunken);
}
.guest-body .kicker,
.guest-card .kicker {
  font-size: 0.92rem;
  letter-spacing: 0.12em;
}
.guest-body .nav-casa {
  font-size: 1.12rem !important;
  padding: 10px 14px !important;
}
.guest-body .lang-switch button {
  font-size: 0.88rem;
  padding: 10px 12px;
}
.staff-month { display: flex; flex-direction: column; gap: 12px; margin: 18px 0 28px; }
.staff-month .kicker { margin-bottom: 2px; }
.staff-menu {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 12px;
}
header.staff-top + .admin-screen {
  padding-top: 0;
}
.staff-menu .btn {
  flex: 1 1 30%;
  font-weight: 800;
}
.staff-tabs {
  display: flex;
  flex-wrap: nowrap;
  gap: 6px;
  margin: 12px 0 8px;
}
.staff-tabs .btn {
  flex: 1 0 auto;
  padding: 8px 6px;
  font-size: clamp(0.62rem, 2.7vw, 0.85rem);
  line-height: 1.15;
  white-space: nowrap;
  text-align: center;
}
.staff-title {
  font-size: clamp(1.15rem, 5.4vw, 2.2rem);
  text-transform: uppercase;
  letter-spacing: 0.01em;
  margin: 4px 0 12px;
  white-space: nowrap;
  text-wrap: nowrap;
}
.staff-month-title {
  font-size: clamp(1.15rem, 4vw, 1.45rem);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--lagoon, #0d5c63);
  border-bottom: 3px solid var(--lagoon, #0d5c63);
  padding-bottom: 6px;
  margin: 8px 0 4px;
}
.staff-stay {
  border: 2px solid var(--lagoon, #0d5c63) !important;
  overflow-wrap: normal;
  word-break: normal;
  padding: 16px 14px 18px;
}
.staff-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}
.staff-head .kicker { margin: 0; }
.staff-stay h2 {
  font-size: 1.42rem;
  line-height: 1.25;
  margin: 2px 0 12px;
  overflow-wrap: anywhere;
  word-break: keep-all;
}
.staff-grid { display: grid; gap: 8px; margin: 0 0 8px; }
.staff-row {
  display: grid;
  grid-template-columns: 5.4rem 1fr;
  grid-template-rows: auto auto;
  column-gap: 10px;
  row-gap: 1px;
  align-items: center;
  padding: 10px 12px;
  background: #f4f1e8;
  border-radius: 14px;
  border-left: 4px solid var(--lagoon, #0d5c63);
}
.staff-lab {
  grid-row: 1 / span 2;
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 800;
  color: var(--lagoon, #0d5c63);
  line-height: 1.2;
}
.staff-dow {
  font-size: 0.95rem;
  color: #5c574e;
  font-weight: 600;
}
.staff-date {
  font-size: 1.18rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  color: #123;
}
.guest-card a.staff-contact-link {
  display: grid;
  color: inherit;
  font-weight: inherit;
  text-decoration: none;
}
.guest-card a.staff-contact-link .staff-date {
  color: var(--lagoon, #0d5c63);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.staff-row.staff-fit {
  padding: 8px 10px;
}
.staff-row.staff-fit .staff-dow,
.staff-row.staff-fit .staff-date {
  white-space: normal;
  overflow-wrap: anywhere;
  font-size: 0.98rem;
  line-height: 1.25;
}
.staff-wa {
  display: flex !important;
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 8px 0 0;
  min-height: 44px;
  padding: 10px 12px;
  font-size: 0.95rem;
  text-align: center;
  white-space: normal;
}
.staff-when { margin: 0 0 8px; font-size: 1.12rem; line-height: 1.35; color: #123; }
.staff-when strong { font-weight: 700; }
.staff-contact { margin: 10px 0 8px; font-size: 1.12rem; }
.staff-tools { margin-top: 12px; display: flex; flex-direction: column; gap: 10px; }
.staff-files { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.staff-files img, .staff-files video {
  width: 100%;
  height: 88px;
  object-fit: cover;
  border-radius: 10px;
  background: #123;
}
.staff-file { position: relative; overflow: hidden; }
.staff-file input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.wa-model textarea#g-waStaff {
  width: 100%;
  min-height: 220px;
  font-size: 1rem;
  line-height: 1.45;
  white-space: pre-wrap;
}
.shop-title {
  font-size: clamp(1.45rem, 5.5vw, 2.1rem);
  line-height: 1.15;
  margin: 0 0 18px;
  padding-top: 0;
  text-align: center;
  word-break: break-word;
}
#catOpen { width: 100%; margin: 0 0 8px; }
#catBox { margin: 0 0 8px; }
.shop-buy-kicker {
  display: block;
  margin: 36px 0 14px;
  padding-top: 8px;
}
.placa-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 16px 16px 10px;
}
.placa-big {
  width: min(480px, 88vw);
  height: auto;
  max-height: 300px;
  object-fit: contain;
  display: block;
}
header.staff-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 4px 16px 0;
}
header.staff-top .placa-wrap.placa-small {
  width: auto;
  padding: 0;
  justify-content: flex-start;
}
header.staff-top .staff-hello {
  margin: 0;
  text-align: right;
  font-size: 0.92rem;
  letter-spacing: 0.08em;
}
.placa-wrap.placa-small .placa-big {
  width: min(148px, 36vw);
  max-height: 88px;
}
body.locked-app .nav.staff-head {
  position: sticky;
  top: 0;
  z-index: 20;
  background: var(--bg);
  border-bottom: 1px solid color-mix(in oklab, var(--line) 70%, transparent);
}
body.locked-app footer {
  text-align: center;
  padding: 16px 12px 28px;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 700;
}
.shop-pix {
  display: grid;
  grid-template-columns: minmax(96px, 140px) minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  margin: 10px 0;
  padding: 10px;
  background: #fff;
  border-radius: 12px;
  border: 1px solid var(--line);
  overflow: hidden;
  min-width: 0;
}
.shop-pix > div {
  min-width: 0;
  overflow: hidden;
}
.shop-pix img { width: 140px; max-width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; background: #fff; }
.shop-pix .pix-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.shop-pix .pix-actions .btn { width: auto; min-height: 40px; padding: 0 12px; }
.shop-pix strong, .shop-pix b {
  display: block;
  font-size: 1.02rem;
  overflow-wrap: anywhere;
  word-break: break-word;
  max-width: 100%;
}
#catList.shop-items li { align-items: center; }
#catList .btn { min-height: 36px; padding: 4px 10px; }
.guest-body .guest-screen { padding-top: 4px; }
.shop-items {
  list-style: none;
  margin: 10px 0 8px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.shop-items li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  font-variant-numeric: tabular-nums;
  border-bottom: 1px dotted var(--line);
  padding-bottom: 4px;
  font-size: 1.02rem;
}
.shop-items b { white-space: nowrap; font-weight: 700; }
.hist-side { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.hist-del { min-height: 32px; padding: 2px 10px; font-size: 0.85rem; }
.fax-list .fax-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "who value" "when value";
  align-items: center;
  column-gap: 10px;
  row-gap: 2px;
}
.fax-who { grid-area: who; min-width: 0; overflow-wrap: anywhere; }
.fax-when {
  grid-area: when;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  font-size: 0.95rem;
}
.fax-line b { grid-area: value; align-self: center; }
.fax-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}
.fax-actions .fax-pay-btn { margin-top: 0; }
.fax-shot-btn {
  width: auto;
  min-height: 36px;
  padding: 0 12px;
  font-size: 0.8rem;
}
.fax-pay-btn {
  width: auto;
  min-height: 36px;
  margin-top: 10px;
  padding: 0 14px;
  border: 1.5px solid #c9a227;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 800;
  cursor: pointer;
}
.fax-pay-box {
  margin-top: 10px;
  text-align: center;
}
.fax-pay-box img { margin: 0 auto 8px; border-radius: 12px; }
.fax-done-btn {
  width: auto;
  min-height: 34px;
  margin-top: 8px;
  padding: 0 12px;
  font-size: 0.8rem;
}
.fax-done { margin: 8px 0 0; font-size: 0.9rem; }
.shop-total { margin-top: 8px; font-variant-numeric: tabular-nums; font-size: 1.08rem; }
.shop-line {
  display: grid;
  grid-template-columns: minmax(8rem, 1.4fr) 4.6rem 7rem 7.4rem 36px;
  gap: 8px 10px;
  align-items: end;
  background: #fff;
  border: 1px solid var(--line, #e4d7c4);
  border-radius: 16px;
  padding: 12px 14px;
  margin: 0 0 10px;
}
.shop-line .shop-prod { min-width: 0; }
.shop-line .shop-qty,
.shop-line .shop-unit,
.shop-line .shop-sum { min-width: 0; }
.shop-line .shop-x { justify-self: end; align-self: end; }
.shop-line .shop-prod p { margin: 0; }
.shop-x {
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  margin: 0 0 2px;
  border: 0;
  background: transparent;
  color: #c0392b;
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  padding: 0;
}
.shop-x:hover { color: #922b21; }
.shop-line input[readonly] { background: #f3eee6; }
.shop-line-btns { display: flex; flex-wrap: wrap; gap: 6px; }
.shop-confirm {
  margin-top: 10px;
  padding: 12px;
  border: 2px solid var(--lagoon, #0d5c63);
  border-radius: 14px;
  background: var(--surface);
}
.shop-confirm ul { margin: 8px 0; padding-left: 1.2rem; }
.pay-highlight { margin: 10px 0; }
.comp-box { margin: 10px 0 4px; }
.comp-box .pay-highlight { display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0; }
.comp-shot { display: grid; gap: 6px; justify-items: start; width: 100%; }
.comp-shot .pdf-view canvas {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
  background: #fff;
  margin-top: 8px;
}
.comp-shot .pay-shot { width: 120px; height: 120px; object-fit: cover; border-radius: 12px; cursor: zoom-in; }
.comp-box .staff-file { display: inline-flex; margin-top: 6px; }
.pay-shot {
  width: 100%;
  max-height: 280px;
  object-fit: contain;
  border-radius: 12px;
  background: #111;
  display: block;
  cursor: zoom-in;
}
.shot-zoom {
  position: fixed;
  inset: 0;
  z-index: 90;
  border: 0;
  padding: 12px;
  background: rgba(0, 0, 0, 0.92);
  display: flex;
  align-items: center;
  justify-content: center;
}
.shot-zoom img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  background: #111;
}
.card-row .fields { grid-column: 1 / -1; width: 100%; }
.shop-line input { width: 100%; min-width: 0; box-sizing: border-box; }
.audio-box {
  display: grid;
  gap: 8px;
  margin: 4px 0 8px;
}
.audio-box .staff-file { justify-self: stretch; text-align: center; }
.shop-audio {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 8px 0;
}
.shop-pedido-card {
  background: #fff3c4;
  border: 2px solid var(--lagoon, #0d5c63);
  color: #5c4308;
}
.shop-pedido-card .kicker { color: var(--lagoon, #0d5c63); }
.shop-pedido-card h2 { color: #5c4308; }
.shop-pedido-card .shop-when { color: #7a5c20; }
.shop-pedido-card h2 {
  font-size: 1.28rem;
  font-weight: 600;
  margin: 2px 0 4px;
}
.shop-pedido-card .shop-when {
  margin: 0 0 12px;
  font-weight: 400;
  color: var(--muted);
  font-size: 0.92rem;
}
.shop-order {
  display: block;
  background: #fffbeb;
  border: 1px solid #e6c56a;
  border-radius: 16px;
  padding: 12px 14px 14px;
  margin: 0 0 10px;
}
.caixa-launch { margin-bottom: 16px; }
.caixa-split {
  height: 1px;
  margin: 16px 0 14px;
  background: rgba(58, 47, 36, 0.12);
}
#admOrder select {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
#admOrder .shop-order {
  background: #fffbeb;
  border: 1px solid #e6c56a;
  padding: 10px 10px 12px;
}
#admOrder .adm-name { margin: 0 0 8px; }
#admOrder .shop-fields {
  grid-template-columns: 4.8rem minmax(0, 1fr) 36px;
  align-items: end;
  gap: 8px;
}
#admOrder .shop-x { align-self: end; margin-bottom: 4px; }
.shop-order .adm-name {
  flex: 1;
  min-width: 0;
  width: 100%;
}
.shop-order .shop-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}
.shop-order .shop-prod {
  margin: 0;
  min-width: 0;
  font-size: 1rem;
  font-weight: 500;
  color: var(--ink, #3a2f24);
}
.shop-order .shop-x {
  margin: 0;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  font-size: 1.45rem;
  font-weight: 400;
}
.shop-order .shop-fields {
  display: grid;
  grid-template-columns: 4.8rem minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
}
.shop-order .shop-fields label {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--muted);
}
.shop-order .shop-fields input {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  border-radius: 12px;
  border: 1px solid #e4d7c4;
  padding: 10px 12px;
  background: #fff;
  font-weight: 400;
  font-size: 1rem;
}
.shop-order .shop-fields input[readonly] {
  background: #f7f1e8;
  color: var(--ink, #3a2f24);
}
@media (max-width: 800px) {
  .shop-line {
    grid-template-columns: 1fr 1fr 1fr 36px;
  }
  .shop-line .shop-prod { grid-column: 1 / -1; }
}
@media (min-width: 801px) {
  .shop-line:not(.shop-order) {
    grid-template-columns: minmax(10rem, 1.6fr) 4.8rem 7.2rem 7.6rem 36px;
  }
}
.guest-card.vault {
  background: linear-gradient(165deg, #0a474c 0%, #0d5c63 70%, #14686f 100%);
  color: #f4f8f6;
  padding: 22px 20px 26px;
  border-radius: 18px;
}
body.guest-body .guest-card {
  box-sizing: border-box;
  padding: 18px 18px 20px;
  margin: 0 0 16px;
}
body.guest-body .guest-head {
  margin: 8px 2px 18px;
}
body.guest-body #hStay {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0;
  line-height: 1.45;
}
body.guest-body #hStay .stay-bit { white-space: nowrap; }
.guest-card.vault .kicker { color: #d7e6e4; margin: 0 0 4px; }
.digi-clock { text-align: center; padding: 14px 8px 6px; }
.digi-clock time {
  display: block;
  font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  font-variant-numeric: tabular-nums;
  font-size: clamp(2.4rem, 11vw, 3.6rem);
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1;
}
.digi-clock small {
  display: block;
  margin-top: 8px;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.8;
}
.vault-count { text-align: center; margin: 8px 0 0; font-weight: 700; }
.safe-box { margin-top: 16px; text-align: center; padding: 0 6px; }
.safe-box p { margin: 10px 0 0; line-height: 1.5; }
.safe-code {
  font-family: ui-monospace, Menlo, Consolas, monospace;
  font-variant-numeric: tabular-nums;
  font-size: 2rem;
  letter-spacing: 0.28em;
  background: rgba(0,0,0,0.28);
  border-radius: 12px;
  padding: 14px 16px;
  margin: 12px 0 6px;
}
.pay-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
  font-weight: 650;
}
.pay-row span { color: var(--muted); font-weight: 650; }
.pay-row b { text-align: right; }
.guide-copy p { margin: 0 0 8px; color: var(--ink); }
.guide-video {
  display: block;
  width: 100%;
  max-height: 70vh;
  border-radius: 14px;
  background: #111;
  margin: 10px 0 0;
}
.guest-body .admin-screen { max-width: 720px; }
html { scroll-padding-top: 140px; }
body.guest-body .nav-bar {
  flex-wrap: wrap;
  gap: 8px 10px;
  min-height: 96px;
}
body.guest-body .brand-name {
  display: inline;
  font-size: 1rem;
}
body.guest-body .guest-menu {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  width: 100%;
  order: 3;
  padding: 2px 0 8px;
}
body.guest-body .guest-menu::-webkit-scrollbar { display: none; }
body.guest-body .guest-menu[hidden] { display: none !important; }
body.guest-body .guest-menu a {
  flex: 0 0 auto;
  white-space: nowrap;
  text-decoration: none;
  font-size: 0.78rem;
  font-weight: 750;
  color: var(--lagoon-deep);
  background: var(--sunken);
  border-radius: 999px;
  padding: 8px 12px;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
}
body.guest-body .guest-menu a:hover,
body.guest-body .guest-menu a:focus {
  background: var(--lagoon);
  color: #fff;
}
body.guest-body .lang-switch { margin-left: auto; }
@media (min-width: 901px) {
  body.guest-body .nav-bar { flex-wrap: nowrap; }
  body.guest-body .guest-menu {
    order: 0;
    flex: 1;
    width: auto;
    padding: 0;
  }
  body.guest-body .guest-screen { max-width: 760px; }
}
body.guest-body .nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 96px;
  gap: 8px;
  width: min(1120px, calc(100% - 2rem));
  margin-inline: auto;
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}
body.guest-body .nav-links {
  display: flex;
  align-items: center;
  flex: 1;
  justify-content: flex-end;
  gap: 2px;
  min-width: 0;
}
body.guest-body .nav-links a {
  text-decoration: none;
  padding: 8px 10px;
  border-radius: 10px;
  color: var(--ink);
  font-size: 0.88rem;
  font-weight: 700;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}
body.guest-body .nav-casa { margin-left: 0; }
body.guest-body .lang-switch { margin-left: 2px; }
body.guest-body .app-tabs { display: none !important; }
body.guest-body .admin-screen,
body.guest-body.shell .admin-screen {
  padding-bottom: 24px !important;
}
@media (max-width: 800px) {
  body.guest-body .app-tabs { display: none !important; }
}
@media (min-width: 801px) {
  body.guest-body .app-tabs { display: none !important; }
}
@media (min-width: 801px) {
  body.shell .guest-screen { max-width: 760px; margin-inline: auto; }
}
.guest-map {
  width: 100%;
  height: 220px;
  border: 0;
  border-radius: 16px;
  margin: 10px 0 12px;
  background: var(--sunken);
}
.map-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.map-btns .btn { flex: 1; text-align: center; text-decoration: none; }
.wa-link { color: var(--lagoon); font-weight: 800; text-decoration: none; text-align: right; }
.guest-card.vault .kicker { letter-spacing: 0.16em; text-transform: uppercase; font-size: 0.78rem; }
.locatario,
.ask p.locatario,
.ask #locatarioPreview {
  background: #ffffff;
  color: #111111;
  border: 1px solid rgba(18, 16, 14, 0.16);
  border-radius: 12px;
  padding: 12px;
  font-size: 0.95rem;
  line-height: 1.5;
  font-weight: 700;
}
#gPrev:disabled, #gNext:disabled, #prev:disabled, #next:disabled { opacity: 0.35; }
#bookStep2 .row-actions { margin-top: 12px; }
.blink-alert {
  background: #fff3c4;
  color: #5c4308;
  border: 1px solid #e6c56a;
  padding: 12px 14px;
  border-radius: 12px;
  font-weight: 800;
  animation: pulseAlert 1.15s ease-in-out infinite;
}
@keyframes pulseAlert {
  0%, 100% { background: #fff3c4; box-shadow: 0 0 0 0 rgba(180, 120, 0, 0); }
  50% { background: #ffd56a; box-shadow: 0 0 0 3px rgba(180, 120, 0, 0.35); }
}
.blink-alert .alert-open {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 800;
  text-align: left;
  text-decoration: underline;
  cursor: pointer;
}
.blink-alert .alert-loud {
  display: block;
  font-size: 1.2rem;
  line-height: 1.35;
  font-weight: 800;
  margin: 0 0 8px;
}
@media (prefers-reduced-motion: reduce) {
  .blink-alert, .stay-soon { animation: none; }
}
.visit-box {
  background: var(--surface);
  border-radius: 16px;
  padding: 14px 14px 12px;
  margin: 0 0 16px;
  box-shadow: var(--shadow);
}
.visit-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin: 8px 0 6px;
}
.visit-grid div {
  background: var(--sunken);
  border-radius: 12px;
  padding: 10px 8px;
  text-align: center;
}
.visit-grid span { display: block; font-size: 0.72rem; font-weight: 800; color: var(--muted); letter-spacing: 0.06em; text-transform: uppercase; }
.visit-grid b { display: block; font-size: 1.35rem; color: var(--lagoon-deep); margin-top: 2px; }
.visit-grid small { display: block; font-size: 0.72rem; color: var(--muted); font-weight: 650; }

input[inputmode="decimal"],
input.money {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.leave-videos {
  border: 2px solid var(--lagoon, #0d5c63);
}
.leave-videos h2 {
  font-size: 1.35rem;
  line-height: 1.25;
  margin: 4px 0 10px;
}
.leave-lead { white-space: pre-line; }
.leave-plain {
  margin: 0 0 14px;
  color: #123;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.45;
}
.leave-list {
  list-style: none;
  padding: 0;
  margin: 12px 0 16px;
  display: grid;
  gap: 8px;
}
.leave-list li {
  padding: 12px 14px;
  background: #f4f1e8;
  border-radius: 14px;
  border-left: 4px solid var(--lagoon, #0d5c63);
}
.leave-list b {
  display: block;
  color: var(--lagoon, #0d5c63);
  font-size: 1.02rem;
  margin-bottom: 4px;
}
.leave-list p { margin: 0; color: #123; }
.leave-up { margin-top: 10px; display: grid; gap: 8px; }
.leave-prev { width: 100%; max-height: 220px; border-radius: 12px; background: #123; }
.leave-film { width: 100%; cursor: pointer; position: relative; }
.leave-film input { position: absolute; width: 0; height: 0; opacity: 0; }
.leave-ok { margin: 0; color: var(--lagoon-deep); font-weight: 700; }

.stay-now,
.stay-soon,
.stay-done {
  margin: 0;
  padding: 6px 10px;
  border-radius: 999px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: center;
  font-size: 0.68rem;
  white-space: nowrap;
  line-height: 1.2;
}
.stay-now {
  background: #1c7c45;
  border: 1.5px solid #146336;
  color: #fff;
}
.stay-soon {
  background: #fff3c4;
  border: 1.5px solid #c9a227;
  color: #7a5c08;
}
.stay-soon.blink {
  background: #c0392b;
  border-color: #8e241c;
  color: #fff;
  animation: pulseStay 1.15s ease-in-out infinite;
}
@keyframes pulseStay {
  0%, 100% { background: #c0392b; box-shadow: 0 0 0 0 rgba(192, 57, 43, 0); }
  50% { background: #e74c3c; box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.35); }
}
.stay-done {
  background: #eceae4;
  border: 1.5px solid #b7b1a6;
  color: #5c574e;
}
.shop-read {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
  font-size: 0.75rem;
  font-weight: 500;
  color: #7a5c20;
}
.shop-read b {
  display: block;
  margin-top: 3px;
  font-size: 1rem;
  font-weight: 500;
  color: #5c4308;
  font-variant-numeric: tabular-nums;
}
.shop-note-total {
  margin: 10px 0 4px;
  font-size: 1.12rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--lagoon, #0d5c63);
}
@media (max-width: 560px) {
  .shop-read { grid-template-columns: 1fr 1fr; }
}
.shop-pedido-card.is-ok {
  background: #e7f4ea;
  border-color: var(--lagoon, #0d5c63);
}
.shop-pedido-card.is-no {
  background: #f3eee6;
  border-color: #c9bba8;
  color: #6b5c4a;
}

.wa-pick h3 { margin: 0 0 6px; }
.wa-pick .btn { width: 100%; margin-top: 8px; }
.hist-open-lead { margin-top: 0; }
.hist-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.hist-filters .btn.on { background: var(--lagoon); color: var(--lagoon-fg); border-color: var(--lagoon); }
.hist-h { font-size: 1.05rem; margin: 22px 0 10px; }
.hist-versions { display: grid; gap: 10px; }
.hist-ver, .hist-log {
  background: var(--card, #fff);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px 14px;
}
.hist-ver.on { border-color: var(--lagoon); box-shadow: 0 0 0 2px color-mix(in oklab, var(--lagoon) 28%, transparent); }
.hist-ver header, .hist-log header {
  display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
  margin-bottom: 4px;
}
.hist-ver header b { font-size: 1.05rem; }
.hist-ver header span {
  font-size: 0.72rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--lagoon);
}
.hist-ver time, .hist-log time { margin-left: auto; color: var(--muted); font-size: 0.82rem; }
.hist-ver p, .hist-log p { margin: 0; color: var(--ink, #1c1917); }
.hist-logs { display: grid; gap: 8px; }
.hist-log header span {
  font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--lagoon-deep, var(--lagoon));
}
.hist-log.kind-email header span { color: #9a3412; }
.hist-log.kind-acesso header span { color: #166534; }
.hist-log.kind-ical header span { color: #1d4ed8; }
.hist-log .muted { color: var(--muted); font-size: 0.85rem; margin-top: 4px; }
@media (min-width: 801px) {
  .hist-versions { grid-template-columns: 1fr 1fr; }
}

/* ===== Painel mestre v12.08 — visual profissional ===== */
body.admin-pro {
  --bg: #f4f6f8;
  --surface: #ffffff;
  --sunken: #eceff3;
  --ink: #17202b;
  --muted: #566272;
  --line: #e1e6ec;
  --lagoon: #0d5c63;
  --lagoon-deep: #0a474c;
  --lagoon-soft: #e1eeee;
  --shadow: 0 1px 2px rgba(16, 24, 40, 0.06), 0 1px 3px rgba(16, 24, 40, 0.04);
  --radius: 12px;
  background: var(--bg);
  font-size: 15px;
}
body.admin-pro h1, body.admin-pro h2, body.admin-pro h3 {
  font-family: var(--sans);
  font-weight: 700;
  letter-spacing: -0.02em;
}
body.admin-pro h2 { font-size: 1.15rem; margin: 1.4rem 0 0.4rem; }
body.admin-pro .kicker { font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); font-weight: 700; }
body.admin-pro .lead { font-size: 0.88rem; max-width: 70ch; color: var(--muted); }
body.admin-pro .hint { color: var(--muted); }

/* topo */
body.admin-pro header.nav { background: var(--surface); border-bottom: 1px solid var(--line); }
body.admin-pro .nav-bar { min-height: 60px !important; }
body.admin-pro .brand-name { font-weight: 700; font-size: 1rem; }
body.admin-pro .brand .mark { width: 36px; height: 36px; border-radius: 8px; object-fit: cover; }
body.admin-pro .sair-link {
  border: 1px solid var(--line); background: var(--surface); color: var(--ink);
  border-radius: 8px; padding: 7px 14px; font: inherit; font-weight: 600; font-size: 0.85rem; cursor: pointer;
}
body.admin-pro .sair-link:hover { background: var(--sunken); }

/* cartões e blocos recolhíveis */
body.admin-pro .card-block { border-radius: var(--radius); border: 1px solid var(--line); box-shadow: var(--shadow); }
body.admin-pro .fold {
  border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface);
  box-shadow: var(--shadow); padding: 0 16px 14px; margin: 0 0 10px;
}
body.admin-pro .fold > summary { font-weight: 650; font-size: 0.95rem; padding: 14px 2px; color: var(--ink); }
body.admin-pro .fold > summary::after {
  content: "›"; font-size: 1.3rem; line-height: 1; font-weight: 500; color: var(--muted);
  transform: rotate(90deg); transition: transform 0.15s ease;
}
body.admin-pro .fold[open] > summary::after { content: "›"; transform: rotate(-90deg); }
body.admin-pro .fold[open] > summary { border-bottom: 1px solid var(--line); margin-bottom: 10px; }

/* setas de mover: só no modo Organizar */
body.admin-pro .fold-move { display: none; }
body.admin-pro.organize-mode .fold-move { display: flex; }
body.admin-pro .fold-move button { border-radius: 8px; background: var(--sunken); }

/* campos */
body.admin-pro .fields label, body.admin-pro .login-form label { font-size: 0.8rem; font-weight: 600; color: var(--muted); }
body.admin-pro input, body.admin-pro textarea, body.admin-pro select {
  border-radius: 8px !important; border: 1px solid #cfd6de; background: #fff; font: inherit; font-weight: 500;
}
body.admin-pro input:focus, body.admin-pro textarea:focus, body.admin-pro select:focus {
  outline: 2px solid color-mix(in oklab, var(--lagoon) 35%, transparent); outline-offset: 0; border-color: var(--lagoon);
}

/* botões */
body.admin-pro .btn { border-radius: 8px; font-weight: 600; font-size: 0.88rem; min-height: 40px; box-shadow: none; }
body.admin-pro .btn-primary { background: var(--lagoon); color: #fff; }
body.admin-pro .btn-primary:hover { background: var(--lagoon-deep); }
body.admin-pro .btn-ghost, body.admin-pro .btn-outline {
  background: #fff; color: var(--ink); border: 1px solid #cfd6de;
}
body.admin-pro .btn-ghost:hover, body.admin-pro .btn-outline:hover { background: var(--sunken); }
body.admin-pro .btn-warn { background: #fff; color: #b42318; border: 1px solid #f1c0bb; }
body.admin-pro .btn-warn:hover { background: #fef3f2; }

/* cabeçalho de cada página */
.tab-head {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  padding: 4px 0 14px; margin: 0 0 14px; border-bottom: 1px solid var(--line);
}
.tab-head-text { min-width: 0; }
.tab-head-title { margin: 0 !important; font-size: 1.4rem !important; font-weight: 750; letter-spacing: -0.025em; }
.tab-head-meta { margin: 2px 0 0; font-size: 0.78rem; color: var(--muted); font-weight: 500; }
.tab-head-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.tab-head-actions button {
  display: inline-flex; align-items: center; gap: 6px; border: 1px solid #cfd6de; background: #fff; color: var(--ink);
  border-radius: 8px; padding: 8px 14px; font: inherit; font-weight: 600; font-size: 0.84rem; cursor: pointer; min-height: 38px;
}
.tab-head-actions button:hover { background: var(--sunken); }
.tab-head-actions button.on { background: var(--lagoon-soft); border-color: var(--lagoon); color: var(--lagoon-deep); }
.tab-head-actions svg { width: 16px; height: 16px; fill: currentColor; }
.tab-head-actions button.spin svg { animation: tabspin 0.8s linear infinite; }
@keyframes tabspin { to { transform: rotate(360deg); } }
body.admin-pro .tab-panel > .kicker { display: none; }
body.admin-pro #tab-reservas > h2:first-of-type,
body.admin-pro #tab-calendario > h2:first-of-type,
body.admin-pro #tab-caixa > h2:first-of-type,
body.admin-pro #tab-guia > h2:first-of-type,
body.admin-pro #tab-chat > h2:first-of-type,
body.admin-pro #tab-historico > h2:first-of-type { display: none; }

/* navegação: sempre respeita [hidden] */
body.admin-pro #adminNav[hidden] { display: none !important; }
body.admin-pro .admin-tabs .tab { font-weight: 600; }
body.admin-pro .tab b { background: #d92d20; color: #fff; border-radius: 999px; }

/* celular: barra inferior compacta em uma linha */
@media (max-width: 800px) {
  body.admin-pro.shell .app-tabs.admin-tabs {
    display: grid !important; grid-template-columns: repeat(6, 1fr); gap: 0;
    padding: 4px 4px calc(6px + env(safe-area-inset-bottom));
    background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -2px 10px rgba(16, 24, 40, 0.06);
  }
  body.admin-pro.shell .admin-tabs .tab {
    background: transparent !important; color: var(--muted); min-height: 52px; border-radius: 8px;
    font-size: 0.64rem; font-weight: 600; gap: 2px; padding: 4px 0; position: relative;
  }
  body.admin-pro.shell .admin-tabs .tab.on { background: transparent !important; color: var(--lagoon); }
  body.admin-pro.shell .admin-tabs .tab.on::before {
    content: ""; position: absolute; top: 0; left: 22%; right: 22%; height: 3px; border-radius: 0 0 3px 3px; background: var(--lagoon);
  }
  body.admin-pro.shell .tab-ico { width: 22px; height: 22px; }
  body.admin-pro.shell .nav-bar { padding-left: 16px; padding-right: 16px; }
  body.admin-pro.shell .admin-screen { padding-left: 16px; padding-right: 16px; padding-bottom: calc(80px + env(safe-area-inset-bottom)); }
  .tab-head-title { font-size: 1.2rem !important; }
}

/* computador: igual ao telemóvel — conteúdo ao centro, botões embaixo */
@media (min-width: 801px) {
  body.admin-pro.shell .app-frame:has(#adminNav:not([hidden])) {
    display: flex; flex-direction: column; min-height: 100dvh;
  }
  body.admin-pro.shell .app-frame:has(#adminNav:not([hidden])) header.nav,
  body.admin-pro.shell .app-frame:has(#adminNav:not([hidden])) main,
  body.admin-pro.shell .app-frame:has(#adminNav:not([hidden])) footer {
    width: min(880px, calc(100% - 48px));
    margin-left: auto; margin-right: auto;
  }
  body.admin-pro.shell .app-frame:has(#adminNav:not([hidden])) #adminNav {
    position: fixed; left: 50%; right: auto; bottom: 16px; transform: translateX(-50%);
    width: min(880px, calc(100% - 32px)); height: auto; margin: 0; z-index: 45;
    display: grid !important; grid-template-columns: repeat(6, 1fr); gap: 4px;
    padding: 8px 8px; background: #fff; border: 1px solid var(--line); border-radius: 18px;
    box-shadow: 0 8px 28px rgba(16, 24, 40, 0.12); overflow: visible;
  }
  body.admin-pro.shell #adminNav::before,
  body.admin-pro.shell #adminNav::after { content: none; display: none; }
  body.admin-pro.shell #adminNav .tab {
    flex-direction: column !important; justify-content: center !important; gap: 3px !important;
    width: 100%; min-height: 58px !important; padding: 6px 4px !important; border-radius: 12px !important;
    color: var(--muted) !important; font-size: 0.78rem !important; font-weight: 650; background: transparent !important;
    position: relative;
  }
  body.admin-pro.shell #adminNav .tab:hover { background: var(--sunken) !important; color: var(--ink) !important; }
  body.admin-pro.shell #adminNav .tab.on { background: transparent !important; color: var(--lagoon) !important; }
  body.admin-pro.shell #adminNav .tab.on::before {
    content: ""; position: absolute; top: 0; left: 22%; right: 22%; height: 3px; border-radius: 0 0 3px 3px; background: var(--lagoon);
  }
  body.admin-pro.shell #adminNav .tab b { position: absolute; top: 4px; right: 10px; margin: 0; }
  body.admin-pro.shell .tab-ico { width: 22px; height: 22px; }
  body.admin-pro.shell .nav-bar,
  body.admin-pro.shell .admin-screen { width: 100%; max-width: none; margin: 0; padding-left: 8px; padding-right: 8px; }
  body.admin-pro.shell .admin-screen { padding-top: 18px; padding-bottom: 120px; }
  body.admin-pro.shell footer { padding-bottom: 108px; text-align: center; }
}
body.admin-pro .brand-name { font-family: var(--sans) !important; font-style: normal !important; }
.fin-nota { margin-top: 10px; padding: 14px; border-radius: 14px; background: #f6e7a8; color: #3d3420; }
.fin-nota .nota-prices li { display: grid !important; grid-template-columns: minmax(0, 1fr) 92px 92px; gap: 12px; align-items: center; }
.fin-nota .nota-prices li span:first-child { min-width: 0; }
.fin-nota .nota-prices li span:nth-child(2),
.fin-nota .nota-prices li b { text-align: right; white-space: nowrap; }
.nota-cols { display: grid !important; grid-template-columns: minmax(0, 1fr) 92px 92px; gap: 12px; margin: 8px 0 0; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: #6b5b32; }
.nota-cols span:nth-child(2), .nota-cols span:nth-child(3) { text-align: right; }
.fin-nota .shop-items li { border-color: rgba(61, 52, 32, 0.12); }
.nota-pago { display: inline-block; margin: 0 0 6px; padding: 6px 14px; border-radius: 999px; background: #157347; color: #fff; font-weight: 800; letter-spacing: 0.08em; font-size: 1.05rem; }
.nota-when { margin: 0 0 10px; font-weight: 750; font-size: 1rem; }
.new-prod .hint { margin: 0; }
body.admin-pro .fold[open] { padding-bottom: 14px; }
body.admin-pro .fold > summary { display: flex !important; align-items: center; gap: 8px; }
body.admin-pro .fold > summary::after { float: none !important; margin-left: auto !important; }
body.admin-pro .fold > summary:has(.fold-move)::after { margin-left: 8px !important; }
body.admin-pro .fold-move { margin-left: auto; }
body.admin-pro .fold-move:not(:empty) + * { margin-left: 0; }
body.admin-pro.shell .admin-screen { padding-top: 8px; }
body.admin-pro #panelBox { margin-top: 0; }
body.admin-pro:not(.organize-mode) .fold > summary:has(.fold-move)::after { margin-left: auto !important; }

/* v12.08: cartões nunca passam da largura da tela (celular) */
body.admin-pro .card-row,
body.admin-pro.shell .card-row { grid-template-columns: minmax(0, 1fr) !important; min-width: 0; max-width: 100%; }
body.admin-pro .card-row > * { min-width: 0; }
body.admin-pro .card-row p, body.admin-pro .card-row strong, body.admin-pro .card-row span { overflow-wrap: anywhere; }
body.admin-pro .actions-grid { max-width: 100%; }
body.admin-pro .actions-grid .btn, body.admin-pro .actions-grid button, body.admin-pro .actions-grid a {
  white-space: normal; line-height: 1.2; padding-top: 6px; padding-bottom: 6px; overflow-wrap: anywhere;
}
body.admin-pro #panelBox, body.admin-pro .tab-panel { min-width: 0; max-width: 100%; }

/* ===== v12.08: Atualizar no topo, barra de Pedidos, filtro em botão único ===== */
.nav-actions { display: flex; flex-direction: row-reverse; align-items: center; gap: 8px; }
.refresh-link { display: inline-flex; align-items: center; gap: 6px; }
.refresh-link svg { width: 16px; height: 16px; fill: currentColor; }
#sair[hidden] ~ #btnRefresh { display: none; }
.refresh-link.spin svg { animation: tabspin 0.8s linear infinite; }
.refresh-link:disabled { opacity: 0.6; cursor: wait; }
@media (max-width: 480px) { .refresh-link span { display: none; } .refresh-link { padding: 7px 10px; } }
.res-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin: 0 0 14px; flex-wrap: wrap; }
.res-filter-wrap { position: relative; }
#resFilterToggle b { color: var(--lagoon); margin: 0 2px; }
body.admin-pro .res-filters {
  position: absolute; z-index: 30; top: calc(100% + 6px); left: 0; width: min(340px, calc(100vw - 32px));
  display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 14px;
  background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 10px 30px rgba(16, 24, 40, 0.14);
}
body.admin-pro .res-filters[hidden] { display: none; }
.res-group { flex: 1 0 100%; margin: 4px 0 0; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.res-group:first-child { margin-top: 0; }
body.admin-pro .visit-fold .visit-box { margin: 0; box-shadow: none; border: 0; padding: 0; background: transparent; }

/* ===== v12.08: cartões de reserva compactos que abrem ao clicar ===== */
body.admin-pro .card-row.res-card { padding: 0; gap: 0; overflow: hidden; }
.res-sum {
  display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 10px;
  width: 100%; padding: 12px 16px; border: 0; background: transparent; color: var(--ink);
  font: inherit; text-align: left; cursor: pointer;
}
.res-sum:hover { background: color-mix(in oklab, var(--sunken) 55%, transparent); }
.res-sum-top { grid-column: 1; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; min-width: 0; }
.res-sum-top strong { font-size: 1rem; font-weight: 700; }
.res-sum-meta { grid-column: 1; font-size: 0.85rem; color: var(--muted); font-weight: 500; }
.res-chev { grid-column: 2; grid-row: 1 / span 2; font-size: 1.5rem; line-height: 1; color: var(--muted); transform: rotate(90deg); transition: transform 0.15s ease; }
.res-card.open .res-chev { transform: rotate(-90deg); }
.res-card.open .res-sum { border-bottom: 1px solid var(--line); }
.res-body { display: grid; gap: 12px; padding: 14px 16px 16px; min-width: 0; }
.res-body[hidden] { display: none; }
.st-pill.st-alert { background: #fff1e6; color: #b54708; border: 1px solid #fedf89; }
.st-pill.st-now { background: #e1eeee; color: var(--lagoon-deep); }

/* ===== v12.08 ===== */
body.admin-pro #tab-historico > h2:first-of-type { display: block; }
.tab-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 28px 0 8px; padding-top: 14px; border-top: 1px solid var(--line); }
.tab-foot .tab-head-meta { margin: 0; }
.link-btn { border: 0; background: none; padding: 0; font: inherit; font-weight: 700; color: var(--lagoon); text-decoration: underline; cursor: pointer; }
.res-count { margin: -4px 0 12px; font-size: 0.82rem; color: var(--muted); }
.info-row { margin: 0 0 12px; }
.info-wrap { position: relative; display: inline-block; }
.info-btn { border: 1px solid var(--line); background: #fff; color: var(--muted); border-radius: 999px; padding: 6px 12px; font: inherit; font-size: 0.82rem; font-weight: 600; cursor: pointer; min-height: 36px; }
.info-btn:hover { background: var(--sunken); color: var(--ink); }
.info-pop { position: absolute; z-index: 40; top: calc(100% + 6px); left: 0; width: min(340px, calc(100vw - 32px)); padding: 12px 14px; background: #17202b; color: #fff; font-size: 0.84rem; line-height: 1.45; font-weight: 500; border-radius: 10px; box-shadow: 0 10px 30px rgba(16, 24, 40, 0.25); }
.info-pop[hidden] { display: none; }
@media (hover: hover) { .info-wrap:hover .info-pop[hidden] { display: block; } }
@media (max-width: 480px) { .info-btn span { display: none; } }
/* estadias da Agenda */
.stay-list .stay-row { display: grid; gap: 4px; width: 100%; text-align: left; font: inherit; border: 0; border-left: 5px solid transparent; border-radius: 12px; padding: 10px 14px; margin: 0; cursor: default; }
.stay-list button.stay-link { cursor: pointer; }
.stay-list button.stay-link:hover { filter: brightness(0.97); }
.stay-main { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; font-weight: 700; }
.stay-main span { font-weight: 600; }
.stay-sub { font-size: 0.82rem; font-weight: 500; opacity: 0.85; }
.stay-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.stay-go { font-size: 0.8rem; font-weight: 700; text-decoration: underline; }
body.admin-pro #panelBox { padding-top: 0 !important; }

/* ===== v12.08 ===== */
.info-pop { display: none; }
.info-pop.open, .info-wrap:hover .info-pop { display: block; }
.new-ver-bar { position: fixed; left: 50%; transform: translateX(-50%); bottom: 84px; z-index: 80; display: flex; align-items: center; gap: 12px; padding: 10px 14px; background: #17202b; color: #fff; border-radius: 12px; box-shadow: 0 10px 30px rgba(16, 24, 40, 0.3); font-size: 0.88rem; max-width: calc(100vw - 24px); }
.new-ver-bar .btn { min-height: 36px; padding: 0 14px; }
@media (min-width: 801px) { .new-ver-bar { bottom: 24px; } }

/* ===== v12.08 ===== */
.tab-foot { justify-content: flex-end; }
.stay-item { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.stay-item.open > .stay-row { border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; }
.stay-card { min-width: 0; }
.stay-card .res-card.inline { margin: 0; border: 1px solid var(--line); }
.stay-card .res-card.inline .res-body { padding-top: 12px; }
.stay-list .stay-card p { padding: 0; background: none; border: 0; font-weight: inherit; color: inherit; }

/* ===== v12.09: card de reserva reorganizado ===== */
.res-body { gap: 14px; }
.res-body p { margin: 0; }
.res-head-inline { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; padding: 12px 16px; border-bottom: 1px solid var(--line); }
.res-head-inline strong { font-size: 1rem; }
.res-info { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; }
.res-info > div { min-width: 0; display: grid; gap: 2px; align-content: start; overflow-wrap: anywhere; }
.ri-l { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--muted); }
.res-money { font-size: 0.9rem; color: var(--ink); display: grid; gap: 2px; }
.res-dim { font-size: 0.82rem; color: var(--muted); }
@media (max-width: 520px) { .res-info { grid-template-columns: minmax(0, 1fr); } }
.res-actions { display: grid; gap: 10px; }
.res-actions .btn { min-height: 44px; margin: 0; justify-content: center; text-align: center; }
.act-primary .btn { width: 100%; min-height: 48px; font-size: 0.95rem; background: var(--lagoon) !important; color: #fff !important; border: 0 !important; }
.act-primary .btn:hover { background: var(--lagoon-deep) !important; }
.act-second { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; }
.act-second .btn { width: 100%; background: #fff; color: var(--lagoon); border: 1px solid color-mix(in oklab, var(--lagoon) 30%, var(--line)); }
.act-second .btn:hover { background: var(--sunken); color: var(--lagoon-deep); }
.act-danger { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; padding-top: 10px; border-top: 1px dashed var(--line); }
.act-danger .btn { min-height: 38px; padding: 6px 16px; font-size: 0.84rem; background: #fff; color: #b42318; border: 1px solid #f1c0bb; }
.act-danger .btn:hover { background: #fef3f2; color: #b42318; border-color: #e5958d; }
body.admin-pro .btn-warn:hover { color: #b42318; border-color: #e5958d; }
.res-foot { font-size: 0.8rem; color: var(--muted); display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; }
.res-foot .link-btn { font-size: 0.8rem; font-weight: 600; }

/* ===== v12.10: ⓘ dentro dos blocos ===== */
.fold > summary { position: relative; }
.info-wrap.info-card { position: static; display: inline-flex; margin-left: 8px; vertical-align: middle; }
.info-btn.mini { padding: 0; width: 28px; height: 28px; min-height: 28px; border-radius: 50%; font-size: 0.95rem; line-height: 1; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; }
.info-card .info-pop { left: 0; right: 0; width: auto; top: calc(100% - 6px); font-weight: 500; cursor: default; }

/* ===== v12.11: editar promoção ===== */
.promo-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.promo-row p { margin: 4px 0 0; }
.promo-row.editing { outline: 2px solid var(--lagoon); }
.promo-btns { display: flex; gap: 8px; }
.promo-btns .btn { min-height: 38px; padding: 6px 16px; }
.archive-item { margin: 8px 0 12px; }
.archive-item p { margin: 0 0 4px; font-size: 0.9rem; }
.archive-video, .archive-photo { display: block; width: 100%; max-height: 280px; border-radius: 12px; background: #111; object-fit: contain; }

/* ===== v12.32: total do mês no topo da tela da equipe (faxina) ===== */
#sTotalBar { margin: 0 0 14px; }
#sTotalBar .total-bar { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; text-align: left; font: inherit; border: 0; cursor: pointer; background: var(--lagoon, #0d5c63); color: #fff; border-radius: 14px; padding: 12px 14px; }
#sTotalBar .total-bar:hover { filter: brightness(1.08); }
#sTotalBar .tb-l, #sTotalBar .tb-r { display: grid; gap: 2px; min-width: 0; }
#sTotalBar .tb-r { text-align: right; flex: 0 0 auto; }
#sTotalBar .tb-t { font-weight: 700; font-size: 1.02rem; }
#sTotalBar .tb-s { font-size: 0.78rem; opacity: 0.88; line-height: 1.3; }
#sTotalBar b { font-size: 1.35rem; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ===== v12.32: cartão compacto da equipe (opção A) ===== */
.staff-stay.stay-compact { padding: 11px 13px 12px; }
.stay-compact .staff-head { margin-bottom: 2px; }
.stay-compact h2 { font-size: 1.12rem; line-height: 1.2; margin: 3px 0 8px; }
.stay-when { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 8px; background: #f4f1e8; border-radius: 10px; padding: 8px 10px; }
.stay-when > div { display: grid; min-width: 0; }
.stay-when .w { font-size: 0.74rem; color: #5c574e; text-transform: lowercase; }
.stay-when .d { font-weight: 800; font-size: 0.96rem; font-variant-numeric: tabular-nums; }
.stay-when .arr { color: var(--lagoon, #0d5c63); font-weight: 800; }
.stay-foot { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-top: 8px; font-size: 0.84rem; }
.stay-foot .sf-r { margin-left: auto; color: #5c574e; text-align: right; }
.stay-foot .sf-ok { color: #1c7c45; font-weight: 600; }
.stay-foot .sf-ok b { color: #14181c; }
.stay-foot .sf-warn { color: #8a6a1f; font-weight: 600; }
.stay-foot .sf-dim { color: #7a766d; }
.stay-compact .staff-grid { margin-top: 8px; }
.stay-compact .fax-done-btn { width: 100%; min-height: 40px; margin-top: 8px; }

/* v12.32: card "Pagar faxina/mensal" compacto */
.pay-wait.pay-compact { padding: 10px 12px; }
.pay-compact .pw-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.pay-compact .pw-head strong { font-size: 0.98rem; }
.pay-compact .pw-head .pay-shop { margin: 2px 0 0; font-size: 0.84rem; }
.pay-compact .pw-head .shop-total { margin: 0; font-size: 1.1rem; white-space: nowrap; }
.pay-compact .shop-pix { padding: 8px; margin: 8px 0; gap: 10px; }
.pay-compact .shop-pix img { width: 84px; height: 84px; }
.pay-compact .shop-pix > div > p { margin: 0; font-size: 0.78rem; }
.pay-compact .shop-pix strong { font-size: 0.86rem; }
.pay-compact .shop-pix b { font-size: 0.95rem; }
.pay-compact .shop-pix .pix-actions { margin-top: 6px; }
.pay-compact .shop-pix .pix-actions .btn { min-height: 34px; padding: 0 10px; font-size: 0.84rem; }
.pay-compact .pay-meta { font-size: 0.84rem; margin: 0 0 6px; }
.pay-compact .pay-actions .btn { min-height: 38px; font-size: 0.88rem; }

.fax-ask { margin-top: 8px; display: grid; gap: 8px; background: #f4f1e8; border-radius: 10px; padding: 10px; }
.fax-ask label { display: grid; gap: 4px; font-weight: 700; font-size: 0.9rem; }
.fax-ask input[type="date"] { min-height: 42px; font-size: 1rem; }
.fax-ask-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.fax-ask-btns .btn { min-height: 40px; }

/* v12.32: faixa próxima faxina, etiquetas coloridas, subtotal do histórico */
.next-bar { background: #f4f1e8; border-left: 4px solid var(--lagoon, #0d5c63); border-radius: 10px; padding: 9px 12px; margin: 0 0 10px; font-size: 0.92rem; }
.next-bar p { margin: 0; }
.next-bar .nb-late { color: #8a4b00; font-weight: 700; margin-top: 4px; }
.stay-foot .sf-ok, .stay-foot .sf-warn, .stay-foot .sf-dim, .stay-foot .sf-late { border-radius: 999px; padding: 3px 10px; font-size: 0.82rem; }
.stay-foot .sf-ok { background: #e3f3e8; }
.stay-foot .sf-warn { background: #fff1cf; }
.stay-foot .sf-dim { background: #ebe8df; }
.stay-foot .sf-late { background: #fde2d4; color: #9a3412; font-weight: 700; }
.month-sub { margin: -4px 0 10px; font-weight: 700; color: #1c7c45; }
.fax-obs { background: #fff1cf; border-left: 4px solid #d9a21b; border-radius: 8px; padding: 6px 10px; margin: 8px 0; font-size: 0.9rem; }

/* v12.32: lista de pedidos agrupada por mês, menos etiquetas */
.res-month { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin: 18px 2px 8px; padding-bottom: 6px; border-bottom: 2px solid #cfe0df; font-size: 0.95rem; color: var(--lagoon, #0d5c63); letter-spacing: 0.02em; }
.res-month:first-child { margin-top: 6px; }
.res-month small { font-weight: 700; color: #5c574e; text-transform: none; }
.res-card.is-live { background: #eef7f2; box-shadow: 0 0 0 2px #7cc79a inset; }
.st-pill.st-mini { padding: 2px 8px; }

/* v12.47: faxina extra */
#sExtra { margin: 0 0 10px; }
.extra-btn { width: 100%; min-height: 42px; }
.extra-form { display: grid; gap: 8px; background: #f4f1e8; border-radius: 10px; padding: 10px; margin-top: 8px; }
.extra-form label { display: grid; gap: 4px; font-weight: 700; font-size: 0.9rem; }
.extra-list { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; font-size: 0.84rem; }
.extra-list li { display: flex; justify-content: space-between; align-items: center; gap: 8px; background: #fff; border-radius: 8px; padding: 6px 10px; }
.extra-list em { font-style: normal; border-radius: 999px; padding: 2px 9px; white-space: nowrap; font-weight: 700; }
.extra-list .sf-warn { background: #fff1cf; color: #8a6a1f; }
.extra-list .sf-ok { background: #e3f3e8; color: #1c7c45; }
.extra-list .sf-late { background: #fde2d4; color: #9a3412; }
.pay-extra .fax-obs { margin: 6px 0; }

.stay-ok { margin: 0; padding: 4px 10px; border-radius: 999px; background: #e3f3e8; color: #1c7c45; font-size: 0.72rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; border: 1px solid #9fd2b1; white-space: nowrap; }
.stay-refused { margin: 0; padding: 4px 10px; border-radius: 999px; background: #fde2d4; color: #9a3412; font-size: 0.72rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; border: 1px solid #f0b79a; white-space: nowrap; }
.extra-card { border-style: dashed; }

/* v12.47: meses futuros recolhidos */
.staff-fold { margin: 14px 0; }
.staff-fold > summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: baseline; border-bottom: 2px solid var(--lagoon, #0d5c63); padding-bottom: 6px; margin-bottom: 10px; }
.staff-fold > summary::-webkit-details-marker { display: none; }
.staff-fold > summary small { color: #5c574e; font-weight: 700; }
.staff-fold > summary::after { content: "abrir ▾"; font-size: 0.78rem; font-weight: 700; color: #5c574e; margin-left: 10px; }
.staff-fold[open] > summary::after { content: "fechar ▴"; }
.staff-fold > summary .staff-month-title { border-bottom: 0; margin: 0; padding: 0; font-family: var(--serif, Georgia, serif); font-weight: 700; }

/* v12.47: botão verde e padrão abrir/fechar */
.btn.btn-green { background: #1c7c45; color: #fff; border-color: #1c7c45; }
.btn.btn-green:hover, .btn.btn-green:focus-visible { background: #14633a; color: #fff; border-color: #14633a; }
.fax-extra-box { display: grid; gap: 8px; margin-bottom: 12px; border-left: 4px solid #1c7c45; }
.fax-extra-box[hidden] { display: none !important; }
.fax-extra-box h3 { margin: 0; font-size: 1.05rem; }
.fold > summary::after, .staff-fold > summary::after { content: "Abrir"; float: none; margin-left: auto; display: inline-block; padding: 5px 14px; border: 1.5px solid var(--lagoon, #0d5c63); border-radius: 999px; background: #fff; color: var(--lagoon, #0d5c63); font-size: 0.8rem; font-weight: 800; line-height: 1; }
.fold[open] > summary::after, .staff-fold[open] > summary::after { content: "Fechar"; background: var(--lagoon, #0d5c63); color: #fff; }
.fold > summary, .staff-fold > summary { display: flex; align-items: center; gap: 10px; }
.fold > summary:has(.fold-move)::after { margin-left: 8px; }

.pay-month > summary small, .staff-fold > summary small { margin-left: auto; color: #1c7c45; font-weight: 800; }
.pay-month { margin: 8px 0; }
.pay-month .guest-card > h2 { display: none; }
.pay-month .guest-card { border: 0; box-shadow: none; padding-top: 0; }

/* ===== 12.47 Painéis: fonte do manual (não vale para o site público) ===== */
body.panel-ui, html.panel-ui body {
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --display: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --serif: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-family: var(--sans);
  letter-spacing: 0;
}
body.panel-ui h1, body.panel-ui h2, body.panel-ui h3 { letter-spacing: -0.01em; }
body.panel-ui .staff-fold > summary .staff-month-title { font-family: var(--sans); }

/* botão de tema */
.theme-btn {
  font: inherit; font-size: 0.8rem; font-weight: 700; cursor: pointer;
  padding: 8px 12px; border-radius: 999px; border: 1px solid var(--line);
  background: var(--surface); color: var(--ink); white-space: nowrap;
}
.theme-float { position: fixed; top: 10px; right: 10px; z-index: 60; box-shadow: var(--shadow); }
body.panel-ui .nav-actions .theme-btn { border-radius: 10px; padding: 9px 12px; }

/* ===== Tema escuro (verde-azulado) ===== */
html[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0d1918;
  --surface: #14262a;
  --sunken: #1b3334;
  --ink: #e7f2ef;
  --muted: #a8bfba;
  --line: #27423f;
  --lagoon: #4cb8ae;
  --lagoon-fg: #04201d;
  --lagoon-deep: #7fd6cc;
  --lagoon-soft: #173a38;
  --shadow: 0 0 0 1px rgba(255,255,255,0.05), 0 8px 24px -16px rgba(0,0,0,0.6);
}
html[data-theme="dark"] body { background: var(--bg); color: var(--ink); }
html[data-theme="dark"] input, html[data-theme="dark"] select, html[data-theme="dark"] textarea {
  background: var(--sunken); color: var(--ink); border-color: var(--line);
}
html[data-theme="dark"] ::placeholder { color: color-mix(in oklab, var(--muted) 70%, transparent); }
html[data-theme="dark"] .fin-nota { background: #3b3417; color: #f2e8bd; }
html[data-theme="dark"] .nota-cols { color: #cdbd7d; }

/* ===== 12.47 Caixa mais simples ===== */
#tab-caixa { display: flex; flex-direction: column; gap: 12px; }
#tab-caixa:not([hidden]) { display: flex; }
#tab-caixa > * { margin-top: 0; margin-bottom: 0; }
#tab-caixa > #finPend { order: 1; }
#tab-caixa > #finMonthWrap { order: 2; }
#tab-caixa > #finSum { order: 3; }
#tab-caixa > [data-caixa-card="lancamento"] { order: 4; }
#tab-caixa > #finList { order: 5; }
#tab-caixa > #finSumAll { order: 6; }
#tab-caixa > [data-caixa-card="relatorio"] { order: 7; }
#tab-caixa > [data-caixa-card="fornecedor"] { order: 8; }
#tab-caixa > [data-caixa-card="pedido"] { order: 9; }
#tab-caixa [data-caixa-card] .fold-move { display: none !important; }
.fin-stepper { display: grid; grid-template-columns: 52px minmax(0, 1fr) 52px; gap: 8px; align-items: end; }
.fin-stepper .btn { height: 48px; font-size: 1.5rem; padding: 0; }
.fin-stepper label { margin: 0; }
#finSum .kicker { margin-bottom: 6px; }
#finSum .fin-sum b, #finSum .fin-sum button b { font-size: 1.35rem; }
#finSum .fin-sum { gap: 8px; }
#finSumAll .fin-sum b { font-size: 1.05rem; }
#finSumAll { opacity: .95; }
#tab-caixa > [data-caixa-card="lancamento"] > summary {
  background: var(--lagoon); color: var(--lagoon-fg); border-radius: 14px; font-weight: 800; justify-content: center;
}
#tab-caixa > [data-caixa-card="lancamento"] > summary span { color: inherit; font-size: 1.05rem; }
.fin-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip-btn { font: inherit; font-weight: 700; font-size: .92rem; padding: 10px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); cursor: pointer; }
.chip-btn.on { background: var(--lagoon); color: var(--lagoon-fg); border-color: var(--lagoon); }
.fin-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 8px; vertical-align: 1px; }
.fin-dot.receita { background: #1f9d62; } .fin-dot.despesa { background: #d0493a; }
.fin-code { font-weight: 500; color: var(--muted); }

/* ===== 12.47 Pedidos: resumo do dia, busca, selos ===== */
.res-today { background: var(--surface); border-radius: var(--radius); box-shadow: var(--shadow); padding: 14px; margin-bottom: 12px; }
.res-today .kicker { margin: 0 0 8px; }
.rt-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.rt-item { background: var(--sunken); border-radius: 12px; padding: 10px; min-width: 0; }
.rt-item b { display: block; font-size: 1.35rem; line-height: 1.1; font-variant-numeric: tabular-nums; }
.rt-item span { display: block; font-size: .78rem; color: var(--muted); margin-top: 3px; line-height: 1.25; }
.rt-item small { display: block; font-weight: 700; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rt-item.zero { opacity: .55; }
.rt-item:last-child b { font-size: 1.1rem; }
.res-search { width: 100%; margin: 0 0 10px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); font: inherit; }
.res-sum-extra { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 4px; font-size: .82rem; }
.res-when { color: var(--lagoon); font-weight: 800; }
.pay-tag { font-weight: 800; font-size: .76rem; padding: 2px 9px; border-radius: 999px; }
.pay-tag.pago { background: #d4f3e3; color: #14683d; }
.pay-tag.falta { background: #fdeec8; color: #855b00; }
html[data-theme="dark"] .pay-tag.pago { background: #14452f; color: #9df0c4; }
html[data-theme="dark"] .pay-tag.falta { background: #4a3a14; color: #ffd98a; }
.res-card { position: relative; }
.res-wa { position: absolute; right: 44px; top: 12px; width: 36px; height: 36px; border-radius: 50%; border: 0; background: #25d366; display: grid; place-items: center; cursor: pointer; padding: 0; }
.res-wa svg { width: 20px; height: 20px; fill: #fff; }
.res-card:has(.res-wa) .res-sum { padding-right: 90px; }
/* botões grandes no cartão aberto (celular) */
@media (max-width: 700px) {
  .res-card .res-actions .btn { min-height: 48px; font-size: 1rem; }
  .res-card .res-actions .act-primary .btn { width: 100%; }
}
.guia-go { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 14px; }
.undo-toast {
  position: fixed; left: 50%; transform: translateX(-50%); bottom: 96px; z-index: 80; max-width: calc(100% - 24px);
  display: flex; gap: 14px; align-items: center; background: #1d2b2a; color: #fff; padding: 12px 16px; border-radius: 14px;
  box-shadow: 0 10px 30px -10px rgba(0,0,0,.5); font-size: .95rem;
}
.undo-toast[hidden] { display: none !important; }
.undo-toast button { font: inherit; font-weight: 800; background: transparent; border: 0; color: #7fd6cc; cursor: pointer; padding: 6px 4px; }
.thread-when { display: block; font-size: .72rem; color: var(--muted); margin-top: 2px; }
.chat-empty { padding: 28px 16px; text-align: center; color: var(--muted); }

/* ===== 12.47 Calendário do site: um mês por vez ===== */
.guest-scroll { max-height: none; overflow: visible; }
.guest-month-head { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-items: center; gap: 8px; margin: 12px 0 8px; }
.guest-month-head h3 { margin: 0; text-align: center; }
.gm-nav { width: 44px; height: 44px; border-radius: 50%; border: 0; font-size: 1.5rem; line-height: 1; cursor: pointer; background: color-mix(in oklab, var(--lagoon-fg) 18%, transparent); color: var(--lagoon-fg); }
.gm-nav:disabled { opacity: .3; cursor: default; }
.guest-scroll .guest-dow { position: static; }
footer a[href="admin.html"] { opacity: .35; text-decoration: none; font-size: .85em; }
footer a[href="admin.html"]:hover { opacity: .8; }
html[data-theme="dark"] body.panel-ui, html[data-theme="dark"] body.admin-pro {
  --bg: #0d1918; --surface: #14262a; --sunken: #1b3334; --ink: #e7f2ef; --muted: #a8bfba; --line: #27423f;
  --lagoon: #4cb8ae; --lagoon-fg: #04201d; --lagoon-deep: #7fd6cc; --lagoon-soft: #173a38;
  --shadow: 0 0 0 1px rgba(255,255,255,0.05), 0 8px 24px -16px rgba(0,0,0,0.6);
  background: var(--bg); color: var(--ink);
}

#tab-caixa > #finMonthWrap.fin-stepper { display: grid; flex-direction: unset; margin-bottom: 0; gap: 8px; }

/* ===== Tema escuro: correções nos painéis ===== */
html[data-theme="dark"] body.panel-ui .btn-ghost,
html[data-theme="dark"] body.panel-ui .btn-outline,
html[data-theme="dark"] body.panel-ui .btn-warn,
html[data-theme="dark"] body.panel-ui .sair-link,
html[data-theme="dark"] body.panel-ui .info-btn,
html[data-theme="dark"] body.panel-ui .act-second .btn,
html[data-theme="dark"] body.panel-ui .act-danger .btn,
html[data-theme="dark"] body.panel-ui .chip-btn,
html[data-theme="dark"] body.panel-ui .theme-btn {
  background: var(--surface) !important; color: var(--ink) !important; border-color: var(--line) !important;
}
html[data-theme="dark"] body.panel-ui .btn-warn, html[data-theme="dark"] body.panel-ui .act-danger .btn { color: #ff9d90 !important; }
html[data-theme="dark"] body.panel-ui .act-second .btn { color: var(--lagoon-deep) !important; }
html[data-theme="dark"] body.panel-ui .btn-primary, html[data-theme="dark"] body.panel-ui .act-primary .btn { background: var(--lagoon) !important; color: var(--lagoon-fg) !important; }
html[data-theme="dark"] body.panel-ui .btn-green { background: #2e8f63 !important; color: #fff !important; }
html[data-theme="dark"] body.panel-ui .chip-btn.on { background: var(--lagoon) !important; color: var(--lagoon-fg) !important; }
html[data-theme="dark"] body.panel-ui #adminNav,
html[data-theme="dark"] body.admin-pro.shell .app-frame:has(#adminNav:not([hidden])) #adminNav { background: var(--surface) !important; border-color: var(--line) !important; }
html[data-theme="dark"] body.panel-ui header.nav { background: color-mix(in oklab, var(--bg) 92%, transparent); }
html[data-theme="dark"] body.panel-ui .fold, html[data-theme="dark"] body.panel-ui .card-row, html[data-theme="dark"] body.panel-ui .guest-card,
html[data-theme="dark"] body.panel-ui .res-card, html[data-theme="dark"] body.panel-ui .fin-pick, html[data-theme="dark"] body.panel-ui .thread,
html[data-theme="dark"] body.panel-ui .info-pop-card, html[data-theme="dark"] body.panel-ui .extra-list li { background: var(--surface); color: var(--ink); }
html[data-theme="dark"] body.panel-ui .fold > summary .fold-chev, html[data-theme="dark"] body.panel-ui .fold > summary::after { background: var(--sunken); color: var(--ink); }
html[data-theme="dark"] body.panel-ui .st-ok, html[data-theme="dark"] body.panel-ui b.st-ok { background: #14452f; color: #9df0c4; }
html[data-theme="dark"] body.panel-ui .st-wait { background: #4a3a14; color: #ffd98a; }
html[data-theme="dark"] body.panel-ui .st-exp { background: #4d2218; color: #ffb3a0; }
html[data-theme="dark"] body.panel-ui .st-off { background: #2a3836; color: #b9c9c5; }
html[data-theme="dark"] body.panel-ui .st-origin-site { background: #1f4a47; color: #bdeee8; }
html[data-theme="dark"] body.panel-ui .st-pill.st-alert { background: #4a2d12; color: #ffc98a; border-color: #6b4318; }
html[data-theme="dark"] body.panel-ui .st-pill.st-now { background: #1f4a47; color: #bdeee8; }
html[data-theme="dark"] body.panel-ui .res-card.is-live { background: #12332b; box-shadow: 0 0 0 2px #2e8f63 inset; }
html[data-theme="dark"] body.panel-ui .stay-when, html[data-theme="dark"] body.panel-ui .fax-ask, html[data-theme="dark"] body.panel-ui .next-bar,
html[data-theme="dark"] body.panel-ui .extra-form { background: var(--sunken); color: var(--ink); }
html[data-theme="dark"] body.panel-ui .stay-foot .sf-ok { background: #14452f; color: #9df0c4; }
html[data-theme="dark"] body.panel-ui .stay-foot .sf-warn, html[data-theme="dark"] body.panel-ui .fax-obs { background: #4a3a14; color: #ffd98a; }
html[data-theme="dark"] body.panel-ui .stay-foot .sf-dim { background: #2a3836; color: #b9c9c5; }
html[data-theme="dark"] body.panel-ui .stay-foot .sf-late { background: #4d2218; color: #ffb3a0; }
html[data-theme="dark"] body.panel-ui .stay-list .origin-airbnb { background: #3a1d20; color: #ffb3b3; }
html[data-theme="dark"] body.panel-ui .stay-list .origin-booking { background: #14263f; color: #a9c6f5; }
html[data-theme="dark"] body.panel-ui .fin-sum b.st-ok, html[data-theme="dark"] body.panel-ui .fin-sum .st-ok { background: #14452f; color: #9df0c4; }
html[data-theme="dark"] body.panel-ui .fin-sum .st-exp { background: #4d2218; color: #ffb3a0; }
html[data-theme="dark"] body.panel-ui .fin-dot.receita { background: #3ec489; }
html[data-theme="dark"] body.panel-ui .badge, html[data-theme="dark"] body.panel-ui [class*="badge"] { filter: none; }
#tab-caixa .tab-head-actions { display: none !important; }
html[data-theme="dark"] body.panel-ui [data-organize] { background: var(--surface) !important; color: var(--ink) !important; border: 1px solid var(--line) !important; }
#tab-caixa > [data-caixa-card="lancamento"] { background: transparent; box-shadow: none; padding: 0; border: 0; }
#tab-caixa > [data-caixa-card="lancamento"][open] > summary { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
#tab-caixa > [data-caixa-card="lancamento"] > form { background: var(--surface); padding: 14px; border-radius: 0 0 14px 14px; box-shadow: var(--shadow); }
.theme-float { top: auto; bottom: 14px; right: 12px; }
html[data-theme="dark"] body.panel-ui .stay-foot .sf-ok *, html[data-theme="dark"] body.panel-ui .stay-foot .sf-ok { color: #9df0c4; }
html[data-theme="dark"] body.panel-ui .st-pill { background: var(--sunken); color: var(--ink); }
html[data-theme="dark"] body.panel-ui .st-pill.st-ok { background: #14452f; color: #9df0c4; }
html[data-theme="dark"] body.panel-ui .st-pill.st-wait { background: #4a3a14; color: #ffd98a; }
html[data-theme="dark"] body.panel-ui .st-pill.st-exp { background: #4d2218; color: #ffb3a0; }
html[data-theme="dark"] body.panel-ui details > summary::after, html[data-theme="dark"] body.panel-ui .fold > summary::after { background: var(--sunken) !important; color: var(--lagoon-deep) !important; border-color: var(--lagoon) !important; }
html[data-theme="dark"] body.panel-ui .stay-done, html[data-theme="dark"] body.panel-ui [class*="stay-soon"], html[data-theme="dark"] body.panel-ui [class*="stay-refused"],
html[data-theme="dark"] body.panel-ui [class^="stay-"][class*="badge"], html[data-theme="dark"] body.panel-ui .stay-ok, html[data-theme="dark"] body.panel-ui .stay-live-tag,
html[data-theme="dark"] body.panel-ui .stay-status { background: var(--sunken) !important; color: var(--ink) !important; }
html[data-theme="dark"] body.panel-ui .stay-ok { background: #14452f !important; color: #9df0c4 !important; }
html[data-theme="dark"] body.panel-ui .stay-refused { background: #4d2218 !important; color: #ffb3a0 !important; }

/* 12.47 lista "ainda a receber" */
.rt-falta { border: 0; text-align: left; font: inherit; color: inherit; cursor: pointer; width: 100%; }
.rt-falta[aria-expanded="true"] { outline: 2px solid var(--lagoon); }
.falta-list { margin-top: 10px; }
.falta-h { display: flex; justify-content: space-between; gap: 8px; margin: 12px 0 6px; font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.falta-h b { color: var(--ink); }
.falta-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; gap: 8px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); }
.falta-row strong { display: block; }
.falta-row span { font-size: .82rem; color: var(--muted); }
.res-wa-inline { position: static; width: 38px; height: 38px; }
@media (max-width: 420px) { .falta-row { grid-template-columns: minmax(0, 1fr) auto; } .falta-row .pay-tag { justify-self: end; } }
.contrato-ok { color: #14683d; font-weight: 700; }
.contrato-wait { color: var(--muted); }
html[data-theme="dark"] .contrato-ok { color: #9df0c4; }
/* 12.56 botões só com ícone */
.icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; min-height: 40px; padding: 0 !important; border-radius: 10px; }
.icon-btn svg { width: 18px; height: 18px; fill: currentColor; }
.theme-float.icon-btn { width: 44px; height: 44px; }
/* 12.56 janela de confirmação */
.ask-overlay { position: fixed; inset: 0; z-index: 200; background: rgba(0, 0, 0, 0.45); display: flex; align-items: center; justify-content: center; padding: 16px; }
.ask-card { background: var(--surface); color: var(--ink); border-radius: 14px; padding: 20px; width: min(360px, 100%); box-shadow: var(--shadow); }
.ask-card h3 { margin: 0 0 8px; }
.ask-card p { margin: 0 0 16px; color: var(--muted); }
.ask-actions { display: flex; gap: 10px; justify-content: flex-end; }
.btn-mini { padding: 4px 10px; font-size: 0.8rem; min-height: 0; }
/* 12.60 a receber em dois */
.rt-money { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; }
.rt-money .rt-item { width: 100%; text-align: left; }
@media (max-width: 420px) { .rt-money { grid-template-columns: 1fr; } }
/* 12.60 Caixa */
.fin-filter { display: flex; gap: 8px; flex-wrap: wrap; margin: 12px 0 4px; }
.fin-filter .chip-btn.on { background: var(--lagoon, #0d5c63); color: #fff; border-color: transparent; }
#finList .fin-row { cursor: pointer; }
#finList .fin-row .fin-btns { display: none; }
#finList .fin-row.open .fin-btns { display: flex; }
.fin-geral { margin: 14px 0; font-size: 0.9rem; color: var(--muted); }
.fin-geral b { color: var(--ink); }
/* 12.60 ordem fixa do Caixa (o Caixa usa "order" para posicionar cada bloco) */
#tab-caixa > #finPend { order: 1; }
#tab-caixa > #finMonthWrap { order: 2; }
#tab-caixa > #finSum { order: 3; }
#tab-caixa > [data-caixa-card="lancamento"] { order: 4; }
#tab-caixa > .fin-filter { order: 5; }
#tab-caixa > .fin-tap-hint { order: 6; }
#tab-caixa > #finList { order: 7; }
#tab-caixa > #finSumAll { order: 8; }
#tab-caixa > [data-caixa-card="relatorio"] { order: 9; }
#tab-caixa > [data-caixa-card="repasses"] { order: 10; }
#tab-caixa > [data-caixa-card="fornecedor"] { order: 11; }
#tab-caixa > [data-caixa-card="pedido"] { order: 12; }
/* 12.61 blocos que saíram do Guia não têm setas de organizar */
#tab-equipe .fold-move, #tab-config .fold-move { display: none !important; }
#tab-config > h2 + .info-row, #tab-equipe > h2 + .info-row { margin-top: -4px; }

body.admin-pro #tab-equipe > h2:first-of-type,
body.admin-pro #tab-config > h2:first-of-type { display: none; }
/* 12.61 menu com 7 abas numa linha só */
.app-tabs.admin-tabs,
body.shell .app-tabs.admin-tabs,
body.admin-pro.shell .app-tabs.admin-tabs { grid-template-columns: repeat(7, minmax(0, 1fr)) !important; }
body.admin-pro .admin-tabs .tab span { font-size: 0.72rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }

/* 12.64 dados do CSV no editar reserva */
.rep-box { display: grid; gap: 10px; border: 1px solid var(--line, rgba(255,255,255,.12)); border-radius: 12px; padding: 12px; }
.rep-box-h { margin: 0; font-weight: 700; }
.res-edit input:disabled { opacity: .75; cursor: not-allowed; }

/* 12.65 avaliações do Airbnb e da Booking */
.rev-notas { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.rev-nota { display: inline-flex; align-items: center; gap: 6px; background: var(--surface); border-radius: 99px; padding: 6px 12px; box-shadow: var(--shadow); font-size: .9rem; color: var(--muted); font-weight: 600; }
.rev-nota b { color: var(--ink); font-size: 1rem; }
.rev-nota.is-ab b { color: #e0484e; }
.rev-nota.is-bk b { background: #003580; color: #fff; border-radius: 6px 6px 6px 0; padding: 1px 6px; }
.review .rev-bk b { background: #003580; color: #fff; border-radius: 6px 6px 6px 0; padding: 1px 7px; letter-spacing: 0; }
.review .rev-bk { letter-spacing: 0; color: var(--muted); }
.rev-tit { display: block; margin-bottom: .35rem; }
.rev-canal.is-ab { color: #e0484e; }
.rev-canal.is-bk { color: #3d6fd6; }
.rev-count { font-weight: 700; color: var(--muted); font-variant-numeric: tabular-nums; min-width: 4.5rem; text-align: center; }
.rev-all-row { text-align: center; margin: 14px 0 0; }
.rev-all { margin-top: 14px; }
.rev-filter { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 12px; }
.rev-f { border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 99px; padding: 8px 14px; font: inherit; font-weight: 600; cursor: pointer; }
.rev-f.on { background: var(--lagoon); border-color: var(--lagoon); color: #fff; }
.rev-list { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.rev-list .review { display: block; animation: none; }
.rev-list .review blockquote { font-size: 1.02rem; }
/* 12.65 Admin: avaliações */
.av-top { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.av-bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 10px 0; }
.av-row { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; margin: 8px 0; }
.av-row.off { opacity: .6; }
.av-head { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.av-head label.av-on { display: inline-flex; gap: 6px; align-items: center; font-weight: 700; text-transform: none; letter-spacing: 0; margin: 0; }
.av-head label.av-on input { width: auto; }
.av-txt { margin: 6px 0 0; font-size: .92rem; }
.av-edit { display: grid; gap: 8px; margin-top: 8px; }
#revAllBtn { gap: .35em; }
