@property --cg-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}

:root {
  color-scheme: dark;
  --cg-bg: #171a1f;
  --cg-top: #1d2127;
  --cg-side: #14171b;
  --cg-panel: #20242b;
  --cg-panel-2: #262b33;
  --cg-soft: #1b1f25;
  --cg-ink: #edf2f7;
  --cg-muted: #929ca8;
  --cg-line: #343b45;
  --cg-line-strong: #46505d;
  --cg-accent: #29d5d1;
  --cg-accent-ink: #071716;
  --cg-green: #57d68d;
  --cg-yellow: #f0bf57;
  --cg-red: #f07178;
  --cg-purple: #9d8cff;
  --cg-blue: #62aaf6;
  --cg-orange: #f39a62;
  --cg-shadow: 0 18px 55px rgba(0, 0, 0, .24);
  --cg-radius: 8px;
  --cg-radius-sm: 6px;
  font-family: Inter, "Segoe UI", system-ui, sans-serif;
}

:root[data-theme="light"] {
  color-scheme: light;
  --cg-bg: #f1f3f5;
  --cg-top: #ffffff;
  --cg-side: #e9edf0;
  --cg-panel: #ffffff;
  --cg-panel-2: #f7f8f9;
  --cg-soft: #e9edf0;
  --cg-ink: #161a1f;
  --cg-muted: #626d78;
  --cg-line: #d3d9df;
  --cg-line-strong: #b4bec7;
  --cg-accent: #087f83;
  --cg-accent-ink: #ffffff;
  --cg-green: #198754;
  --cg-yellow: #a86400;
  --cg-red: #c43b45;
  --cg-purple: #654fca;
  --cg-blue: #276fae;
  --cg-orange: #b95e22;
  --cg-shadow: 0 16px 45px rgba(42, 52, 64, .11);
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--cg-bg); }
body { margin: 0; min-height: 100vh; background: var(--cg-bg); color: var(--cg-ink); }
button, input, select, textarea { font: inherit; }
button, a, select, input, textarea { outline-color: var(--cg-accent); }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
svg { display: block; }

.cg-app { min-height: 100vh; background: var(--cg-bg); }
.cg-topbar {
  position: sticky;
  top: 0;
  z-index: 80;
  min-height: 64px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
  padding: 10px 18px;
  background: var(--cg-top);
  border-bottom: 1px solid var(--cg-line);
}
.cg-brand { display: flex; align-items: center; gap: 10px; min-width: max-content; }
.cg-brand-mark {
  width: 52px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border-radius: var(--cg-radius-sm);
  background: var(--cg-panel-2);
  color: var(--cg-accent-ink);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .07em;
}
.cg-brand-mark img { width: 100%; height: 100%; padding: 4px; object-fit: contain; }
.cg-brand-copy { display: grid; gap: 1px; letter-spacing: .08em; }
.cg-brand-copy strong { font-size: .78rem; }
.cg-brand-copy small { color: var(--cg-muted); font-size: .57rem; }
.cg-topnav { display: flex; align-items: center; justify-content: center; gap: 4px; min-width: 0; }
.cg-topnav .cg-navlink.cg-mobile-only { display: none; }
.cg-navlink, .cg-iconbtn, .cg-side-link, .cg-button, .cg-segment, .cg-chip-button {
  border: 0;
  cursor: pointer;
  transition: background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease;
}
.cg-navlink {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 11px;
  border-radius: var(--cg-radius-sm);
  color: var(--cg-muted);
  background: transparent;
  font-size: .78rem;
  white-space: nowrap;
}
.cg-navlink:hover, .cg-navlink.is-active { color: var(--cg-ink); background: var(--cg-panel-2); }
.cg-navlink.is-active { box-shadow: inset 0 -2px 0 var(--cg-accent); }
.cg-top-actions { display: flex; align-items: center; gap: 8px; }
.cg-iconbtn {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 1px solid var(--cg-line);
  border-radius: var(--cg-radius-sm);
  background: var(--cg-panel);
  color: var(--cg-ink);
}
.cg-iconbtn:hover { background: var(--cg-panel-2); border-color: var(--cg-line-strong); }
.cg-icon { width: 17px; height: 17px; display: inline-grid; place-items: center; }
.cg-icon svg { width: 17px; height: 17px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.cg-body { display: grid; grid-template-columns: 72px minmax(0, 1fr); min-height: calc(100vh - 64px); }
.cg-sidebar {
  position: sticky;
  top: 64px;
  height: calc(100vh - 64px);
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px 9px;
  background: var(--cg-side);
  border-right: 1px solid var(--cg-line);
}
.cg-side-link {
  min-height: 52px;
  display: grid;
  place-items: center;
  gap: 4px;
  padding: 7px 4px;
  border-radius: var(--cg-radius-sm);
  background: transparent;
  color: var(--cg-muted);
  font-size: .56rem;
}
.cg-side-link:hover, .cg-side-link.is-active { color: var(--cg-ink); background: var(--cg-panel); }
.cg-side-link.is-active { color: var(--cg-accent); }
.cg-main { min-width: 0; width: 100%; max-width: 1700px; margin: 0 auto; padding: 24px; }

.cg-global-notice {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  margin-bottom: 14px;
  padding: 12px 14px;
  border: 1px solid color-mix(in srgb, var(--cg-accent) 38%, var(--cg-line));
  border-radius: var(--cg-radius);
  background: color-mix(in srgb, var(--cg-accent) 7%, var(--cg-panel));
  color: var(--cg-ink);
  font-size: .73rem;
  line-height: 1.5;
}
.cg-global-notice strong { color: var(--cg-accent); font-size: .64rem; letter-spacing: .09em; text-transform: uppercase; }
.cg-global-notice span { white-space: pre-wrap; }
.cg-global-notice.is-attention {
  border-color: color-mix(in srgb, var(--cg-yellow) 42%, var(--cg-line));
  background: color-mix(in srgb, var(--cg-orange) 9%, var(--cg-panel));
}
.cg-global-notice.is-attention strong { color: color-mix(in srgb, var(--cg-yellow) 65%, var(--cg-orange)); }
.cg-global-notice.is-warning {
  border-color: color-mix(in srgb, var(--cg-red) 48%, var(--cg-line));
  background: color-mix(in srgb, var(--cg-red) 9%, var(--cg-panel));
}
.cg-global-notice.is-warning strong { color: var(--cg-red); }

.cg-pagehead { display: flex; justify-content: space-between; align-items: flex-end; gap: 18px; margin-bottom: 16px; }
.cg-eyebrow { margin-bottom: 6px; color: var(--cg-accent); font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; }
.cg-pagehead h1 { margin: 0; font-size: clamp(1.45rem, 3vw, 2rem); line-height: 1.15; letter-spacing: -.02em; }
.cg-pagehead p { margin: 7px 0 0; color: var(--cg-muted); font-size: .85rem; }
.cg-page-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.cg-live { display: inline-flex; align-items: center; gap: 7px; color: var(--cg-muted); font-size: .73rem; white-space: nowrap; }
.cg-live-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--cg-green); box-shadow: 0 0 0 4px color-mix(in srgb, var(--cg-green) 15%, transparent); }
.cg-button {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 8px 12px;
  border: 1px solid var(--cg-line);
  border-radius: var(--cg-radius-sm);
  background: var(--cg-panel);
  color: var(--cg-ink);
  font-size: .75rem;
  font-weight: 700;
}
.cg-button:hover { transform: translateY(-1px); background: var(--cg-panel-2); border-color: var(--cg-line-strong); }
.cg-button.cg-primary { background: var(--cg-accent); border-color: var(--cg-accent); color: var(--cg-accent-ink); }
.cg-button.cg-danger { color: var(--cg-red); border-color: color-mix(in srgb, var(--cg-red) 45%, var(--cg-line)); }
.cg-button.cg-warning { color: var(--cg-yellow); border-color: color-mix(in srgb, var(--cg-yellow) 45%, var(--cg-line)); }
.cg-button:disabled { opacity: .42; cursor: not-allowed; transform: none; }
.cg-button.is-spinning .cg-icon { animation: cg-spin .8s linear infinite; }
.cg-sync-line { min-height: 1rem; margin: -8px 0 12px; color: var(--cg-muted); text-align: right; font-size: .68rem; }

