/* Identidade visual partilhada do Guest Portal SOL · v3.9.15. */
:root {
  color-scheme: light;
  --sol-background-base: #f6f0e8;
  --sol-ink: #2b2522;
  --sol-muted: #746d69;
  --sol-surface: rgba(255, 255, 255, 0.94);
  --sol-hairline: rgba(91, 69, 56, 0.10);
  --sol-card-shadow: 0 24px 64px rgba(72, 53, 43, 0.12);
}

html {
  min-height: 100%;
  background: var(--sol-background-base);
  text-rendering: optimizeLegibility;
}

body {
  position: relative;
  isolation: isolate;
  min-height: 100vh;
  min-height: 100dvh;
  background: transparent !important;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at 14% 9%, rgba(255, 220, 121, 0.34), transparent 31%),
    radial-gradient(circle at 87% 16%, rgba(229, 190, 205, 0.22), transparent 30%),
    linear-gradient(145deg, #fffaf2 0%, #f7f0e7 48%, #f2e8e7 100%);
}

/* O fundo global substitui os orbes locais antigos para não haver reinícios entre páginas. */
.background-orb {
  display: none !important;
}

html body,
button,
input,
select,
textarea {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-synthesis: none;
}

body {
  color: var(--sol-ink);
}

h1,
h2,
h3 {
  letter-spacing: -0.018em;
  text-wrap: balance;
}

.card {
  -webkit-backdrop-filter: blur(16px) saturate(1.04);
  backdrop-filter: blur(16px) saturate(1.04);
  border-color: rgba(255, 255, 255, 0.82) !important;
  box-shadow: var(--sol-card-shadow) !important;
}

.sol-checkout-option,
.sol-checkout-reminder {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.footer,
.data-status {
  color: var(--sol-muted) !important;
}

.footer {
  letter-spacing: 0.015em;
}

.access-button .button-description,
.guide-button span {
  opacity: 0.78 !important;
  font-weight: 550 !important;
}

:where(.access-button, .guide-button, .nav-button, .scene-button, .back-button) {
  border: 1px solid var(--sol-hairline) !important;
  -webkit-font-smoothing: antialiased;
}

.scene-button.ocean {
  background: linear-gradient(135deg, #174e87, #08779b);
}

.scene-button.sunset {
  background: linear-gradient(135deg, #bd4f2f, #a43d68);
}

.scene-button span {
  opacity: 0.92 !important;
}

.parking-choice-primary {
  background: linear-gradient(135deg, #89c7f5, #5aa9e6);
  color: #193a56;
}

.access-button.portal {
  background: linear-gradient(135deg, #ffd6ec, #ffb8da);
}

/* Indicação discreta de primeira utilização para acessos efetivamente ativos.
   O estado é persistido por reserva e por botão no guest-access.js. */
.access-button.sol-access-authorized {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.access-button.sol-access-authorized.sol-first-use::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(
    110deg,
    transparent 20%,
    rgba(255, 255, 255, 0.30) 44%,
    transparent 68%
  );
  transform: translateX(-125%);
  animation: sol-access-shine 3.8s ease-in-out infinite;
  pointer-events: none;
  will-change: transform;
}

@keyframes sol-access-shine {
  0%, 62%, 100% { transform: translateX(-125%); }
  78% { transform: translateX(125%); }
}

.back-guide {
  background: linear-gradient(135deg, #fae5ef, #f1c9dd) !important;
  color: #49373f !important;
}

.back-portal {
  background: linear-gradient(135deg, #fff4d5, #f4dda4) !important;
  color: #493b20 !important;
}

.secret-sol {
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

:where(a, button, input, select, summary):focus-visible {
  outline: 3px solid rgba(64, 49, 42, 0.72);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .background-orb,
  .sun,
  .card,
  .guide-button,
  .nav-button,
  .access-button,
  .secret-panel,
  .secret-scanline {
    animation: none !important;
    transition-duration: 0.01ms !important;
  }

  .access-button.sol-access-authorized.sol-first-use::after {
    animation: none !important;
    display: none;
  }
}


/* 2026-09-27 · premium refinement for interior action buttons.
   Parking selectors are deliberately excluded. */
:where(.nav-button, .secondary-action, .automatic-link) {
  border: 1px solid var(--sol-hairline) !important;
  box-shadow:
    0 9px 24px rgba(61,48,40,.07),
    0 1px 0 rgba(255,255,255,.46) inset !important;
}

.automatic-link {
  background: linear-gradient(135deg, #e2f1e3, #c6e4cc) !important;
  color: #304236 !important;
}

.share-button {
  background: linear-gradient(135deg, #e2f1e3, #c6e4cc) !important;
  color: #304236 !important;
}

.filter-chip.active {
  background: linear-gradient(135deg, #fff4d5, #f4dda4) !important;
  color: #493b20 !important;
}

.scene-button.ocean {
  background: linear-gradient(135deg, #e7f2fb, #c6dff1) !important;
  color: #24445c !important;
}

.scene-button.sunset {
  background: linear-gradient(135deg, #f7dfd6, #edcad4) !important;
  color: #5a3938 !important;
}

.scene-button.moonlight {
  background: linear-gradient(135deg, #eee9fb, #d7d0ef) !important;
  color: #433b5d !important;
}

.scene-button.normal {
  background: linear-gradient(135deg, #fff2cf, #ead8a6) !important;
  color: #4a3b1f !important;
}

.scene-button.off {
  background: linear-gradient(135deg, #ece9e7, #d5cfcb) !important;
  color: #4a4542 !important;
}

.scene-button span {
  opacity: .78 !important;
}