.cg-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 12px; }
.cg-metric {
  min-width: 0;
  padding: 15px;
  background: var(--cg-panel);
  border: 1px solid var(--cg-line);
  border-radius: var(--cg-radius);
}
.cg-metric-label { display: flex; align-items: center; justify-content: space-between; gap: 6px; color: var(--cg-muted); font-size: .68rem; letter-spacing: .03em; }
.cg-metric-value { display: block; margin: 7px 0 4px; font-size: 1.55rem; line-height: 1; font-weight: 800; }
.cg-metric-detail { display: block; overflow: hidden; color: var(--cg-muted); font-size: .66rem; white-space: nowrap; text-overflow: ellipsis; }
.cg-trend { color: var(--cg-green); font-size: .64rem; }

.cg-panel {
  background: var(--cg-soft);
  border: 1px solid var(--cg-line);
  border-radius: var(--cg-radius);
  box-shadow: var(--cg-shadow);
}
.cg-panel + .cg-panel { margin-top: 12px; }
.cg-panelhead { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 13px 14px; border-bottom: 1px solid var(--cg-line); }
.cg-panelhead h2, .cg-panelhead h3 { margin: 0; font-size: .88rem; }
.cg-panelhead p { margin: 3px 0 0; color: var(--cg-muted); font-size: .66rem; }
.cg-panelbody { padding: 14px; }
.cg-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.cg-toolgroup { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }

.cg-field { display: grid; gap: 5px; min-width: 0; }
.cg-field label, .cg-field-label { color: var(--cg-muted); font-size: .65rem; }
.cg-input, .cg-select, .cg-textarea {
  width: 100%;
  min-height: 36px;
  padding: 8px 10px;
  border: 1px solid var(--cg-line);
  border-radius: var(--cg-radius-sm);
  background: var(--cg-panel);
  color: var(--cg-ink);
  font-size: .75rem;
}
.cg-input::placeholder, .cg-textarea::placeholder { color: var(--cg-muted); }
.cg-input:focus, .cg-select:focus, .cg-textarea:focus { border-color: var(--cg-accent); }
.cg-textarea { min-height: 76px; resize: vertical; }
.cg-search { position: relative; min-width: min(320px, 100%); }
.cg-search .cg-icon { position: absolute; left: 10px; top: 9px; color: var(--cg-muted); pointer-events: none; }
.cg-search input { padding-left: 34px; }
.cg-formgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.cg-formgrid .cg-span-2 { grid-column: 1 / -1; }
.cg-check { display: inline-flex; align-items: center; gap: 6px; color: var(--cg-muted); font-size: .72rem; cursor: pointer; }
.cg-check input { accent-color: var(--cg-accent); }

.cg-segments { display: inline-flex; align-items: center; gap: 3px; padding: 3px; border: 1px solid var(--cg-line); border-radius: var(--cg-radius-sm); background: var(--cg-panel); }
.cg-segment { padding: 6px 9px; border-radius: 4px; background: transparent; color: var(--cg-muted); font-size: .68rem; }
.cg-segment:hover, .cg-segment.is-active { background: var(--cg-panel-2); color: var(--cg-ink); }
.cg-segment:disabled { opacity: .35; cursor: not-allowed; }

.cg-roomgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(245px, 1fr)); gap: 11px; }
.cg-room {
  --cg-state: var(--cg-green);
  --cg-angle: 0deg;
  position: relative;
  isolation: isolate;
  min-width: 0;
  padding: 14px;
  overflow: hidden;
  background: var(--cg-panel);
  border: 1px solid color-mix(in srgb, var(--cg-state) 40%, var(--cg-line));
  border-radius: var(--cg-radius);
  transition: transform .18s ease, background .18s ease;
}
.cg-room::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -1px;
  padding: 2px;
  border-radius: inherit;
  background: conic-gradient(from var(--cg-angle), var(--cg-state) 0deg 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  opacity: .76;
}
:root[data-theme="light"] .cg-room::before { padding: 3px; }
.cg-room:hover { transform: translateY(-2px); background: var(--cg-panel-2); }
.cg-room[data-state="sujo"] { --cg-state: var(--cg-red); }
.cg-room[data-state="a-limpar"] { --cg-state: var(--cg-yellow); }
.cg-room[data-state="requer-estadia"] { --cg-state: var(--cg-purple); }
.cg-room[data-state="estadia-feita"] { --cg-state: var(--cg-blue); }
.cg-room[data-state="dnd"] { --cg-state: var(--cg-muted); }
.cg-room[data-state="ocupado"] { --cg-state: var(--cg-blue); }
.cg-room[data-state="manutencao"] { --cg-state: var(--cg-orange); }
.cg-room[data-state="a-limpar"]::before {
  background: conic-gradient(from var(--cg-angle), transparent 0deg 34deg, var(--cg-state) 48deg 118deg, transparent 132deg 206deg, var(--cg-state) 220deg 300deg, transparent 315deg 360deg);
  animation: cg-border-spin 2.3s linear infinite;
  opacity: 1;
}
.cg-roomtop { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.cg-room-number { font-size: 1.15rem; font-weight: 800; }
.cg-room-actions { display: flex; align-items: center; gap: 6px; }
.cg-mini-select { width: auto; max-width: 142px; min-height: 30px; padding: 5px 27px 5px 8px; font-size: .64rem; color: var(--cg-state); border-color: color-mix(in srgb, var(--cg-state) 45%, var(--cg-line)); }
.cg-bag-select { width: 35px; min-height: 30px; padding: 0 5px; color: var(--cg-muted); }
.cg-room-titleline { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 10px; }
.cg-state-label { display: inline-flex; align-items: center; gap: 6px; color: var(--cg-state); font-size: .68rem; font-weight: 700; }
.cg-state-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.cg-room-tabs { margin-top: 10px; }
.cg-room-content { display: grid; gap: 8px; min-height: 94px; margin-top: 10px; }
.cg-guest { min-width: 0; overflow: hidden; color: var(--cg-ink); font-size: .78rem; font-weight: 700; white-space: nowrap; text-overflow: ellipsis; }
.cg-room-meta, .cg-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.cg-tag, .cg-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 24px;
  padding: 4px 7px;
  border: 1px solid var(--cg-line);
  border-radius: 999px;
  background: var(--cg-soft);
  color: var(--cg-muted);
  font-size: .6rem;
  white-space: nowrap;
}
.cg-tag.is-accent { color: var(--cg-accent); border-color: color-mix(in srgb, var(--cg-accent) 35%, var(--cg-line)); }
.cg-tag.is-danger { color: var(--cg-red); border-color: color-mix(in srgb, var(--cg-red) 35%, var(--cg-line)); }
.cg-note { min-height: 34px; padding: 8px; border: 1px solid var(--cg-line); border-radius: var(--cg-radius-sm); background: var(--cg-soft); color: var(--cg-muted); font-size: .66rem; line-height: 1.35; }
.cg-note strong { color: var(--cg-ink); }
.cg-room-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--cg-line); }
.cg-room-footer.is-single { justify-content: flex-end; }
.cg-textbtn { padding: 0; border: 0; background: transparent; color: var(--cg-accent); cursor: pointer; font-size: .68rem; font-weight: 700; }
.cg-bag-warning { color: var(--cg-yellow); font-size: .66rem; }

.cg-fb-card { min-height: 196px; }
.cg-fb-card { --cg-fb-inset: 14px; }
.cg-fb-card > .cg-roomtop { position: relative; isolation: isolate; }
.cg-fb-card[data-taken="true"] > .cg-roomtop::before,
.cg-fb-card[data-dirty-unserved="true"] > .cg-roomtop::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: calc(-1 * var(--cg-fb-inset)) calc(-1 * var(--cg-fb-inset)) -8px;
  background: var(--cg-state);
  opacity: .76;
  pointer-events: none;
}
.cg-fb-card[data-fb="check-out"] { --cg-state: var(--cg-red); }
.cg-fb-card[data-fb="desocupado"] { --cg-state: var(--cg-muted); }
.cg-fb-card[data-taken="true"] { --cg-state: var(--cg-green); }
.cg-fb-card[data-fb="desocupado"][data-taken="false"] { background: var(--cg-panel-2); }
.cg-fb-card[data-fb="desocupado"][data-taken="false"] .cg-button:disabled {
  background: var(--cg-muted);
  border-color: var(--cg-muted);
  color: var(--cg-panel);
  box-shadow: none;
  cursor: not-allowed;
}
.cg-fb-card[data-dirty-unserved="true"] { --cg-state: var(--cg-red); }
.cg-fb-card[data-dirty-unserved="true"] .cg-breakfast-mark { color: var(--cg-red); background: color-mix(in srgb, var(--cg-red) 13%, transparent); }
.cg-breakfast-mark { display: grid; place-items: center; width: 36px; height: 36px; margin: 8px 0; border-radius: 50%; background: color-mix(in srgb, var(--cg-state) 13%, transparent); color: var(--cg-state); font-size: 1.2rem; }
.cg-fb-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }

.cg-tablewrap { width: 100%; overflow: auto; }
.cg-table { width: 100%; border-collapse: collapse; min-width: 900px; font-size: .71rem; }
.cg-table th { position: sticky; top: 0; z-index: 2; padding: 9px 10px; border-bottom: 1px solid var(--cg-line-strong); background: var(--cg-soft); color: var(--cg-muted); text-align: left; font-size: .6rem; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.cg-table td { padding: 9px 10px; border-bottom: 1px solid var(--cg-line); vertical-align: top; }
.cg-table tbody tr:hover td { background: color-mix(in srgb, var(--cg-panel-2) 65%, transparent); }
.cg-table .cg-row-follow td { background: color-mix(in srgb, var(--cg-panel) 75%, transparent); }
.cg-table-input, .cg-table-select { width: 100%; min-width: 88px; padding: 6px 7px; border: 1px solid transparent; border-radius: 4px; background: transparent; color: var(--cg-ink); font-size: .69rem; }
.cg-table-input:hover, .cg-table-input:focus, .cg-table-select:hover, .cg-table-select:focus { border-color: var(--cg-line-strong); background: var(--cg-panel); }
.cg-table-input.cg-date { min-width: 105px; }
.cg-table-input.cg-small { min-width: 54px; width: 54px; }
.cg-row-room { font-weight: 800; font-size: .82rem; }
.cg-row-kind { color: var(--cg-muted); font-size: .62rem; }
.cg-night-table > .cg-night-room { --cg-night-room-bg: var(--cg-panel); }
.cg-night-table > .cg-night-room:nth-of-type(even) { --cg-night-room-bg: color-mix(in srgb, var(--cg-ink) 6%, var(--cg-panel)); }
.cg-night-table > .cg-night-room > tr > td { background: var(--cg-night-room-bg); }
.cg-night-table > .cg-night-room:hover > tr > td { background: color-mix(in srgb, var(--cg-accent) 4%, var(--cg-night-room-bg)); }
.cg-night-table > .cg-night-room + .cg-night-room > tr:first-child > td { border-top: 3px solid var(--cg-line-strong); }
.cg-night-table .cg-row-room { font-size: 1rem; font-variant-numeric: tabular-nums; }
.cg-notechips { display: flex; justify-content: flex-end; gap: 4px; }
.cg-notechip { min-width: 32px; height: 28px; padding: 0 6px; display: grid; place-items: center; border: 1px solid var(--cg-line); border-radius: 4px; background: var(--cg-panel); cursor: pointer; font-size: .58rem; font-weight: 700; }
.cg-notechip.is-empty { opacity: .34; filter: saturate(.45); }
.cg-notechip.is-empty:hover { opacity: .72; }
.cg-notechip.is-active { color: var(--cg-accent); border-color: color-mix(in srgb, var(--cg-accent) 45%, var(--cg-line)); background: color-mix(in srgb, var(--cg-accent) 8%, var(--cg-panel)); }
.cg-note-pop { position: absolute; z-index: 100; width: min(260px, calc(100vw - 30px)); padding: 10px; border: 1px solid var(--cg-line-strong); border-radius: var(--cg-radius); background: var(--cg-top); box-shadow: var(--cg-shadow); }
.cg-note-pop p { margin: 0 0 9px; color: var(--cg-muted); font-size: .7rem; line-height: 1.45; }
.cg-tax-editor { min-width: 155px; display: grid; grid-template-columns: auto 72px auto; align-items: center; gap: 5px; }
.cg-tax-editor > span { color: var(--cg-muted); }
.cg-tax-input { min-width: 68px !important; text-align: right; }

.cg-report-controls { margin-bottom: 12px; }
.cg-report-date { display: flex; align-items: center; grid-auto-flow: column; gap: 7px; }
.cg-report-date .cg-input { width: auto; min-width: 150px; }
.cg-report-sheet { padding: 20px; border: 1px solid var(--cg-line); border-radius: var(--cg-radius); background: var(--cg-panel); page: cgPortrait; }
.cg-report-sheet.is-housekeeping { page: cgLandscape; }
.cg-report-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid var(--cg-line); }
.cg-report-brand { display: flex; align-items: center; gap: 12px; }
.cg-report-brand img { width: 62px; height: 62px; object-fit: contain; }
.cg-report-logo-print { display: none; }
.cg-report-brand span { color: var(--cg-muted); font-size: .64rem; letter-spacing: .08em; text-transform: uppercase; }
.cg-report-brand h2 { margin: 2px 0 3px; font-size: 1.05rem; }
.cg-report-brand p { margin: 0; color: var(--cg-muted); font-size: .68rem; text-transform: capitalize; }
.cg-report-counts { display: grid; grid-template-columns: repeat(3, minmax(70px, 1fr)); gap: 8px; }
.cg-report-counts.is-two { grid-template-columns: repeat(2, minmax(82px, 1fr)); }
.cg-report-counts div { min-width: 74px; padding: 9px; border: 1px solid var(--cg-line); border-radius: var(--cg-radius-sm); text-align: center; }
.cg-report-counts strong, .cg-report-counts span { display: block; }
.cg-report-counts strong { font-size: 1.15rem; }
.cg-report-counts span { margin-top: 2px; color: var(--cg-muted); font-size: .58rem; text-transform: uppercase; }
.cg-report-table { min-width: 1050px; }
.cg-report-table { table-layout: fixed; }
.cg-report-table .cg-col-room { width: 5%; }
.cg-report-table .cg-col-movement { width: 12%; }
.cg-report-table .cg-col-name { width: 18%; }
.cg-report-table .cg-col-pax { width: 6%; text-align: center; }
.cg-report-table .cg-col-date { width: 11.5%; }
.cg-report-table .cg-col-tax { width: 10%; }
.cg-report-table .cg-col-note { width: auto; }
.cg-report-table .cg-note-cell { max-width: 240px; white-space: pre-wrap; }
.cg-hsk-report-table { min-width: 1400px; }
.cg-hsk-observations { min-width: 250px; }
.cg-hsk-observations > span { display: block; margin-bottom: 4px; }
.cg-movement { font-weight: 700; }
.cg-movement.saida { color: var(--cg-red); }
.cg-movement.estadia { color: var(--cg-blue); }
.cg-movement.chegada { color: var(--cg-green); }
.cg-report-sheet .cg-movement { display: inline-block; padding: 2px 5px; border: 2px solid #000; border-radius: 2px; color: #000; font-weight: 800; line-height: 1.1; white-space: nowrap; }
.cg-report-sheet .cg-movement.saida { background: #f5b9bc; color: #8f1f2a; }
.cg-report-sheet .cg-movement.estadia { background: #b9d7f5; color: #1f5f99; }
.cg-report-sheet .cg-movement.chegada { background: #b9dfc6; color: #176b3a; }
.cg-tax-status { display: inline-grid; gap: 2px; min-width: 84px; }
.cg-tax-status strong { color: var(--cg-ink); }
.cg-tax-status small { font-size: .62rem; font-weight: 700; }
.cg-tax-status.is-paid small { color: var(--cg-green); }
.cg-tax-status.is-pending small { color: var(--cg-orange); }

.cg-management-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 12px; align-items: start; }
.cg-management-aside { display: grid; gap: 12px; min-width: 0; }
.cg-management-aside > .cg-panel { min-width: 0; }
.cg-config-card .cg-panelbody { display: grid; gap: 10px; }
.cg-config-card .cg-field > small { color: var(--cg-muted); font-size: .6rem; line-height: 1.4; }
.cg-currency-field { position: relative; }
.cg-currency-field .cg-input { width: 100%; padding-right: 32px; }
.cg-currency-field > span { position: absolute; top: 50%; right: 11px; transform: translateY(-50%); color: var(--cg-muted); font-size: .72rem; font-weight: 700; pointer-events: none; }
.cg-kpi-section { display: grid; gap: 10px; }
.cg-kpi-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.cg-kpi-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cg-kpi { min-width: 0; padding: 12px; border: 1px solid var(--cg-line); border-radius: var(--cg-radius-sm); background: var(--cg-panel); }
.cg-kpi span { display: block; color: var(--cg-muted); font-size: .62rem; }
.cg-kpi strong { display: block; margin: 6px 0 4px; font-size: 1.25rem; }
.cg-section-label { margin: 4px 0 0; color: var(--cg-muted); font-size: .64rem; letter-spacing: .08em; text-transform: uppercase; }
.cg-charts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.cg-management-access { width: min(440px, 100%); margin: 8vh auto 0; }
.cg-management-access .cg-panelbody { display: grid; gap: 14px; }
.cg-management-access .cg-button { justify-self: start; }
.cg-chart { min-width: 0; padding: 14px; background: var(--cg-panel); border: 1px solid var(--cg-line); border-radius: var(--cg-radius); }
.cg-chart.wide { grid-column: 1 / -1; }
.cg-chart h3 { margin: 0; font-size: .76rem; }
.cg-chart p { margin: 3px 0 10px; color: var(--cg-muted); font-size: .62rem; }
.cg-chart svg { width: 100%; height: auto; overflow: visible; }
.cg-chart-grid { stroke: var(--cg-line); stroke-width: 1; }
.cg-chart-label { fill: var(--cg-muted); font-size: 9px; }
.cg-chart-axis-title { fill: var(--cg-muted); font-size: 10px; font-weight: 700; }
.cg-chart-bar { fill: var(--cg-accent); }
.cg-chart-line { fill: none; stroke: var(--cg-accent); stroke-width: 2; }
.cg-chart-area { fill: color-mix(in srgb, var(--cg-accent) 11%, transparent); }
.cg-announcement-editor { display: grid; gap: 14px; }
.cg-announcement-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.cg-announcement-heading p { margin-bottom: 0; }
.cg-announcement-settings { display: grid; gap: 12px; padding-top: 13px; border-top: 1px solid var(--cg-line); }
.cg-announcement-settings .cg-textarea { min-height: 96px; }
.cg-switch { position: relative; display: inline-flex; align-items: center; gap: 8px; color: var(--cg-muted); font-size: .66rem; cursor: pointer; }
.cg-switch input { position: absolute; opacity: 0; pointer-events: none; }
.cg-switch span { position: relative; width: 42px; height: 22px; border: 1px solid var(--cg-line-strong); border-radius: 999px; background: var(--cg-soft); transition: background .18s ease, border-color .18s ease; }
.cg-switch span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; border-radius: 50%; background: var(--cg-muted); transition: transform .18s ease, background .18s ease; }
.cg-switch input:checked + span { border-color: var(--cg-accent); background: color-mix(in srgb, var(--cg-accent) 22%, var(--cg-panel)); }
.cg-switch input:checked + span::after { transform: translateX(20px); background: var(--cg-accent); }
.cg-switch input:focus-visible + span { outline: 2px solid var(--cg-accent); outline-offset: 2px; }
.cg-switch b { min-width: 38px; color: var(--cg-ink); }
.cg-announcement-types { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; border: 0; }
.cg-announcement-types legend { width: 100%; margin-bottom: 1px; color: var(--cg-muted); font-size: .65rem; }
.cg-announcement-type { position: relative; cursor: pointer; }
.cg-announcement-type input { position: absolute; opacity: 0; pointer-events: none; }
.cg-announcement-type span { display: block; padding: 8px 11px; border: 1px solid var(--cg-line); border-radius: var(--cg-radius-sm); background: var(--cg-panel); color: var(--cg-muted); font-size: .7rem; font-weight: 700; }
.cg-announcement-type.is-info input:checked + span { border-color: var(--cg-accent); color: var(--cg-accent); background: color-mix(in srgb, var(--cg-accent) 8%, var(--cg-panel)); }
.cg-announcement-type.is-attention input:checked + span { border-color: var(--cg-yellow); color: color-mix(in srgb, var(--cg-yellow) 65%, var(--cg-orange)); background: color-mix(in srgb, var(--cg-orange) 9%, var(--cg-panel)); }
.cg-announcement-type.is-warning input:checked + span { border-color: var(--cg-red); color: var(--cg-red); background: color-mix(in srgb, var(--cg-red) 9%, var(--cg-panel)); }
.cg-announcement-type input:focus-visible + span { outline: 2px solid currentColor; outline-offset: 2px; }
.cg-log-list { display: grid; gap: 7px; max-height: 720px; overflow: auto; }
.cg-log-entry { display: grid; grid-template-columns: 7px minmax(0, 1fr); gap: 9px; align-items: start; padding: 9px; border: 1px solid var(--cg-line); border-radius: var(--cg-radius-sm); background: var(--cg-panel); }
.cg-log-dot { width: 7px; height: 7px; margin-top: 4px; border-radius: 50%; background: var(--cg-muted); }
.cg-log-entry[data-type="limpo"] .cg-log-dot { background: var(--cg-green); }
.cg-log-entry[data-type="sujo"] .cg-log-dot { background: var(--cg-red); }
.cg-log-entry[data-type="a-limpar"] .cg-log-dot { background: var(--cg-yellow); }
.cg-log-entry[data-type="ocupado"] .cg-log-dot { background: var(--cg-blue); }
.cg-log-entry p { margin: 0; font-size: .68rem; line-height: 1.4; }
.cg-log-entry time { display: block; margin-top: 3px; color: var(--cg-muted); font-size: .58rem; }

.cg-home-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .55fr); gap: 12px; margin-bottom: 12px; }
.cg-hero-copy { min-height: 230px; display: flex; flex-direction: column; justify-content: flex-end; padding: 24px; background: var(--cg-panel); border: 1px solid var(--cg-line); border-radius: var(--cg-radius); }
.cg-hero-copy .cg-eyebrow { margin-bottom: auto; }
.cg-hero-copy h1 { max-width: 760px; margin: 28px 0 8px; font-size: clamp(1.8rem, 5vw, 3.5rem); line-height: .98; letter-spacing: -.055em; }
.cg-hero-copy p { max-width: 680px; margin: 0; color: var(--cg-muted); font-size: .85rem; }
.cg-home-status { display: grid; gap: 10px; }
.cg-home-clock { display: grid; place-items: center; min-height: 145px; padding: 16px; border: 1px solid var(--cg-line); border-radius: var(--cg-radius); background: var(--cg-soft); text-align: center; }
.cg-home-clock strong { display: block; font-size: 2.3rem; letter-spacing: -.04em; }
.cg-home-clock span { color: var(--cg-muted); font-size: .7rem; }
.cg-demo-notice { padding: 13px; border: 1px solid color-mix(in srgb, var(--cg-accent) 38%, var(--cg-line)); border-radius: var(--cg-radius); background: color-mix(in srgb, var(--cg-accent) 7%, var(--cg-panel)); color: var(--cg-muted); font-size: .69rem; line-height: 1.45; }
.cg-demo-notice-action { width: 100%; display: grid; gap: 2px; text-align: left; cursor: pointer; }
.cg-demo-notice-action strong, .cg-demo-notice-action span { display: block; }
.cg-demo-notice-action strong { color: var(--cg-ink); }
.cg-demo-notice-action small { margin-top: 4px; color: var(--cg-accent); font-size: .58rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.cg-demo-notice-action:hover { border-color: var(--cg-accent); background: color-mix(in srgb, var(--cg-accent) 11%, var(--cg-panel)); }
.cg-attention-list { display: grid; gap: 8px; }
.cg-attention-list article { display: grid; grid-template-columns: minmax(95px, auto) minmax(0, 1fr); align-items: center; gap: 13px; padding: 11px; border: 1px solid var(--cg-line); border-radius: var(--cg-radius-sm); background: var(--cg-panel); }
.cg-attention-list article > div { display: grid; gap: 3px; }
.cg-attention-list article strong { color: var(--cg-yellow); font-size: .74rem; }
.cg-attention-list article small { color: var(--cg-muted); font-size: .62rem; }
.cg-module-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 10px; }
.cg-module { position: relative; min-height: 165px; grid-column: span 4; display: flex; flex-direction: column; padding: 16px; border: 1px solid var(--cg-line); border-radius: var(--cg-radius); background: var(--cg-panel); cursor: pointer; transition: transform .18s ease, border-color .18s ease, background .18s ease; }
.cg-module.wide { grid-column: span 6; }
.cg-module:hover { transform: translateY(-2px); border-color: var(--cg-accent); background: var(--cg-panel-2); }
.cg-module-icon { width: 38px; height: 38px; display: grid; place-items: center; margin-bottom: 18px; border-radius: var(--cg-radius-sm); color: var(--cg-accent); background: color-mix(in srgb, var(--cg-accent) 12%, transparent); }
.cg-module h2 { margin: 0 0 7px; font-size: 1.15rem; line-height: 1.15; letter-spacing: -.025em; }
.cg-module p { margin: 0 0 14px; color: var(--cg-muted); font-size: .7rem; line-height: 1.45; }
.cg-module .cg-tags { margin-top: auto; }

.cg-empty { padding: 36px 18px; color: var(--cg-muted); text-align: center; font-size: .76rem; }
.cg-divider { height: 1px; margin: 12px 0; background: var(--cg-line); }
.cg-muted { color: var(--cg-muted); }
.cg-danger-text { color: var(--cg-red); }
.cg-success-text { color: var(--cg-green); }
.cg-mono { font-family: "Cascadia Code", Consolas, monospace; }
.cg-hidden { display: none !important; }
.cg-copyright { margin-top: 26px; padding: 8px 0 2px; color: var(--cg-muted); font-size: .55rem; letter-spacing: .04em; text-align: center; }

.cg-modal-overlay { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 18px; background: rgba(4, 6, 8, .72); backdrop-filter: blur(8px); }
.cg-modal { width: min(720px, 100%); max-height: calc(100vh - 36px); overflow: auto; border: 1px solid var(--cg-line-strong); border-radius: var(--cg-radius); background: var(--cg-top); box-shadow: 0 30px 90px rgba(0,0,0,.45); }
.cg-modal.cg-modal-wide { width: min(980px, 100%); }
.cg-modalhead { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px; background: var(--cg-top); border-bottom: 1px solid var(--cg-line); }
.cg-modalhead h2 { margin: 0; font-size: 1rem; }
.cg-modal-subtitle { margin: 4px 0 0; color: var(--cg-muted); font-size: .68rem; }
.cg-modalbody { padding: 14px; }
.cg-modalfooter { position: sticky; bottom: 0; display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 12px 14px; background: var(--cg-top); border-top: 1px solid var(--cg-line); }
.cg-sync-summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; color: var(--cg-muted); font-size: .7rem; }
.cg-sync-list { display: grid; gap: 8px; }
.cg-sync-change { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; padding: 13px; border: 1px solid var(--cg-line); border-radius: var(--cg-radius-sm); background: var(--cg-panel); cursor: pointer; }
.cg-sync-change:has(input:checked) { border-color: color-mix(in srgb, var(--cg-accent) 40%, var(--cg-line)); background: color-mix(in srgb, var(--cg-accent) 5%, var(--cg-panel)); }
.cg-sync-change.has-warning:has(input:checked) { border-color: color-mix(in srgb, var(--cg-yellow) 45%, var(--cg-line)); }
.cg-sync-change > input { margin-top: 3px; accent-color: var(--cg-accent); }
.cg-sync-copy { min-width: 0; display: grid; gap: 5px; }
.cg-sync-kicker { color: var(--cg-muted); font-size: .58rem; letter-spacing: .08em; text-transform: uppercase; }
.cg-sync-copy strong { font-size: .76rem; }
.cg-diff-old, .cg-diff-new, .cg-diff-warning { font-size: .7rem; line-height: 1.35; }
.cg-diff-old { color: var(--cg-red); }
.cg-diff-new { color: var(--cg-green); }
.cg-diff-warning { padding-top: 3px; color: var(--cg-yellow); }
.cg-hold-help { margin-right: auto; color: var(--cg-muted); font-size: .64rem; }
.cg-hold-button { position: relative; isolation: isolate; overflow: hidden; min-width: 116px; }
.cg-hold-fill { position: absolute; z-index: -1; inset: 0 auto 0 0; width: 0; background: #343a40; }
.cg-hold-button.is-holding .cg-hold-fill { width: 100%; transition: width 1500ms linear; }
.cg-hold-button.is-holding { color: #fff; border-color: #343a40; }
.cg-hold-button.is-confirmed { background: var(--cg-green); border-color: var(--cg-green); }
.cg-hold-label { position: relative; z-index: 1; }
.cg-sync-empty { min-height: 150px; display: grid; place-content: center; gap: 5px; text-align: center; }
.cg-sync-empty span { color: var(--cg-muted); font-size: .7rem; }
.cg-print-summary { display: flex; align-items: center; gap: 14px; padding: 12px; border: 1px solid var(--cg-line); border-radius: var(--cg-radius-sm); background: var(--cg-panel); }
.cg-print-summary img { width: 68px; height: 68px; object-fit: contain; }
.cg-print-summary div { display: grid; gap: 4px; }
.cg-print-summary span, .cg-print-summary small { color: var(--cg-muted); font-size: .68rem; }

#toast-root { position: fixed; z-index: 300; right: 18px; bottom: 18px; display: grid; gap: 8px; width: min(360px, calc(100vw - 36px)); }
.cg-toast { padding: 11px 13px; border: 1px solid var(--cg-line-strong); border-left: 3px solid var(--cg-accent); border-radius: var(--cg-radius-sm); background: var(--cg-top); color: var(--cg-ink); box-shadow: var(--cg-shadow); font-size: .72rem; animation: cg-toast-in .2s ease-out; }
.cg-toast.is-error { border-left-color: var(--cg-red); }

@keyframes cg-border-spin { to { --cg-angle: 360deg; } }
@keyframes cg-spin { to { transform: rotate(360deg); } }
@keyframes cg-toast-in { from { opacity: 0; transform: translateY(7px); } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
}

@media (max-width: 1180px) {
  .cg-topnav .cg-navlink:nth-last-child(-n+2) { display: none; }
  .cg-management-layout { grid-template-columns: 1fr; }
  .cg-management-layout > aside { order: 2; }
  .cg-log-list { max-height: 360px; }
  .cg-kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cg-app:has(.cg-main-fb) .cg-body { min-height: 0; }
  .cg-app:has(.cg-main-fb) .cg-sidebar { height: auto; min-height: 0; }
  .cg-main-fb { padding: 12px; }
  .cg-main-fb .cg-global-notice { margin-bottom: 8px; padding-block: 8px; }
  .cg-fb-dashboard .cg-pagehead { margin-bottom: 8px; }
  .cg-fb-dashboard .cg-pagehead h1 { font-size: 1.35rem; }
  .cg-fb-dashboard .cg-pagehead p { display: none; }
  .cg-fb-dashboard .cg-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-bottom: 8px; }
  .cg-fb-dashboard .cg-metric { padding: 8px; }
  .cg-fb-dashboard .cg-metric-value { margin: 4px 0 0; font-size: 1.15rem; }
  .cg-fb-dashboard .cg-metric-detail { display: none; }
  .cg-fb-panel .cg-panelhead { display: none; }
  .cg-fb-panel .cg-panelbody { padding: 7px; }
  .cg-fb-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
  .cg-fb-card { min-height: 0; padding: 8px; --cg-fb-inset: 8px; }
  .cg-fb-card .cg-room-number { font-size: .84rem; }
  .cg-fb-card .cg-tag { min-height: 18px; padding: 2px 5px; font-size: .52rem; }
  .cg-fb-card .cg-breakfast-mark { width: 22px; height: 22px; margin: 4px 0; font-size: .9rem; }
  .cg-fb-card .cg-guest { font-size: .64rem; }
  .cg-fb-card .cg-room-meta { gap: 3px; margin-top: 3px; }
  .cg-fb-card .cg-note { min-height: 0; margin-top: 3px; padding: 4px; overflow: hidden; font-size: .54rem; white-space: nowrap; text-overflow: ellipsis; }
  .cg-fb-card .cg-room-footer { margin-top: 5px; padding-top: 5px; }
  .cg-fb-card .cg-state-label { display: none; }
  .cg-fb-card .cg-button { width: 100%; min-height: 26px; padding: 4px 6px; font-size: .58rem; }
}

@media (max-width: 820px) {
  .cg-topbar { grid-template-columns: 1fr auto; }
  .cg-topnav { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; overflow-x: auto; padding-bottom: 2px; }
  .cg-topnav .cg-navlink { display: inline-flex; }
  .cg-topnav .cg-navlink.cg-mobile-only { display: inline-flex; }
  .cg-body { grid-template-columns: 1fr; }
  .cg-sidebar { display: none; }
  .cg-main { padding: 16px; }
  .cg-pagehead { align-items: flex-start; flex-direction: column; }
  .cg-page-actions { width: 100%; justify-content: flex-start; }
  .cg-sync-line { text-align: left; }
  .cg-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cg-home-hero { grid-template-columns: 1fr; }
  .cg-module { grid-column: span 6; }
  .cg-formgrid { grid-template-columns: 1fr; }
  .cg-formgrid .cg-span-2 { grid-column: auto; }
  .cg-charts { grid-template-columns: 1fr; }
  .cg-chart.wide { grid-column: auto; }
  .cg-report-head { align-items: flex-start; flex-direction: column; }
  .cg-report-counts { width: 100%; }
}

@media (max-width: 540px) {
  .cg-brand-copy { display: none; }
  .cg-topbar { gap: 10px; padding-inline: 12px; }
  .cg-topnav { gap: 2px; }
  .cg-navlink { padding: 8px; }
  .cg-navlink .cg-icon { display: none; }
  .cg-main { padding: 12px; }
  .cg-pagehead h1 { font-size: 1.45rem; }
  .cg-page-actions .cg-button { flex: 1 1 auto; }
  .cg-live { display: none; }
  .cg-metrics { grid-template-columns: 1fr 1fr; }
  .cg-metric { padding: 12px; }
  .cg-metric-value { font-size: 1.25rem; }
  .cg-roomgrid { grid-template-columns: 1fr; }
  .cg-fb-dashboard .cg-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cg-fb-grid { grid-template-columns: 1fr; }
  .cg-panelhead, .cg-toolbar { align-items: flex-start; flex-direction: column; }
  .cg-toolgroup, .cg-search { width: 100%; }
  .cg-toolgroup .cg-button, .cg-toolgroup .cg-select { flex: 1 1 auto; }
  .cg-module-grid { grid-template-columns: 1fr; }
  .cg-module, .cg-module.wide { grid-column: auto; }
  .cg-kpi-grid, .cg-kpi-grid.three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cg-modal-overlay { padding: 8px; }
  .cg-modal { max-height: calc(100vh - 16px); }
  .cg-modalfooter { flex-wrap: wrap; }
  .cg-hold-help { width: 100%; margin-right: 0; }
  .cg-sync-summary { align-items: flex-start; flex-direction: column; }
  .cg-report-brand img { width: 48px; height: 48px; }
}

@page cgPortrait { size: A4 portrait; margin: 7mm; }
@page cgLandscape { size: A4 landscape; margin: 7mm; }

@media print {
  :root, :root[data-theme="light"] { color-scheme: light; --cg-bg:#fff; --cg-panel:#fff; --cg-soft:#fff; --cg-ink:#000; --cg-muted:#000; --cg-line:#000; --cg-line-strong:#000; }
  html, body, .cg-app, .cg-body { min-height: 0; height: auto; }
  body:has(.cg-report-sheet) { page: cgPortrait; }
  body:has(.cg-report-sheet.is-housekeeping) { page: cgLandscape; }
  .cg-topbar, .cg-sidebar, .cg-pagehead, .cg-page-actions, .cg-sync-line, .cg-toolbar, .cg-report-controls, .cg-global-notice, .cg-copyright, #toast-root { display: none !important; }
  .cg-body { display: block; }
  .cg-main { max-width: none; padding: 0; }
  .cg-panel { border: 0; box-shadow: none; }
  .cg-panelhead { padding-inline: 0; }
  .cg-panelbody { padding: 0; }
  .cg-report-sheet { padding: 0; border: 0; border-radius: 0; background: #fff; zoom: .9; break-inside: avoid; page-break-inside: avoid; }
  .cg-report-sheet.is-housekeeping { zoom: .88; }
  .cg-report-sheet, .cg-report-sheet * { color: #000 !important; border-color: #000 !important; text-shadow: none !important; box-shadow: none !important; }
  .cg-report-sheet .cg-tax-status.is-paid small { color: #198754 !important; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .cg-report-sheet .cg-tax-status.is-pending small { color: #b45309 !important; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .cg-report-head { flex-direction: row; align-items: center; margin-bottom: 2.5mm; padding-bottom: 2mm; border-bottom: 1.5pt solid #000; }
  .cg-report-brand { gap: 7px; }
  .cg-report-brand img { width: 16mm; height: 20mm; }
  .cg-report-logo-screen { display: none; }
  .cg-report-logo-print { display: block; }
  .cg-report-brand h2 { margin-block: 1px; font-size: 9pt; }
  .cg-report-brand span, .cg-report-brand p { font-size: 6.5pt; }
  .cg-report-counts { width: auto; flex-shrink: 0; gap: 4px; }
  .cg-report-counts div { min-width: 58px; padding: 4px; border: 1.5pt solid #000; border-radius: 2px; }
  .cg-report-counts strong { font-size: 9pt; }
  .cg-report-counts span { font-size: 6.5pt; font-weight: 700; }
  .cg-tablewrap { overflow: visible; }
  .cg-table { min-width: 0; font-size: 7.2pt; line-height: 1.12; }
  .cg-table th { position: static; padding: 1.25mm 1.35mm; color:#000; background:#fff; font-size: 6.2pt; line-height: 1; }
  .cg-table td { padding: 1.25mm 1.35mm; line-height: 1.12; }
  .cg-table thead { display: table-header-group; }
  .cg-table tr { break-inside: avoid; page-break-inside: avoid; }
  .cg-report-table { border: 0; border-block: 1.5pt solid #000; }
  .cg-report-table th, .cg-report-table td { border: 0; border-bottom: 1px solid #000; overflow-wrap: anywhere; }
  .cg-report-table th { border-bottom-width: 1.5pt; font-weight: 800; }
  .cg-front-office-report-table tbody tr.cg-report-group-end td,
  .cg-report-table tbody tr.cg-fb-stay-end td { border-bottom: 3px double #000; }
  .cg-report-table tbody tr:hover td { background: #fff; }
  .cg-report-sheet .cg-movement { border-width: 1.5pt; padding: .45mm .8mm; font-size: 6.3pt; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .cg-report-sheet .cg-movement.saida { color: #8f1f2a !important; background: #f5b9bc !important; }
  .cg-report-sheet .cg-movement.estadia { color: #1f5f99 !important; background: #b9d7f5 !important; }
  .cg-report-sheet .cg-movement.chegada { color: #176b3a !important; background: #b9dfc6 !important; }
  .cg-hsk-report-table { min-width: 0; font-size: 6.5pt; }
  .cg-hsk-report-table th { white-space: normal; }
  .cg-hsk-report-table th:first-child { width: 5%; white-space: nowrap; }
  .cg-hsk-report-table th:nth-child(2), .cg-hsk-report-table th:nth-child(7) { width: 15.5%; }
  .cg-hsk-report-table th:nth-child(3), .cg-hsk-report-table th:nth-child(4), .cg-hsk-report-table th:nth-child(8), .cg-hsk-report-table th:nth-child(9) { width: 8%; }
  .cg-hsk-report-table th:nth-child(5), .cg-hsk-report-table th:nth-child(6) { width: 7%; }
  .cg-hsk-report-table th:last-child { width: 18%; }
  .cg-hsk-observations { min-width: 0; }
  .cg-report-table .cg-col-room { width: 5%; }
  .cg-report-table .cg-col-movement { width: 12%; }
  .cg-report-table .cg-col-name { width: 19%; }
  .cg-report-table .cg-col-pax { width: 5%; }
  .cg-report-table .cg-col-date { width: 11%; }
  .cg-report-table .cg-col-tax { width: 11%; }
  .cg-tax-status { min-width: 0; }
  .cg-tax-status small { font-size: 5.8pt; }
}

/* Helpdesk · atendimento da entrada principal */
.cg-helpdesk-entry {
  width: 100%;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 13px;
  margin: 0 0 12px;
  padding: 13px 15px;
  border: 1px solid color-mix(in srgb, var(--cg-accent) 42%, var(--cg-line));
  border-radius: var(--cg-radius);
  color: var(--cg-ink);
  background: linear-gradient(100deg, color-mix(in srgb, var(--cg-accent) 9%, var(--cg-panel)), var(--cg-panel));
  text-align: left;
  cursor: pointer;
}
.cg-helpdesk-entry > span:first-child { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 6px; color: var(--cg-accent); background: color-mix(in srgb, var(--cg-accent) 10%, transparent); }
.cg-helpdesk-entry > span:nth-child(2) { display: grid; gap: 3px; }
.cg-helpdesk-entry strong { font-size: .82rem; }
.cg-helpdesk-entry small { color: var(--cg-muted); font-size: .66rem; }
.cg-helpdesk-entry b { color: var(--cg-accent); font-size: .62rem; letter-spacing: .12em; }
.cg-helpdesk-entry:hover { border-color: var(--cg-accent); background: color-mix(in srgb, var(--cg-accent) 12%, var(--cg-panel)); }

.cg-helpdesk-grid { display: grid; grid-template-columns: minmax(0, 1.58fr) minmax(330px, .72fr); gap: 12px; align-items: start; }
.cg-helpdesk-camera, .cg-helpdesk-controls { border: 1px solid var(--cg-line); border-radius: var(--cg-radius); background: var(--cg-soft); box-shadow: var(--cg-shadow); }
.cg-helpdesk-camera { min-width: 0; padding: 14px; }
.cg-helpdesk-cardhead { min-height: 46px; display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.cg-helpdesk-cardhead > div:first-child { display: grid; gap: 4px; }
.cg-helpdesk-cardhead > div:first-child > span, .cg-helpdesk-sectionhead > span, .cg-modal-eyebrow { color: var(--cg-accent); font-size: .62rem; font-weight: 700; letter-spacing: .13em; }
.cg-helpdesk-cardhead h2, .cg-helpdesk-sectionhead h2 { margin: 0; font-size: .88rem; }
.cg-helpdesk-live { display: inline-flex; align-items: center; gap: 7px; padding: 6px 9px; border: 1px solid var(--cg-line); border-radius: var(--cg-radius-sm); color: var(--cg-muted); font-size: .61rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.cg-helpdesk-live i { width: 6px; height: 6px; border-radius: 50%; background: var(--cg-yellow); }
.cg-helpdesk-live[data-status="live"] { border-color: color-mix(in srgb, var(--cg-red) 38%, var(--cg-line)); color: var(--cg-red); background: color-mix(in srgb, var(--cg-red) 7%, transparent); }
.cg-helpdesk-live[data-status="live"] i { background: var(--cg-red); box-shadow: 0 0 0 5px color-mix(in srgb, var(--cg-red) 12%, transparent); animation: cg-live-breathe 1.8s ease-in-out infinite; }

.cg-helpdesk-video { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border: 1px solid var(--cg-line); border-radius: var(--cg-radius-sm); background: #0e1115; }
.cg-helpdesk-video video { width: 100%; height: 100%; display: block; object-fit: cover; background: #0e1115; }
.cg-helpdesk-video audio { display: none; }
.cg-helpdesk-placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; padding: 20px; color: var(--cg-ink); background: radial-gradient(circle at 50% 42%, var(--cg-panel-2), #111418 72%); text-align: center; }
.cg-helpdesk-placeholder[hidden] { display: none; }
.cg-helpdesk-placeholder strong { font-size: .82rem; }
.cg-helpdesk-placeholder small { max-width: 390px; color: var(--cg-muted); font-size: .65rem; line-height: 1.55; }
.cg-camera-loader { position: relative; width: 58px; height: 58px; margin-bottom: 5px; border: 1px solid color-mix(in srgb, var(--cg-accent) 24%, transparent); border-radius: 50%; }
.cg-camera-loader::before { content: ''; position: absolute; inset: 8px; border: 2px solid transparent; border-top-color: var(--cg-accent); border-radius: 50%; animation: cg-helpdesk-spin 1.5s linear infinite; }
.cg-camera-loader::after { content: ''; position: absolute; inset: 21px; border-radius: 50%; background: var(--cg-accent); box-shadow: 0 0 20px color-mix(in srgb, var(--cg-accent) 50%, transparent); }
.cg-video-corners { position: absolute; inset: 12px; pointer-events: none; }
.cg-video-corners i { position: absolute; width: 22px; height: 22px; border-color: color-mix(in srgb, var(--cg-accent) 43%, transparent); border-style: solid; }
.cg-video-corners i:nth-child(1) { left: 0; top: 0; border-width: 1px 0 0 1px; }
.cg-video-corners i:nth-child(2) { right: 0; top: 0; border-width: 1px 1px 0 0; }
.cg-video-corners i:nth-child(3) { right: 0; bottom: 0; border-width: 0 1px 1px 0; }
.cg-video-corners i:nth-child(4) { left: 0; bottom: 0; border-width: 0 0 1px 1px; }

.cg-helpdesk-camerafoot { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 3px 0; }
.cg-request-state { display: flex; align-items: center; gap: 11px; min-width: 0; }
.cg-request-state > i { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: var(--cg-muted); }
.cg-request-state > i.active { background: var(--cg-red); box-shadow: 0 0 0 7px color-mix(in srgb, var(--cg-red) 11%, transparent); animation: cg-live-breathe 1.7s infinite; }
.cg-request-state div, .cg-viewer-state { display: grid; gap: 3px; }
.cg-request-state strong, .cg-viewer-state strong { font-size: .68rem; }
.cg-request-state small, .cg-viewer-state small { color: var(--cg-muted); font-size: .59rem; }
.cg-viewer-state { flex: 0 0 auto; text-align: right; }

.cg-helpdesk-controls { padding: 14px; }
.cg-helpdesk-section + .cg-helpdesk-section { margin-top: 17px; padding-top: 17px; border-top: 1px solid var(--cg-line); }
.cg-helpdesk-sectionhead { display: grid; gap: 5px; margin-bottom: 12px; }
.cg-helpdesk-sectionhead p { margin: 0; color: var(--cg-muted); font-size: .62rem; line-height: 1.5; }
.cg-preset-list { display: grid; gap: 7px; }
.cg-preset-list button { width: 100%; min-height: 56px; display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 10px; padding: 9px; border: 1px solid var(--cg-line); border-radius: var(--cg-radius-sm); color: var(--cg-ink); background: var(--cg-panel); text-align: left; cursor: pointer; }
.cg-preset-list button:hover { border-color: var(--cg-line-strong); background: var(--cg-panel-2); transform: translateY(-1px); }
.cg-preset-list button > b { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 6px; color: var(--cg-accent); background: color-mix(in srgb, var(--cg-accent) 8%, transparent); font-size: .78rem; }
.cg-preset-list button > span { display: grid; gap: 3px; }
.cg-preset-list strong { font-size: .69rem; }
.cg-preset-list small { color: var(--cg-muted); font-size: .57rem; }

.cg-custom-message, .cg-voice-button { width: 100%; display: grid; align-items: center; gap: 10px; margin-top: 8px; padding: 11px; border-radius: var(--cg-radius-sm); text-align: left; cursor: pointer; }
.cg-custom-message { grid-template-columns: 26px 1fr auto; border: 1px solid color-mix(in srgb, var(--cg-accent) 38%, var(--cg-line)); color: var(--cg-ink); background: color-mix(in srgb, var(--cg-accent) 4%, var(--cg-panel)); }
.cg-custom-message > .cg-icon { color: var(--cg-accent); }
.cg-custom-message > span, .cg-voice-button > span { display: grid; gap: 3px; }
.cg-custom-message strong, .cg-voice-button strong { font-size: .69rem; }
.cg-custom-message small, .cg-voice-button small { color: var(--cg-muted); font-size: .56rem; }
.cg-custom-message > b { color: var(--cg-accent); font-size: .55rem; letter-spacing: .11em; }
.cg-custom-message:hover { border-color: var(--cg-accent); }

.cg-voice-button { grid-template-columns: 30px 1fr auto; border: 1px solid var(--cg-accent); color: var(--cg-accent-ink); background: var(--cg-accent); }
.cg-voice-button small { color: color-mix(in srgb, var(--cg-accent-ink) 64%, transparent); }
.cg-voice-button > b { font-size: .6rem; letter-spacing: .08em; }
.cg-voice-button.active { border-color: color-mix(in srgb, var(--cg-red) 65%, var(--cg-line)); color: #fff; background: var(--cg-red); }
.cg-voice-button.active small { color: rgba(255,255,255,.72); }
.cg-voice-button.busy { border-color: var(--cg-line); color: var(--cg-muted); background: var(--cg-panel); cursor: not-allowed; }
.cg-headphone-note { margin: 8px 2px 0; color: var(--cg-muted); font-size: .57rem; line-height: 1.45; }
.cg-helpdesk-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; padding-top: 13px; border-top: 1px solid var(--cg-line); }
.cg-helpdesk-actions span { color: var(--cg-muted); font-size: .58rem; }
.cg-helpdesk-actions button { flex: 0 0 auto; padding: 8px 10px; border: 1px solid var(--cg-line); border-radius: var(--cg-radius-sm); color: var(--cg-muted); background: transparent; font-size: .59rem; cursor: pointer; }
.cg-helpdesk-actions button:hover { color: var(--cg-red); border-color: color-mix(in srgb, var(--cg-red) 45%, var(--cg-line)); }

.cg-helpdesk-label { display: grid; gap: 7px; }
.cg-helpdesk-label > span { color: var(--cg-accent); font-size: .62rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.cg-helpdesk-label .cg-textarea { min-height: 122px; resize: vertical; }
.cg-translation-state { display: flex; align-items: center; gap: 7px; margin-top: 10px; color: var(--cg-muted); font-size: .64rem; }
.cg-translation-state i { width: 7px; height: 7px; border-radius: 50%; background: var(--cg-accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--cg-accent) 10%, transparent); }
.cg-form-error { min-height: 1.2em; margin: 9px 0 0; color: var(--cg-red); font-size: .64rem; }

@keyframes cg-helpdesk-spin { to { transform: rotate(360deg); } }
@keyframes cg-live-breathe { 50% { opacity: .48; transform: scale(.92); } }

@media (max-width: 1060px) {
  .cg-helpdesk-grid { grid-template-columns: 1fr; }
  .cg-helpdesk-video { width: 100%; aspect-ratio: 16 / 9; }
}

@media (max-width: 620px) {
  .cg-helpdesk-camerafoot, .cg-helpdesk-actions { align-items: flex-start; flex-direction: column; }
  .cg-viewer-state { text-align: left; }
  .cg-helpdesk-video { aspect-ratio: 16 / 9; }
  .cg-helpdesk-entry { grid-template-columns: auto 1fr; }
  .cg-helpdesk-entry > b { display: none; }
}
/* Estado real da sincronização, sem texto permanente. */
.cg-live[data-connection="pending"] .cg-live-dot { background: #d69b36; box-shadow: 0 0 0 4px #d69b3626; }
.cg-live[data-connection="error"] .cg-live-dot { background: #d75b5b; box-shadow: 0 0 0 4px #d75b5b26; }
