/* ==========================================================================
   B Iced Latte • Apple Human Interface Guidelines Design System
   Identidade Oficial baseada no Manual de Normas Visuais:
   - Deep Espresso:    #211510 (Textos e Headings)
   - Roast Brown:      #5C3F2E (Botões e Destaques)
   - Warm Latte Beige: #D1B79F (Cards, Divisórias e Bordas)
   - Oat Milk Cream:   #FAF7F2 (Fundo Principal da Aplicação)
   - Tipografia: Apple San Francisco (SF Pro Display / SF Pro Text)
   ========================================================================== */

:root {
  /* Safe Area insets (iOS Dynamic Island, Notch, Home Indicator Bar) */
  --sat: env(safe-area-inset-top, 0px);
  --sab: env(safe-area-inset-bottom, 0px);
  --sal: env(safe-area-inset-left, 0px);
  --sar: env(safe-area-inset-right, 0px);

  /* Paleta Cromática Oficial - Modo Claro (Sensação Sensorial de Aveia e Café) */
  --color-bg-base: #FAF7F2;          /* Oat Milk Cream */
  --color-bg-secondary: #F3ECE2;     /* Nuance cremosa de apoio */
  --color-surface-card: #FFFFFF;     /* Fundo dos cartões */
  --color-surface-card-subtle: #FDFBF8;

  --color-deep-espresso: #211510;    /* Headings, títulos e ícone do logo */
  --color-roast-brown: #5C3F2E;      /* Botões primários e destaques de ação */
  --color-roast-brown-hover: #483124;
  --color-warm-beige: #D1B79F;       /* Bordas, linhas divisórias e cartões */
  --color-warm-beige-soft: rgba(209, 183, 159, 0.35);

  /* Cores de Texto e Hierarquia */
  --text-primary: #211510;           /* Deep Espresso */
  --text-secondary: rgba(33, 21, 16, 0.72);
  --text-tertiary: rgba(33, 21, 16, 0.48);
  --text-muted: rgba(33, 21, 16, 0.32);

  /* ==========================================================================
     Apple Human Interface Guidelines (HIG) & Liquid Glass Tokens (Modo Claro)
     ========================================================================== */
  --liquid-glass-dock-bg: rgba(255, 255, 255, 0.27);
  --liquid-glass-dock-blur: 28px;
  --liquid-glass-dock-saturate: 210%;
  --liquid-glass-dock-border-top: rgba(255, 255, 255, 0.90);
  --liquid-glass-dock-border-side: rgba(255, 255, 255, 0.45);
  --liquid-glass-dock-highlight: inset 0 1px 0.5px rgba(255, 255, 255, 0.95), inset 0 -1px 0 rgba(0, 0, 0, 0.03);
  --liquid-glass-dock-shadow: 0 16px 40px -4px rgba(33, 21, 16, 0.12), 0 4px 12px -2px rgba(33, 21, 16, 0.05);

  --liquid-glass-header-bg: rgba(250, 247, 242, 0.82);
  --liquid-glass-header-blur: 26px;
  --liquid-glass-header-saturate: 190%;
  --liquid-glass-header-border: 0.5px solid rgba(209, 183, 159, 0.45);
  --liquid-glass-header-shadow: 0 4px 16px rgba(33, 21, 16, 0.04);

  --liquid-glass-sheet-bg: rgba(255, 255, 255, 0.94);
  --liquid-glass-sheet-blur: 40px;
  --liquid-glass-sheet-saturate: 200%;
  --liquid-glass-sheet-border-top: 1px solid rgba(255, 255, 255, 0.95);
  --liquid-glass-sheet-highlight: inset 0 1px 0 rgba(255, 255, 255, 0.95);
  --liquid-glass-sheet-shadow: 0 -16px 52px rgba(33, 21, 16, 0.20);

  /* Apple Liquid Glass Legacy Mappings */
  --liquid-glass-ultra-thin: rgba(250, 247, 242, 0.65);
  --liquid-glass-thin: var(--liquid-glass-header-bg);
  --liquid-glass-regular: var(--liquid-glass-dock-bg);
  --liquid-glass-thick: var(--liquid-glass-sheet-bg);
  --liquid-glass-blur: blur(var(--liquid-glass-dock-blur)) saturate(var(--liquid-glass-dock-saturate));
  --liquid-glass-blur-heavy: blur(40px) saturate(200%);
  --liquid-glass-border: var(--liquid-glass-header-border);
  --liquid-glass-specular: inset 0 1px 0.5px rgba(255, 255, 255, 0.75);

  --glass-header-bg: var(--liquid-glass-header-bg);
  --glass-tabbar-bg: var(--liquid-glass-dock-bg);
  --glass-blur: var(--liquid-glass-blur);
  --glass-border: var(--liquid-glass-border);

  /* Apple Official System Colors (Human Interface Palette) */
  --apple-system-blue: #007AFF;
  --apple-system-green: #248A3D;
  --apple-system-red: #D70015;
  --apple-system-orange: #D97706;
  --apple-system-yellow: #F6B21B;

  /* Cores de Suporte / Badges */
  --badge-open-bg: rgba(48, 209, 88, 0.15);
  --badge-open-text: var(--apple-system-green);
  --badge-star-color: #b5832b;

  /* Geometria e Squircles Contínuos da Apple */
  --radius-xs: 8px;
  --radius-sm: 12px;
  --radius-md: 18px;
  --radius-lg: 24px;
  --radius-xl: 30px;
  --radius-full: 9999px;
  --squircle-tabbar: 32px;
  --squircle-sheet: 32px;
  --squircle-card: 24px;
  --squircle-btn: 9999px;
  --squircle-badge: 12px;

  /* Transições Nativas iOS (Spring Fluid Bézier) */
  --ios-spring: cubic-bezier(0.16, 1, 0.3, 1);
  --ios-spring-sheet: cubic-bezier(0.32, 0.72, 0, 1);
  --transition-fast: 0.16s var(--ios-spring);
  --transition-normal: 0.28s var(--ios-spring);
  --transition-smooth: 0.42s var(--ios-spring);

  /* Dimensões do Header & TabBar com Margem de Resguardo (1.5X) */
  --header-height: 60px;
  --tabbar-height: 64px;
  --logo-size: 38px;
  --logo-resguardo: 12px;
}

/* ==========================================================================
   Modo Escuro (Dark Theme) - Versão Invertida Monocromática Fiel ao Manual
   ========================================================================== */
[data-theme="dark"] {
  --color-bg-base: #150F0D;          /* Café escuro denso */
  --color-bg-secondary: #1C1512;
  --color-surface-card: #211510;     /* Deep Espresso Surfaces */
  --color-surface-card-subtle: #291B15;

  --color-deep-espresso: #FAF7F2;    /* Inversão dos títulos para Oat Cream */
  --color-roast-brown: #D1B79F;      /* Botões em Latte Beige de alto contraste */
  --color-roast-brown-hover: #E2CFBD;
  --color-warm-beige: rgba(209, 183, 159, 0.3);
  --color-warm-beige-soft: rgba(209, 183, 159, 0.15);

  --text-primary: #FAF7F2;           /* Oat Milk Cream no texto */
  --text-secondary: rgba(250, 247, 242, 0.72);
  --text-tertiary: rgba(250, 247, 242, 0.48);
  --text-muted: rgba(250, 247, 242, 0.3);

  /* ==========================================================================
     Apple Human Interface Guidelines (HIG) & Liquid Glass Tokens (Modo Escuro)
     ========================================================================== */
  --liquid-glass-dock-bg: rgba(26, 19, 16, 0.27);
  --liquid-glass-dock-blur: 28px;
  --liquid-glass-dock-saturate: 200%;
  --liquid-glass-dock-border-top: rgba(255, 255, 255, 0.22);
  --liquid-glass-dock-border-side: rgba(255, 255, 255, 0.10);
  --liquid-glass-dock-highlight: inset 0 1px 0.5px rgba(255, 255, 255, 0.24), inset 0 -1px 0.5px rgba(0, 0, 0, 0.4);
  --liquid-glass-dock-shadow: 0 18px 48px -4px rgba(0, 0, 0, 0.70), 0 4px 14px -2px rgba(0, 0, 0, 0.5);

  --liquid-glass-header-bg: rgba(21, 15, 13, 0.84);
  --liquid-glass-header-blur: 26px;
  --liquid-glass-header-saturate: 190%;
  --liquid-glass-header-border: 0.5px solid rgba(255, 255, 255, 0.12);
  --liquid-glass-header-shadow: 0 4px 20px rgba(0, 0, 0, 0.45);

  --liquid-glass-sheet-bg: rgba(28, 20, 17, 0.94);
  --liquid-glass-sheet-blur: 40px;
  --liquid-glass-sheet-saturate: 200%;
  --liquid-glass-sheet-border-top: 1px solid rgba(255, 255, 255, 0.18);
  --liquid-glass-sheet-highlight: inset 0 1px 0 rgba(255, 255, 255, 0.16);
  --liquid-glass-sheet-shadow: 0 -16px 56px rgba(0, 0, 0, 0.75);

  /* Apple Liquid Glass Legacy Mappings */
  --liquid-glass-ultra-thin: rgba(21, 15, 13, 0.65);
  --liquid-glass-thin: var(--liquid-glass-header-bg);
  --liquid-glass-regular: var(--liquid-glass-dock-bg);
  --liquid-glass-thick: var(--liquid-glass-sheet-bg);
  --liquid-glass-border: var(--liquid-glass-header-border);
  --liquid-glass-specular: inset 0 1px 0.5px rgba(255, 255, 255, 0.18);

  --glass-header-bg: var(--liquid-glass-header-bg);
  --glass-tabbar-bg: var(--liquid-glass-dock-bg);
  --glass-border: var(--liquid-glass-border);

  /* Apple Official System Colors (Dark Mode OLED Vivid) */
  --apple-system-blue: #0A84FF;
  --apple-system-green: #30D158;
  --apple-system-red: #FF453A;
  --apple-system-orange: #FF9F0A;
  --apple-system-yellow: #FFD60A;

  --badge-open-bg: rgba(48, 209, 88, 0.22);
  --badge-open-text: var(--apple-system-green);
  --badge-star-color: #f5c053;
}

/* ==========================================================================
   CSS Reset & Regras Globais Apple (Comportamento 100% Nativo de App)
   ========================================================================== */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}

html, body {
  width: 100%;
  height: 100%;
  overflow: hidden;
  background-color: var(--color-bg-base);
  color: var(--text-primary);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  user-select: none;
  -webkit-user-select: none;
  touch-action: manipulation;
  overscroll-behavior: none;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

input, textarea {
  user-select: text !important;
  -webkit-user-select: text !important;
}

/* ==========================================================================
   Container Geral do App (100% Contínuo • Sem Bordas Laterais Artificiais)
   ========================================================================== */
#app {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  max-width: 520px;
  margin: 0 auto;
  position: relative;
  background-color: var(--color-bg-base);
  overflow: hidden;
  box-shadow: none;
  border: none;
  overscroll-behavior: none;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* Header Fixo Superior em Liquid Glass Oficial (Cobre o Notch, desfoca o conteúdo no scroll) */
.app-fixed-header {
  flex-shrink: 0;
  width: 100%;
  background: var(--liquid-glass-header-bg);
  backdrop-filter: blur(var(--liquid-glass-header-blur)) saturate(var(--liquid-glass-header-saturate));
  -webkit-backdrop-filter: blur(var(--liquid-glass-header-blur)) saturate(var(--liquid-glass-header-saturate));
  padding-top: calc(var(--sat) + 8px);
  padding-left: 16px;
  padding-right: 16px;
  padding-bottom: 8px;
  border-bottom: var(--liquid-glass-header-border);
  box-shadow: var(--liquid-glass-header-shadow);
  z-index: 1000;
  overflow: visible;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transition: background var(--transition-normal), border-color var(--transition-normal);
}

.top-main-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  overflow: visible;
}

/* Título de Seção no Feed & Segmented Control Aberto/Fechado (Conforme Referência) */
.explore-section-header {
  padding: 6px 0 10px 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}

.explore-main-title {
  font-size: 28px;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--text-primary);
  line-height: 1.1;
  margin: 0;
}

/* Card de Filtro Aberto / Fechado / Todos (Apple iOS 17 UISegmentedControl Style) */
.status-segmented-control {
  display: inline-flex;
  align-items: center;
  width: auto;
  max-width: fit-content;
  background: rgba(120, 120, 128, 0.12);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: 12px;
  padding: 3px;
  gap: 2px;
  border: 0.5px solid rgba(209, 183, 159, 0.28);
  box-shadow: inset 0 1px 0.5px rgba(255, 255, 255, 0.4);
}

[data-theme="dark"] .status-segmented-control {
  background: rgba(120, 120, 128, 0.22);
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 1px 0.5px rgba(255, 255, 255, 0.08);
}

.status-seg-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: transparent;
  border: none;
  border-radius: 9px;
  padding: 6px 14px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-secondary);
  cursor: pointer;
  text-align: center;
  transition: all 0.2s cubic-bezier(0.2, 0, 0, 1);
  line-height: 1;
}

.status-btn-svg {
  width: 13px;
  height: 13px;
  stroke: currentColor;
  flex-shrink: 0;
}

.status-seg-btn:active {
  transform: scale(0.96);
}

.status-seg-btn.active {
  background: #FFFFFF;
  color: #211510;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.06);
  font-weight: 750;
}

[data-theme="dark"] .status-seg-btn.active {
  background: rgba(255, 255, 255, 0.22);
  color: #FAF7F2;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.35);
}

/* Marca Oficial: Logo B Iced Latte */
.brand-inline {
  display: flex;
  align-items: center;
  cursor: pointer;
  text-decoration: none;
  position: relative;
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.15s ease, opacity 0.15s ease;
}

.brand-inline:active {
  transform: scale(0.92);
  opacity: 0.85;
}

.brand-logo-frame {
  width: 25px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.brand-logo-img {
  width: auto;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* Alternância Nítida entre Logo Claro e Escuro */
[data-theme="light"] .logo-light {
  display: block;
}
[data-theme="light"] .logo-dark {
  display: none;
}

[data-theme="dark"] .logo-light {
  display: none;
}
[data-theme="dark"] .logo-dark {
  display: block;
}

.brand-title-wrap {
  display: flex;
  flex-direction: column;
}

.brand-title {
  font-size: 19px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--color-deep-espresso);
  line-height: 1.15;
}

.brand-subtitle {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 1px;
}

.brand-sub-dot {
  font-size: 8px;
  color: var(--color-roast-brown);
  display: inline-block;
}

[data-theme="dark"] .brand-sub-dot {
  color: var(--color-warm-beige);
}

.top-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.header-title-wrap {
  display: flex;
  flex-direction: column;
}

.header-title {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text-primary);
  line-height: 1.15;
}

.header-subtitle {
  font-size: 11px;
  font-weight: 500;
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 1px;
}

.location-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--color-roast-brown);
  display: inline-block;
  animation: pulse-dot 2.4s ease-in-out infinite;
  will-change: transform, opacity;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

@keyframes pulse-dot {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.3); opacity: 0.6; }
}

/* Ações do Header */
.header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.btn-icon {
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.65);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 0.5px solid rgba(209, 183, 159, 0.45);
  box-shadow: inset 0 1px 0.5px rgba(255, 255, 255, 0.8), 0 2px 8px rgba(33, 21, 16, 0.04);
  color: var(--text-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform 0.16s cubic-bezier(0.2, 0, 0, 1), background-color 0.16s ease;
}

[data-theme="dark"] .btn-icon {
  background: rgba(255, 255, 255, 0.09);
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: inset 0 1px 0.5px rgba(255, 255, 255, 0.18), 0 2px 8px rgba(0, 0, 0, 0.3);
}

.btn-icon:active {
  transform: scale(0.92);
  background-color: rgba(209, 183, 159, 0.4);
}

.btn-icon svg {
  width: 19.5px;
  height: 19.5px;
  stroke: currentColor;
  stroke-width: 2.2;
  fill: none;
}

/* Seletor de Idioma em Pílula no Header: PT / EN (Liquid Glass Apple) */
.btn-lang-toggle {
  height: 40px;
  padding: 0 12px;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.65);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 0.5px solid rgba(209, 183, 159, 0.45);
  box-shadow: inset 0 1px 0.5px rgba(255, 255, 255, 0.8), 0 2px 8px rgba(33, 21, 16, 0.04);
  color: var(--text-primary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.16s cubic-bezier(0.2, 0, 0, 1), background-color 0.16s ease;
}

[data-theme="dark"] .btn-lang-toggle {
  background: rgba(255, 255, 255, 0.09);
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: inset 0 1px 0.5px rgba(255, 255, 255, 0.18), 0 2px 8px rgba(0, 0, 0, 0.3);
}

.btn-lang-toggle:active {
  transform: scale(0.93);
}

.btn-lang-toggle * {
  pointer-events: none;
}

.lang-tag {
  color: var(--text-tertiary);
  transition: color var(--transition-fast), font-weight var(--transition-fast);
  pointer-events: none;
}

.lang-tag.active {
  color: var(--color-deep-espresso);
  font-weight: 850;
}

[data-theme="dark"] .lang-tag.active {
  color: #FAF7F2;
}

.lang-divider {
  color: var(--color-warm-beige);
  font-size: 11px;
  font-weight: 500;
  opacity: 0.6;
}

/* Alternância dos ícones de sol e lua */
[data-theme="light"] .icon-sun { display: none; }
[data-theme="light"] .icon-moon { display: block; }
[data-theme="dark"] .icon-sun { display: block; }
[data-theme="dark"] .icon-moon { display: none; }

/* Barra de Pesquisa Desdobrável Compacta */
.search-drawer {
  display: none;
  width: 100%;
  max-width: 320px;
  margin: 6px auto 0 auto;
  animation: slide-drawer-down 0.22s var(--ios-spring);
}

.search-drawer.open {
  display: block;
}

@keyframes slide-drawer-down {
  from { opacity: 0; transform: translateY(-4px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.search-input-wrap {
  display: flex;
  align-items: center;
  background: rgba(255, 255, 255, 0.75);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  border: 0.5px solid rgba(209, 183, 159, 0.45);
  border-radius: var(--radius-full);
  padding: 6px 14px;
  gap: 8px;
  box-shadow: inset 0 1px 0.5px rgba(255, 255, 255, 0.8), 0 4px 16px rgba(33, 21, 16, 0.05);
}

[data-theme="dark"] .search-input-wrap {
  background: rgba(33, 21, 16, 0.75);
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: inset 0 1px 0.5px rgba(255, 255, 255, 0.15), 0 4px 20px rgba(0, 0, 0, 0.4);
}

.search-input-icon {
  width: 15px;
  height: 15px;
  stroke: var(--text-secondary);
  stroke-width: 2.2;
  fill: none;
  flex-shrink: 0;
}

.search-input-wrap input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  font-family: inherit;
  font-size: 16px !important; /* CRÍTICO: Previne que o iPhone/Safari dê zoom automático na tela ao focar */
  color: var(--text-primary);
  padding: 4px 0;
  -webkit-text-size-adjust: 100%;
  touch-action: manipulation;
}

.search-input-wrap input::placeholder {
  color: var(--text-tertiary);
  font-size: 12.5px;
}

.search-clear-btn {
  background: none;
  border: none;
  color: var(--text-tertiary);
  font-size: 13px;
  cursor: pointer;
  padding: 2px 6px;
}

/* ==========================================================================
   Área Principal de Scroll
   ========================================================================== */
.main-scroll {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  padding-top: 14px;
  padding-bottom: calc(var(--sab) + 105px);
  padding-left: 16px;
  padding-right: 16px;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.badge-closed {
  background: rgba(220, 53, 69, 0.85);
  color: #FFFFFF;
}

.badge-pill .lucide {
  width: 12px;
  height: 12px;
  vertical-align: middle;
  margin-right: 3px;
}


/* ==========================================================================
   Barra de Filtros Rápidos (Horizontal Scroll Apple Style)
   ========================================================================== */
.filter-bar {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 14px;
  margin-bottom: 12px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.filter-bar::-webkit-scrollbar {
  display: none;
}

.filter-chip {
  flex-shrink: 0;
  padding: 8px 15px;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.65);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 0.5px solid rgba(209, 183, 159, 0.45);
  box-shadow: inset 0 1px 0.5px rgba(255, 255, 255, 0.75), 0 2px 8px rgba(33, 21, 16, 0.04);
  color: var(--text-primary);
  font-family: inherit;
  font-size: 13px;
  font-weight: 550;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: transform 0.16s cubic-bezier(0.2, 0, 0, 1), background-color 0.16s ease, color 0.16s ease;
}

[data-theme="dark"] .filter-chip {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: inset 0 1px 0.5px rgba(255, 255, 255, 0.15), 0 2px 8px rgba(0, 0, 0, 0.3);
}

.filter-chip .lucide {
  width: 15px;
  height: 15px;
  stroke-width: 2.2;
  flex-shrink: 0;
}

.filter-chip:active {
  transform: scale(0.94);
}

.filter-chip.active {
  background: var(--color-deep-espresso);
  border-color: transparent;
  color: #FAF7F2;
  font-weight: 650;
  box-shadow: 0 4px 14px rgba(33, 21, 16, 0.25), inset 0 1px 0.5px rgba(255, 255, 255, 0.35);
}

[data-theme="dark"] .filter-chip.active {
  background: var(--color-warm-beige);
  color: #1A130F;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5), inset 0 1px 0.5px rgba(255, 255, 255, 0.6);
}

/* Indicador Nativo de Pull-to-Refresh Apple (iOS Activity Indicator) */
.ios-pull-refresh-wrap {
  width: 100%;
  height: 0;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: height 0.28s cubic-bezier(0.32, 0.72, 0, 1);
  pointer-events: none;
}

.ios-spinner {
  position: relative;
  width: 24px;
  height: 24px;
  opacity: 0;
  transform: scale(0.85);
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.ios-spinner.visible {
  opacity: 1;
  transform: scale(1);
}

.ios-spinner.spinning {
  animation: ios-spinner-spin 0.8s steps(8) infinite;
}

.ios-spinner-blade {
  position: absolute;
  left: 44.5%;
  top: 37%;
  width: 10%;
  height: 26%;
  background-color: var(--color-roast-brown);
  border-radius: 50px;
  transform-origin: center -50%;
}

[data-theme="dark"] .ios-spinner-blade {
  background-color: var(--color-warm-beige);
}

.ios-spinner-blade:nth-child(1) { transform: rotate(0deg) translate(0, -140%); opacity: 0.12; }
.ios-spinner-blade:nth-child(2) { transform: rotate(45deg) translate(0, -140%); opacity: 0.25; }
.ios-spinner-blade:nth-child(3) { transform: rotate(90deg) translate(0, -140%); opacity: 0.37; }
.ios-spinner-blade:nth-child(4) { transform: rotate(135deg) translate(0, -140%); opacity: 0.5; }
.ios-spinner-blade:nth-child(5) { transform: rotate(180deg) translate(0, -140%); opacity: 0.62; }
.ios-spinner-blade:nth-child(6) { transform: rotate(225deg) translate(0, -140%); opacity: 0.75; }
.ios-spinner-blade:nth-child(7) { transform: rotate(270deg) translate(0, -140%); opacity: 0.87; }
.ios-spinner-blade:nth-child(8) { transform: rotate(315deg) translate(0, -140%); opacity: 1; }

@keyframes ios-spinner-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* ==========================================================================
   Cartões de Brunch & Cafés (Design Apple Inset Grouped com Specular Rim)
   ========================================================================== */
.cards-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.brunch-card {
  background: var(--color-surface-card);
  border: 0.5px solid rgba(209, 183, 159, 0.45);
  border-radius: var(--squircle-card, 24px);
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(33, 21, 16, 0.04), inset 0 1px 0.5px rgba(255, 255, 255, 0.75);
  transition: box-shadow var(--transition-fast);
}

[data-theme="dark"] .brunch-card {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4), inset 0 1px 0.5px rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.08);
}

/* Bloco de Mídia com Carrossel de Fotos Deslizável (Proporção Paisagem / Horizontal Elegante) */
.card-media {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9.5;
  min-height: 200px;
  max-height: 245px;
  overflow: hidden;
  background-color: var(--color-bg-secondary);
}

.card-carousel {
  display: flex;
  width: 100%;
  height: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  overscroll-behavior-y: auto;
  touch-action: pan-x pan-y;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
}

.card-carousel::-webkit-scrollbar {
  display: none;
}

.card-carousel-track {
  display: contents;
}

.carousel-slide {
  min-width: 100%;
  width: 100%;
  height: 100%;
  flex-shrink: 0;
  scroll-snap-align: start;
  scroll-snap-stop: normal;
  position: relative;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
}

.carousel-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
  -webkit-user-drag: none;
  transition: transform 0.6s var(--ios-spring);
}

@media (hover: hover) and (pointer: fine) {
  .brunch-card:hover .carousel-slide img {
    transform: scale(1.03);
  }
}

.media-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.42) 0%, transparent 42%, rgba(0, 0, 0, 0.7) 100%);
  pointer-events: none;
  z-index: 1;
}

/* Badges Superiores */
.media-badges-top {
  position: absolute;
  top: 12px;
  left: 12px;
  right: 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 3;
}

.badge-distance,
.badge-location-top {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 12px;
  background: rgba(0, 0, 0, 0.52);
  backdrop-filter: blur(24px) saturate(190%);
  -webkit-backdrop-filter: blur(24px) saturate(190%);
  border: 0.5px solid rgba(255, 255, 255, 0.35);
  box-shadow: inset 0 1px 0.5px rgba(255, 255, 255, 0.35), 0 2px 8px rgba(0, 0, 0, 0.2);
  border-radius: var(--radius-full);
  color: #FFFFFF;
  font-size: 11.5px;
  font-weight: 650;
  letter-spacing: -0.01em;
}

.badge-distance svg,
.badge-location-top svg {
  width: 12px;
  height: 12px;
  fill: #FFFFFF;
}

.media-actions-top-right {
  display: flex;
  align-items: center;
  gap: 6px;
}

.btn-media-action {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.52);
  backdrop-filter: blur(24px) saturate(190%);
  -webkit-backdrop-filter: blur(24px) saturate(190%);
  border: 0.5px solid rgba(255, 255, 255, 0.35);
  box-shadow: inset 0 1px 0.5px rgba(255, 255, 255, 0.4), 0 4px 12px rgba(0, 0, 0, 0.25);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform 0.16s cubic-bezier(0.2, 0, 0, 1), background-color 0.16s ease, color 0.16s ease;
}

.btn-media-action:active {
  transform: scale(0.86);
}

.btn-media-action svg {
  width: 17px;
  height: 17px;
  stroke: currentColor;
  stroke-width: 2.2;
  fill: none;
}

/* Botão Compartilhar Minimalista Estilo Apple HIG (Vidro Escuro + Ícone Branco) */
.btn-share-action,
.btn-whatsapp-action {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform var(--transition-fast), background-color var(--transition-fast);
}

.btn-share-action:active,
.btn-whatsapp-action:active {
  transform: scale(0.85);
  background: rgba(0, 0, 0, 0.75);
}

.btn-share-action svg,
.btn-whatsapp-action svg {
  width: 17px;
  height: 17px;
  stroke: #FFFFFF;
  stroke-width: 2;
  fill: none;
}

.btn-like {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform var(--transition-fast), background-color var(--transition-fast), color var(--transition-fast);
}

.btn-like:active {
  transform: scale(0.85);
}

.btn-like svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
  transition: fill var(--transition-fast);
}

.btn-like.liked {
  color: #FF3B30;
  border-color: rgba(255, 59, 48, 0.6);
  animation: heart-pop 0.45s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.btn-like.liked svg {
  fill: #FF3B30;
}

@keyframes heart-pop {
  0% { transform: scale(1); }
  35% { transform: scale(1.36); }
  65% { transform: scale(0.92); }
  100% { transform: scale(1); }
}

/* Dots do Carrossel */
.carousel-dots {
  position: absolute;
  bottom: 12px;
  right: 12px;
  display: flex;
  gap: 4px;
  align-items: center;
  z-index: 3;
  background: rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  padding: 4px 7px;
  border-radius: var(--radius-full);
}

.carousel-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.45);
  transition: all 0.25s ease;
}

.carousel-dot.active {
  background: #FFFFFF;
  width: 13px;
  border-radius: 4px;
}

/* Metas Inferiores da Foto (Apenas Aberto/Fechado • Nota e Valor Removidos a Pedido) */
.media-meta-bottom {
  position: absolute;
  bottom: 12px;
  left: 12px;
  display: flex;
  gap: 6px;
  z-index: 2;
}

.badge-pill {
  padding: 5px 9px;
  border-radius: var(--radius-xs);
  font-size: 11.5px;
  font-weight: 600;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.badge-open {
  background: rgba(48, 209, 88, 0.88);
  color: #FFFFFF;
}

/* Conteúdo do Cartão Enxuto & Sem Excesso de Texto */
.card-content {
  padding: 14px 16px 16px 16px;
}

.card-title {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", -apple-system-headline, "SF Pro", "Helvetica Neue", sans-serif;
  font-size: 21.5px;
  font-weight: 800;
  letter-spacing: -0.038em;
  line-height: 1.22;
  color: var(--color-deep-espresso);
  margin-bottom: 12px;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.card-category {
  display: none !important;
}

/* Botão "Marcar como visitado" Direto no Card (Proximidade <10 Metros) */
.btn-card-checkin-near {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 10px 14px;
  margin-bottom: 12px;
  background: linear-gradient(135deg, #2A1D17 0%, #1A120E 100%);
  border: 1px solid rgba(212, 175, 55, 0.45);
  border-radius: 12px;
  box-shadow: 0 4px 14px rgba(42, 29, 23, 0.35);
  cursor: pointer;
  color: #FFFFFF;
  text-align: left;
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

.btn-card-checkin-near:active {
  transform: scale(0.98);
}

.btn-checkin-near-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(212, 175, 55, 0.2);
  border: 1px solid rgba(212, 175, 55, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-right: 10px;
}

.btn-checkin-near-icon svg {
  width: 16px;
  height: 16px;
  stroke: #D4AF37;
}

.btn-checkin-near-info {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  min-width: 0;
}

.btn-checkin-near-title {
  font-size: 13.5px;
  font-weight: 750;
  color: #FAF7F2;
  line-height: 1.2;
}

.btn-checkin-near-subtitle {
  font-size: 11px;
  color: #D4AF37;
  font-weight: 600;
  margin-top: 2px;
  line-height: 1.2;
}

.btn-checkin-near-badge {
  padding: 4px 10px;
  border-radius: var(--radius-full);
  background: #D4AF37;
  color: #1A120E;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.05em;
  flex-shrink: 0;
  margin-left: 8px;
}

.card-visited-chip-oncard {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 8px 12px;
  margin-bottom: 12px;
  background: rgba(212, 175, 55, 0.12);
  border: 1px solid rgba(212, 175, 55, 0.45);
  border-radius: 10px;
  color: #8C6D1F;
  font-size: 12px;
  font-weight: 700;
  box-sizing: border-box;
}

[data-theme="dark"] .card-visited-chip-oncard {
  color: #E6CA65;
  background: rgba(212, 175, 55, 0.15);
}

.card-visited-chip-oncard svg {
  width: 15px;
  height: 15px;
  fill: #D4AF37;
  flex-shrink: 0;
}

.badge-distance-pill {
  display: inline-block;
  background: rgba(212, 175, 55, 0.25);
  border: 0.5px solid rgba(212, 175, 55, 0.4);
  color: #FAF7F2;
  font-size: 10px;
  font-weight: 750;
  padding: 1.5px 5.5px;
  border-radius: var(--radius-full);
  margin-left: 5px;
}


/* Linha de Rodapé do Cartão: Bairro e Botão Redondo de Vidro com Seta pra Baixo */
.card-footer-info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 10px;
  border-top: 1px solid var(--color-warm-beige-soft);
  font-size: 12px;
}

/* Grupo de Comodidades do Brunch no Rodapé do Cartão */
.card-amenities-group {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
}

.amenity-chip {
  position: relative;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--color-warm-beige-soft);
  border: 1px solid var(--color-warm-beige);
  color: var(--color-roast-brown);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.22s var(--ios-spring);
  -webkit-tap-highlight-color: transparent;
}

[data-theme="dark"] .amenity-chip {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.24);
  color: #FFFFFF !important;
}

[data-theme="dark"] .amenity-chip svg {
  color: #FFFFFF !important;
}

.amenity-chip:hover,
.amenity-chip:active,
.amenity-chip.active-tooltip {
  background: var(--color-roast-brown);
  border-color: var(--color-roast-brown);
  color: #FFFFFF;
  transform: scale(1.12);
}

[data-theme="dark"] .amenity-chip:hover,
[data-theme="dark"] .amenity-chip:active,
[data-theme="dark"] .amenity-chip.active-tooltip {
  background: #FFFFFF;
  border-color: #FFFFFF;
  color: #1A100C !important;
  transform: scale(1.12);
}

[data-theme="dark"] .amenity-chip:hover svg,
[data-theme="dark"] .amenity-chip:active svg,
[data-theme="dark"] .amenity-chip.active-tooltip svg {
  color: #1A100C !important;
}

.amenity-chip svg {
  width: 16px;
  height: 16px;
  display: block;
}

/* Tooltip / Legenda Flutuante ao Passar o Dedo / Cursor */
.amenity-tooltip {
  position: absolute;
  bottom: calc(100% + 7px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  background: rgba(33, 21, 16, 0.94);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #FFFFFF;
  padding: 4px 9px;
  border-radius: var(--radius-xs);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: -0.01em;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, transform 0.2s var(--ios-spring);
  z-index: 100;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.28);
}

[data-theme="dark"] .amenity-tooltip {
  background: rgba(250, 247, 242, 0.95);
  color: #211510;
}

.amenity-tooltip::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 4px solid transparent;
  border-top-color: rgba(33, 21, 16, 0.94);
}

[data-theme="dark"] .amenity-tooltip::after {
  border-top-color: rgba(250, 247, 242, 0.95);
}

/* Exibição no hover e no toque (active-tooltip) */
.amenity-chip:hover .amenity-tooltip,
.amenity-chip.active-tooltip .amenity-tooltip {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}

.card-location-hint {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--color-roast-brown);
  font-weight: 600;
}

[data-theme="dark"] .card-location-hint {
  color: var(--color-warm-beige);
}

.card-location-hint svg {
  width: 15px;
  height: 15px;
  stroke: currentColor;
  stroke-width: 2.2;
  fill: none;
}

/* Botão Redondo de Vidro com Seta para Baixo (Apple Liquid Glass Control Layer) */
.btn-glass-dropdown {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(209, 183, 159, 0.28);
  backdrop-filter: blur(16px) saturate(190%);
  -webkit-backdrop-filter: blur(16px) saturate(190%);
  border: 1px solid rgba(255, 255, 255, 0.65);
  box-shadow: 0 2px 8px rgba(33, 21, 16, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.8);
  color: var(--color-roast-brown);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  transition: transform var(--transition-normal), background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

[data-theme="dark"] .btn-glass-dropdown {
  color: var(--color-warm-beige);
  background: rgba(209, 183, 159, 0.16);
  border-color: rgba(255, 255, 255, 0.18);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.btn-glass-dropdown:active {
  transform: scale(0.88);
}

.btn-glass-dropdown.open {
  transform: rotate(180deg);
  background: var(--color-roast-brown);
  color: #FFFFFF;
  border-color: var(--color-roast-brown);
}

.btn-glass-dropdown svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  stroke-width: 2.4;
  fill: none;
}

/* Card Expansível que Desce Suavemente ao Tocar na Seta */
.card-dropdown-details {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.4s var(--ios-spring), opacity 0.3s ease;
  background: var(--color-surface-card-subtle);
  border-top: 1px solid transparent;
}

.card-dropdown-details.open {
  max-height: 560px;
  opacity: 1;
  border-top: 1px solid var(--color-warm-beige-soft);
}

.dropdown-content-inner {
  padding: 14px 16px 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Grid de Informações: Localização, Telefone e Horário */
.dropdown-info-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.dropdown-info-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  background: var(--color-surface-card);
  border: 1px solid var(--color-warm-beige);
  border-radius: var(--radius-md);
  text-decoration: none;
  color: var(--text-primary);
  transition: background-color var(--transition-fast);
}

.dropdown-info-item:active {
  background-color: var(--color-warm-beige-soft);
}

.drop-icon-box {
  width: 30px;
  height: 30px;
  border-radius: var(--radius-sm);
  background: var(--color-warm-beige-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-roast-brown);
  flex-shrink: 0;
}

[data-theme="dark"] .drop-icon-box {
  color: var(--color-warm-beige);
}

.drop-icon-box svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  stroke-width: 2.2;
  fill: none;
}

.drop-text-box {
  flex: 1;
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}

.drop-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-tertiary);
}

.drop-val {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
  margin-top: 2px;
}

.drop-badge-action {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--color-roast-brown);
  padding: 4px 10px;
  background: var(--color-warm-beige-soft);
  border-radius: var(--radius-full);
}

[data-theme="dark"] .drop-badge-action {
  color: var(--color-warm-beige);
}

.drop-arrow-hint {
  width: 15px;
  height: 15px;
  stroke: var(--text-tertiary);
  stroke-width: 2.2;
  fill: none;
}

/* Faixa de Fotos Simples pro Usuário Passar Rápido + Foto Especial do MENU */
.dropdown-photos-section {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 2px;
}

.drop-photos-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.drop-photos-title {
  font-size: 11.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-roast-brown);
}

[data-theme="dark"] .drop-photos-title {
  color: var(--color-warm-beige);
}

.drop-photos-swipe-hint {
  font-size: 11px;
  color: var(--text-tertiary);
}

.dropdown-photos-strip {
  display: flex;
  gap: 9px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  padding: 2px 0 6px 0;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  user-select: none;
  -webkit-user-select: none;
  touch-action: pan-x pan-y;
}

.dropdown-photos-strip::-webkit-scrollbar {
  display: none;
}

.drop-photo-card {
  flex-shrink: 0;
  width: 140px;
  height: 105px;
  border-radius: var(--radius-md);
  overflow: hidden;
  position: relative;
  border: 1px solid var(--color-warm-beige);
  scroll-snap-align: start;
  background: var(--color-bg-secondary);
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
}

.drop-photo-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
  transition: opacity 0.3s ease;
}

/* Card Especial do Menu Reservado com a tarja MENU em cima */
.photo-card-menu {
  border: 2px solid var(--color-roast-brown);
  box-shadow: 0 4px 12px rgba(92, 63, 46, 0.2);
}

[data-theme="dark"] .photo-card-menu {
  border-color: var(--color-warm-beige);
}

.menu-top-badge {
  position: absolute;
  top: 6px;
  left: 6px;
  background: var(--color-roast-brown);
  color: #FFFFFF;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.1em;
  padding: 3px 8px;
  border-radius: var(--radius-xs);
  z-index: 3;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

[data-theme="dark"] .menu-top-badge {
  background: var(--color-warm-beige);
  color: var(--color-deep-espresso);
}

.menu-overlay-label {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 4px 6px;
  background: linear-gradient(180deg, transparent 0%, rgba(33, 21, 16, 0.88) 100%);
  color: #FAF7F2;
  font-size: 10.5px;
  font-weight: 700;
  text-align: center;
}

/* Botão Compartilhar dentro do Card Dropdown */
.dropdown-share-btn,
.dropdown-whatsapp-btn {
  width: 100%;
  padding: 11px 16px;
  background: var(--color-surface-card);
  color: var(--color-roast-brown);
  border: 1px solid var(--color-warm-beige);
  border-radius: var(--radius-lg);
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  transition: transform var(--transition-fast), background-color var(--transition-fast);
}

[data-theme="dark"] .dropdown-share-btn,
[data-theme="dark"] .dropdown-whatsapp-btn {
  color: var(--color-warm-beige);
}

.dropdown-share-btn:active,
.dropdown-whatsapp-btn:active {
  transform: scale(0.98);
  background: var(--color-warm-beige-soft);
}

.dropdown-share-btn svg,
.dropdown-whatsapp-btn svg {
  width: 17px;
  height: 17px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
}

/* ==========================================================================
   Bottom Tab Bar Estilo Apple Liquid Glass Floating Pill Dock (iOS HIG)
   ========================================================================== */
.app-tabbar {
  position: fixed;
  bottom: calc(var(--sab) + 16px);
  left: 50%;
  transform: translateX(-50%) translateZ(0);
  -webkit-transform: translateX(-50%) translateZ(0);
  width: calc(100% - 36px);
  max-width: 370px;
  height: 64px;
  box-sizing: border-box;
  z-index: 1000;
  background: var(--liquid-glass-dock-bg);
  backdrop-filter: blur(var(--liquid-glass-dock-blur)) saturate(var(--liquid-glass-dock-saturate));
  -webkit-backdrop-filter: blur(var(--liquid-glass-dock-blur)) saturate(var(--liquid-glass-dock-saturate));
  border: 0.5px solid var(--liquid-glass-dock-border-side);
  border-top: 1px solid var(--liquid-glass-dock-border-top);
  border-radius: var(--squircle-tabbar, 32px);
  padding: 5px 8px;
  box-shadow: var(--liquid-glass-dock-shadow), var(--liquid-glass-dock-highlight);
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transition: transform var(--transition-normal), opacity var(--transition-normal), background var(--transition-normal), border-color var(--transition-normal);
  overflow: hidden;
}

.app-tabbar::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.35) 0%,
    rgba(255, 255, 255, 0.08) 32%,
    transparent 65%
  );
  mix-blend-mode: overlay;
}

[data-theme="dark"] .app-tabbar {
  background: var(--liquid-glass-dock-bg);
  border: 0.5px solid var(--liquid-glass-dock-border-side);
  border-top: 1px solid var(--liquid-glass-dock-border-top);
  box-shadow: var(--liquid-glass-dock-shadow), var(--liquid-glass-dock-highlight);
}

[data-theme="dark"] .app-tabbar::after {
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.16) 0%,
    rgba(255, 255, 255, 0.04) 32%,
    transparent 65%
  );
  mix-blend-mode: overlay;
}

.tabbar-items {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-around;
  padding: 0;
  gap: 6px;
  position: relative;
  z-index: 1;
}

/* Indicador Deslizante com Pílula de Cristal & Bolinha Saltitante (Apple Spring Glide & Bounce) */
.tab-sliding-indicator {
  position: absolute;
  top: 0;
  left: 0;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.38);
  border: 0.5px solid rgba(255, 255, 255, 0.65);
  box-shadow: 0 4px 14px rgba(33, 21, 16, 0.06), inset 0 1px 0 rgba(255, 255, 255, 0.95);
  pointer-events: none;
  z-index: 1;
  transition: transform 0.36s cubic-bezier(0.16, 1, 0.3, 1), width 0.36s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s ease;
  will-change: transform, width;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 2.5px;
  box-sizing: border-box;
  opacity: 0;
}

.tab-sliding-indicator.ready {
  opacity: 1;
}

[data-theme="dark"] .tab-sliding-indicator {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.18);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

/* Bolinha indicadora no centro inferior */
.tab-indicator-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background-color: var(--color-deep-espresso);
  box-shadow: 0 1px 2px rgba(33, 21, 16, 0.25);
  display: block;
  transform-origin: center bottom;
}

[data-theme="dark"] .tab-indicator-dot {
  background-color: #FAF7F2;
  box-shadow: 0 1px 3px rgba(255, 255, 255, 0.35);
}

/* Animação elástica do salto da bolinha ao trocar de aba */
.tab-sliding-indicator.bouncing .tab-indicator-dot {
  animation: appleTabDotBounce 0.44s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes appleTabDotBounce {
  0% {
    transform: translateY(0) scale(1, 1);
  }
  30% {
    transform: translateY(-9px) scale(0.8, 1.35);
  }
  60% {
    transform: translateY(1.5px) scale(1.3, 0.75);
  }
  80% {
    transform: translateY(-2px) scale(0.9, 1.1);
  }
  100% {
    transform: translateY(0) scale(1, 1);
  }
}

.tab-btn {
  flex: 1;
  height: 100%;
  background: transparent;
  border: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  color: var(--text-tertiary);
  cursor: pointer;
  padding: 4px 10px;
  border-radius: var(--radius-full);
  transition: transform var(--transition-fast), color var(--transition-fast);
  -webkit-tap-highlight-color: transparent;
  position: relative;
  z-index: 2;
}

.tab-btn:active {
  transform: scale(0.93);
}

.tab-btn svg {
  width: 21px;
  height: 21px;
  stroke: currentColor;
  stroke-width: 2.0;
  fill: none;
  transition: stroke var(--transition-fast), stroke-width var(--transition-fast), transform var(--transition-fast);
}

.tab-label {
  font-size: 11px;
  font-weight: 550;
  letter-spacing: -0.01em;
  line-height: 1.1;
  transition: color var(--transition-fast), font-weight var(--transition-fast);
}

.tab-btn.active {
  color: var(--color-deep-espresso);
  background: transparent;
  box-shadow: none;
}

[data-theme="dark"] .tab-btn.active {
  color: #FAF7F2;
  background: transparent;
  box-shadow: none;
}

.tab-btn.active svg {
  stroke-width: 2.3;
  transform: scale(1.05);
}

.tab-btn.active .tab-label {
  font-weight: 750;
}

/* ==========================================================================
   Modal Bottom Sheet Estilo Apple Thick Material (Grabber Interativo & Drag)
   ========================================================================== */
.sheet-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.42);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  z-index: 2000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.28s cubic-bezier(0.32, 0.72, 0, 1);
}

.sheet-backdrop.active {
  opacity: 1;
  pointer-events: auto;
}

.bottom-sheet {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  max-width: 540px;
  margin: 0 auto;
  max-height: 88vh;
  background: var(--liquid-glass-sheet-bg);
  backdrop-filter: blur(var(--liquid-glass-sheet-blur)) saturate(var(--liquid-glass-sheet-saturate));
  -webkit-backdrop-filter: blur(var(--liquid-glass-sheet-blur)) saturate(var(--liquid-glass-sheet-saturate));
  border-top-left-radius: var(--squircle-sheet, 32px);
  border-top-right-radius: var(--squircle-sheet, 32px);
  border-top: var(--liquid-glass-sheet-border-top);
  box-shadow: var(--liquid-glass-sheet-shadow), var(--liquid-glass-sheet-highlight);
  z-index: 2001;
  transform: translateY(100%);
  -webkit-transform: translateY(100%) translateZ(0);
  transition: transform var(--transition-smooth);
  display: flex;
  flex-direction: column;
  overscroll-behavior: contain;
  touch-action: pan-y;
}

[data-theme="dark"] .bottom-sheet {
  background: var(--liquid-glass-sheet-bg);
  border-top: var(--liquid-glass-sheet-border-top);
  box-shadow: var(--liquid-glass-sheet-shadow), var(--liquid-glass-sheet-highlight);
}

.bottom-sheet.open {
  transform: translateY(0);
  -webkit-transform: translateY(0) translateZ(0);
}

.sheet-grabber-wrap {
  width: 100%;
  padding-top: 12px;
  padding-bottom: 6px;
  display: flex;
  justify-content: center;
  cursor: grab;
  touch-action: none;
}

.sheet-grabber {
  width: 36px;
  height: 5px;
  border-radius: 3px;
  background-color: rgba(60, 60, 67, 0.28);
  transition: background-color 0.15s ease;
}

[data-theme="dark"] .sheet-grabber {
  background-color: rgba(255, 255, 255, 0.28);
}

.sheet-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 20px 14px 20px;
  border-bottom: 0.5px solid rgba(209, 183, 159, 0.35);
  touch-action: none;
}

[data-theme="dark"] .sheet-header {
  border-bottom-color: rgba(255, 255, 255, 0.08);
}

.sheet-title {
  font-size: 19px;
  font-weight: 750;
  letter-spacing: -0.02em;
  color: var(--text-primary);
}

.sheet-close-btn {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(60, 60, 67, 0.12);
  border: none;
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform 0.15s ease, background-color 0.15s ease;
}

[data-theme="dark"] .sheet-close-btn {
  background: rgba(255, 255, 255, 0.14);
}

.sheet-close-btn:active {
  transform: scale(0.90);
}

.sheet-close-btn svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  stroke-width: 2.2;
}

.sheet-body {
  padding: 18px 20px calc(var(--sab) + 24px) 20px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* Conteúdo Interno do Modal: Localização, Telefone e Galeria de Fotos */
.sheet-meta-group {
  margin-bottom: 18px;
}

.sheet-meta-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-roast-brown);
  margin-bottom: 8px;
}

[data-theme="dark"] .sheet-meta-label {
  color: var(--color-warm-beige);
}

.sheet-info-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  background: var(--color-bg-base);
  border: 1px solid var(--color-warm-beige);
  border-radius: var(--radius-md);
  margin-bottom: 8px;
  text-decoration: none;
  color: var(--text-primary);
  font-size: 14px;
  font-weight: 500;
}

.sheet-info-row svg {
  width: 18px;
  height: 18px;
  stroke: var(--color-roast-brown);
  stroke-width: 2;
  fill: none;
  flex-shrink: 0;
}

[data-theme="dark"] .sheet-info-row svg {
  stroke: var(--color-warm-beige);
}

/* Grid de Mais Fotos */
.sheet-photos-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin-top: 10px;
}

.sheet-photo-item {
  position: relative;
  height: 120px;
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--color-warm-beige);
}

.sheet-photo-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sheet-photo-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 4px 8px;
  font-size: 10.5px;
  font-weight: 600;
  color: #FFFFFF;
  background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.75) 100%);
}

/* ==========================================================================
   Views & Transições de Tela
   ========================================================================== */
.app-view {
  animation: view-fade-in 0.24s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes view-fade-in {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

.view-header-section {
  margin-bottom: 16px;
  padding-top: 4px;
}

.view-header-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.view-main-title {
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--text-primary);
  line-height: 1.15;
}

.view-badge-pill {
  font-size: 11px;
  font-weight: 700;
  color: var(--color-roast-brown);
  background: var(--color-warm-beige-soft);
  border: 1px solid var(--color-warm-beige);
  padding: 4px 10px;
  border-radius: var(--radius-full);
}

[data-theme="dark"] .view-badge-pill {
  color: var(--color-warm-beige);
}

.view-subtitle {
  font-size: 13px;
  color: var(--text-secondary);
  margin-top: 5px;
  line-height: 1.4;
}

/* ==========================================================================
   View 2: Filtro por Bairros de Lisboa & Mapa Interativo Visual
   ========================================================================== */
.neighborhood-scroll-filter {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 12px 0 6px 0;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.neighborhood-scroll-filter::-webkit-scrollbar {
  display: none;
}

.nh-chip {
  flex-shrink: 0;
  padding: 8px 14px;
  border-radius: var(--radius-full);
  background: var(--color-surface-card);
  border: 1px solid var(--color-warm-beige);
  color: var(--text-primary);
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--transition-fast);
}

.nh-chip:active {
  transform: scale(0.95);
}

.nh-chip.active {
  background: var(--color-roast-brown);
  border-color: var(--color-roast-brown);
  color: #FFFFFF;
  box-shadow: 0 4px 12px rgba(92, 63, 46, 0.25);
}

[data-theme="dark"] .nh-chip.active {
  background: var(--color-warm-beige);
  border-color: var(--color-warm-beige);
  color: var(--color-deep-espresso);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

/* Container do Mapa Real Interativo Leaflet */
.real-map-wrapper {
  width: 100%;
  height: 380px;
  border-radius: var(--radius-xl);
  overflow: hidden;
  border: 1px solid var(--color-warm-beige);
  box-shadow: 0 8px 28px rgba(33, 21, 16, 0.08);
  margin-bottom: 16px;
  position: relative;
  background: var(--color-bg-secondary);
}

.leaflet-map-element {
  width: 100%;
  height: 100%;
  z-index: 1;
}

/* Botão Flutuante de Localização GPS (Estilo Apple Maps) */
.map-floating-location-btn {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--color-warm-beige);
  color: var(--color-deep-espresso);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
  cursor: pointer;
  z-index: 1000;
  transition: all 0.22s var(--ios-spring);
}

[data-theme="dark"] .map-floating-location-btn {
  background: rgba(33, 21, 16, 0.9);
  border-color: rgba(209, 183, 159, 0.35);
  color: #FAF7F2;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.45);
}

.map-floating-location-btn:active {
  transform: scale(0.9);
}

.map-floating-location-btn svg {
  width: 20px;
  height: 20px;
  transition: transform 0.3s ease;
}

.map-floating-location-btn.loading svg {
  animation: gps-spin 1s linear infinite;
}

@keyframes gps-spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* Marcador GPS do Usuário com Pulso Azul Apple */
.user-gps-icon {
  background: transparent !important;
  border: none !important;
}

.user-gps-pulse-wrap {
  position: relative;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.user-gps-dot {
  width: 14px;
  height: 14px;
  background: #007AFF;
  border: 2.5px solid #FFFFFF;
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(0, 122, 255, 0.6);
  z-index: 2;
}

.user-gps-pulse {
  position: absolute;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(0, 122, 255, 0.35);
  animation: gps-pulse 2s infinite ease-out;
  z-index: 1;
}

@keyframes gps-pulse {
  0% { transform: scale(0.6); opacity: 0.9; }
  100% { transform: scale(2.3); opacity: 0; }
}

/* Custom Div Icon para Leaflet */
.custom-div-icon {
  background: transparent !important;
  border: none !important;
}

.map-coffee-pin-wrap {
  position: absolute;
  transform: translate(-50%, -100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  cursor: pointer;
  pointer-events: auto;
  transition: transform 0.24s cubic-bezier(0.34, 1.56, 0.64, 1);
  z-index: 10;
}

.map-coffee-pin-wrap:active {
  transform: translate(-50%, -100%) scale(0.92);
}

.map-coffee-pin-wrap.active {
  transform: translate(-50%, -100%) scale(1.18);
  z-index: 9999 !important;
}

.pin-badge {
  position: relative;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(33, 21, 16, 0.94);
  border: 2px solid var(--color-warm-beige);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: all 0.2s ease;
}

.map-coffee-pin-wrap.active .pin-badge {
  background: var(--color-roast-brown);
  border-color: #FFFFFF;
  box-shadow: 0 6px 20px rgba(92, 63, 46, 0.6);
}

.pin-cup-svg {
  width: 17px;
  height: 17px;
  stroke: #FAF7F2;
  stroke-width: 2.2;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pin-status-dot {
  position: absolute;
  top: -1px;
  right: -1px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1.5px solid #211510;
}

.pin-status-dot.open {
  background: #30D158;
  box-shadow: 0 0 6px rgba(48, 209, 88, 0.6);
}

.pin-status-dot.closed {
  background: #FF453A;
  box-shadow: 0 0 6px rgba(255, 69, 58, 0.6);
}

.pin-title-pill {
  background: rgba(33, 21, 16, 0.92);
  border: 1px solid var(--color-warm-beige);
  border-radius: var(--radius-full);
  padding: 2px 8px;
  color: #FAF7F2;
  font-family: -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.01em;
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  transition: all 0.2s ease;
}

.map-coffee-pin-wrap.active .pin-title-pill {
  background: var(--color-roast-brown);
  border-color: #FFFFFF;
  color: #FFFFFF;
  font-weight: 800;
  box-shadow: 0 4px 12px rgba(92, 63, 46, 0.45);
}



/* Seção do Restaurante Clicado no Mapa */
.map-pressed-restaurant-section {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 24px;
}

.map-pressed-header-hint {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-roast-brown);
  padding: 0 4px;
}

[data-theme="dark"] .map-pressed-header-hint {
  color: var(--color-warm-beige);
}

.map-pressed-header-hint .pressed-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-roast-brown);
  animation: pulse-dot 2s infinite ease-in-out;
}

[data-theme="dark"] .map-pressed-header-hint .pressed-dot {
  background: var(--color-warm-beige);
}

.map-pressed-card-wrap {
  width: 100%;
}

/* ==========================================================================
   View 4: Perfil & Manifesto Oficial Integrado
   ========================================================================== */
/* ==========================================================================
   View 4: Perfil & Passaporte Gastronômico Oficial NoBrunch (Chic & Editorial)
   ========================================================================== */
.profile-card-hero {
  position: relative;
  text-align: center;
  background: linear-gradient(180deg, #FFFFFF 0%, #FAF7F2 100%);
  border: 0.5px solid rgba(209, 183, 159, 0.5);
  border-radius: 28px;
  padding: 28px 22px 24px 22px;
  margin-bottom: 20px;
  box-shadow: 0 14px 40px rgba(33, 21, 16, 0.05), inset 0 1px 1px rgba(255, 255, 255, 0.95);
  overflow: hidden;
}

.profile-card-hero::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 3px;
  background: linear-gradient(90deg, transparent, #C5A880, transparent);
  border-radius: 2px;
}

[data-theme="dark"] .profile-card-hero {
  background: linear-gradient(180deg, rgba(32, 23, 19, 0.98) 0%, rgba(22, 16, 14, 0.96) 100%);
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: 0 16px 44px rgba(0, 0, 0, 0.6), inset 0 1px 1px rgba(255, 255, 255, 0.12);
}

/* Botão de Share no Canto Superior Esquerdo (Estilo Botão Cápsula de Vidro) */
.profile-card-share-btn {
  position: absolute;
  top: 18px;
  left: 18px;
  right: auto;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 0.5px solid rgba(209, 183, 159, 0.5);
  color: var(--color-roast-brown);
  display: none; /* Só visível quando logado */
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.22s var(--ios-spring);
  -webkit-tap-highlight-color: transparent;
  z-index: 10;
  box-shadow: 0 2px 8px rgba(33, 21, 16, 0.06);
}

.profile-card-share-btn:hover {
  background: #FFFFFF;
  transform: scale(1.06);
  border-color: #C5A880;
}

.profile-card-share-btn:active {
  transform: scale(0.92);
}

.profile-card-share-btn svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  stroke-width: 2.1;
  fill: none;
}

[data-theme="dark"] .profile-card-share-btn {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.18);
  color: #FFFFFF;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

[data-theme="dark"] .profile-card-share-btn:hover {
  background: rgba(255, 255, 255, 0.16);
}

.profile-avatar-wrap {
  position: relative;
  width: 80px;
  height: 80px;
  margin: 0 auto 16px auto;
}

.profile-avatar {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: linear-gradient(135deg, #2D1B13 0%, #150E0B 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FFFFFF;
  position: relative;
  box-shadow: 0 8px 24px rgba(45, 27, 19, 0.28);
}

.profile-avatar::before {
  content: '';
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  padding: 2.5px;
  background: linear-gradient(135deg, #D4AF37 0%, #C5A880 50%, #8C5835 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.profile-avatar svg {
  width: 38px;
  height: 38px;
  stroke: #FFFFFF;
  stroke-width: 1.8;
  fill: none;
}

.profile-verified-badge {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #248A3D;
  color: #FFFFFF;
  font-size: 13px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2.5px solid #FFFFFF;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.16);
  z-index: 2;
}

[data-theme="dark"] .profile-verified-badge {
  border-color: #211510;
}

.profile-avatar-initial {
  font-size: 32px;
  font-weight: 850;
  color: #FFFFFF;
  text-transform: uppercase;
  line-height: 1;
  letter-spacing: -0.02em;
}

.profile-name {
  font-size: 21px;
  font-weight: 850;
  color: var(--color-deep-espresso);
  letter-spacing: -0.025em;
  line-height: 1.25;
  margin-top: 0;
  margin-bottom: 6px;
}

[data-theme="dark"] .profile-name {
  color: #FAF7F2;
}

.profile-handle {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.45;
  margin-top: 0;
  margin-bottom: 20px;
  max-width: 300px;
  margin-left: auto;
  margin-right: auto;
  font-weight: 550;
}

/* Linha oficial e dedicada para todos os ícones de conquistas desbloqueadas */
.profile-conquered-badges-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  width: 100%;
  max-width: 100%;
  margin-top: 8px;
  margin-bottom: 4px;
  padding: 4px 6px 4px 14px;
  box-sizing: border-box;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.profile-conquered-badges-row::-webkit-scrollbar {
  display: none;
}

.conquered-badge-icon-item {
  width: 28px;
  height: 28px;
  min-width: 28px;
  min-height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, #F5D77F 0%, #D4AF37 55%, #AA8010 100%);
  border: 1.5px solid rgba(255, 255, 255, 0.95);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  cursor: pointer;
  transition: transform 0.18s cubic-bezier(0.34, 1.56, 0.64, 1);
  -webkit-tap-highlight-color: transparent;
}

.conquered-badge-icon-item:active {
  transform: scale(0.9);
}

.conquered-badge-icon-item svg {
  width: 14px;
  height: 14px;
  stroke: #1A120E;
  stroke-width: 2.2;
  fill: none;
  display: block;
}

/* SEM AURA NO DARK MODE (100% sem brilho/halo difuso) */
[data-theme="dark"] .conquered-badge-icon-item {
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: none !important;
  filter: none !important;
}


/* Container de Usuário Conectado */
.profile-connected-container {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 0;
  margin-bottom: 0;
  animation: profileFadeIn 0.3s ease;
}

@keyframes profileFadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Card de Atalho para o Painel do Curador (Admin) */
.profile-curator-shortcut-card {
  margin-top: 10px;
  margin-bottom: 4px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, rgba(92, 63, 46, 0.08) 0%, rgba(209, 183, 159, 0.24) 100%);
  border: 1px solid var(--color-warm-beige);
  cursor: pointer;
  text-align: left;
  transition: all 0.22s var(--ios-spring);
  -webkit-tap-highlight-color: transparent;
  width: 100%;
}

.profile-curator-shortcut-card:hover {
  transform: translateY(-1px);
  background: linear-gradient(135deg, rgba(92, 63, 46, 0.12) 0%, rgba(209, 183, 159, 0.32) 100%);
}

.profile-curator-shortcut-card:active {
  transform: scale(0.98);
}

.p-curator-shortcut-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--color-roast-brown);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 10px rgba(92, 63, 46, 0.25);
}

.p-curator-shortcut-icon svg {
  width: 18px;
  height: 18px;
  stroke: #FFFFFF;
  stroke-width: 2.2;
  fill: none;
}

.p-curator-shortcut-texts {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.p-curator-shortcut-texts strong {
  font-size: 13px;
  font-weight: 750;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.p-curator-shortcut-texts span {
  font-size: 11px;
  color: var(--text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.p-curator-shortcut-badge {
  font-size: 10.5px;
  font-weight: 750;
  padding: 4px 8px;
  border-radius: var(--radius-full);
  background: var(--color-warm-beige-soft);
  color: var(--color-roast-brown);
  border: 1px solid var(--color-warm-beige);
  letter-spacing: -0.01em;
}

[data-theme="dark"] .profile-curator-shortcut-card {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.18);
}

[data-theme="dark"] .p-curator-shortcut-icon {
  background: #FFFFFF;
  color: #211510;
}

[data-theme="dark"] .p-curator-shortcut-icon svg {
  stroke: #211510;
}

[data-theme="dark"] .p-curator-shortcut-badge {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
  color: #FFFFFF;
}

/* Ações do Canto Superior Direito: Editar Perfil e Sair (Botões Circulares) */
.profile-card-top-actions,
.profile-connected-actions {
  position: absolute;
  top: 16px;
  right: 16px;
  left: auto;
  display: flex;
  align-items: center;
  gap: 8px;
  z-index: 10;
}

.btn-profile-act {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.22s var(--ios-spring);
  -webkit-tap-highlight-color: transparent;
  flex: 0 0 38px;
  position: relative;
}

.btn-profile-act span {
  display: none;
}

.btn-profile-act svg {
  width: 17px;
  height: 17px;
  stroke: currentColor;
  stroke-width: 2.1;
  fill: none;
}

.btn-profile-act-edit {
  background: var(--color-warm-beige-soft);
  border: 1px solid var(--color-warm-beige);
  color: var(--color-roast-brown);
  box-shadow: 0 2px 6px rgba(33, 21, 16, 0.05);
}

.btn-profile-act-edit:hover {
  background: var(--color-warm-beige);
  transform: scale(1.08);
}

.btn-profile-act-edit:active {
  transform: scale(0.92);
}

.btn-profile-act-logout {
  background: rgba(255, 69, 58, 0.08);
  border: 1px solid rgba(255, 69, 58, 0.25);
  color: #FF453A;
  box-shadow: 0 2px 6px rgba(255, 69, 58, 0.08);
}

.btn-profile-act-logout:hover {
  background: rgba(255, 69, 58, 0.16);
  transform: scale(1.08);
}

.btn-profile-act-logout:active {
  transform: scale(0.92);
}

[data-theme="dark"] .btn-profile-act-edit {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  color: #FFFFFF;
}

[data-theme="dark"] .btn-profile-act-edit:hover {
  background: rgba(255, 255, 255, 0.15);
}

[data-theme="dark"] .btn-profile-act-logout {
  background: rgba(255, 69, 58, 0.14);
  border-color: rgba(255, 69, 58, 0.35);
  color: #FF6961;
}

[data-theme="dark"] .btn-profile-act-logout:hover {
  background: rgba(255, 69, 58, 0.22);
}

/* Feedback de Autenticação */
.profile-auth-feedback {
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  text-align: left;
  display: flex;
  align-items: center;
  gap: 7px;
  transition: all 0.2s ease;
}

.profile-auth-feedback.error {
  background: rgba(255, 69, 58, 0.1);
  border: 1px solid rgba(255, 69, 58, 0.3);
  color: #FF453A;
}

.profile-auth-feedback.success {
  background: rgba(48, 209, 88, 0.12);
  border: 1px solid rgba(48, 209, 88, 0.3);
  color: #30D158;
}

/* Modal de Edição de Perfil & Alteração de Senha */
.edit-profile-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(33, 21, 16, 0.65);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  z-index: 1050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: modalFadeIn 0.24s ease;
}

@keyframes modalFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.edit-profile-card {
  background: var(--color-surface-card);
  border: 1px solid var(--color-warm-beige);
  border-radius: var(--radius-xl);
  max-width: 390px;
  width: 100%;
  padding: 24px 20px;
  box-shadow: 0 20px 48px rgba(33, 21, 16, 0.35);
  text-align: center;
  max-height: 90vh;
  overflow-y: auto;
  animation: modalCardPop 0.28s var(--ios-spring);
}

@keyframes modalCardPop {
  from { transform: scale(0.92); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}

.edit-profile-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--color-warm-beige-soft);
  border: 1px solid var(--color-warm-beige);
  color: var(--color-roast-brown);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 10px auto;
}

.edit-profile-icon svg {
  width: 22px;
  height: 22px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
}

.edit-profile-title {
  font-size: 18px;
  font-weight: 800;
  color: var(--text-primary);
  margin-bottom: 3px;
}

.edit-profile-sub {
  font-size: 12px;
  color: var(--text-secondary);
  margin-bottom: 16px;
}

.edit-profile-form {
  display: flex;
  flex-direction: column;
  gap: 11px;
  text-align: left;
}

.profile-input-wrapper.is-disabled {
  opacity: 0.65;
  background: rgba(0, 0, 0, 0.04);
  cursor: not-allowed;
}

.edit-pwd-hint {
  font-size: 11px;
  color: var(--text-tertiary);
  padding-left: 2px;
  margin-top: 2px;
}

.edit-profile-feedback {
  padding: 8px 12px;
  border-radius: var(--radius-sm);
  font-size: 11.5px;
  font-weight: 600;
  line-height: 1.35;
}

.edit-profile-feedback.error {
  background: rgba(255, 69, 58, 0.1);
  border: 1px solid rgba(255, 69, 58, 0.3);
  color: #FF453A;
}

.edit-profile-feedback.success {
  background: rgba(48, 209, 88, 0.12);
  border: 1px solid rgba(48, 209, 88, 0.3);
  color: #30D158;
}

.edit-profile-actions {
  display: flex;
  gap: 10px;
  margin-top: 14px;
}

.btn-edit-cancel {
  flex: 1;
  height: 42px;
  border-radius: var(--radius-md);
  background: var(--color-warm-beige-soft);
  border: 1px solid var(--color-warm-beige);
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 750;
  font-family: inherit;
  cursor: pointer;
  transition: all 0.2s ease;
}

.btn-edit-cancel:active {
  transform: scale(0.97);
}

.btn-edit-save {
  flex: 1.3;
  height: 42px;
  border-radius: var(--radius-md);
  background: var(--color-roast-brown);
  border: none;
  color: #FFFFFF;
  font-size: 13px;
  font-weight: 750;
  font-family: inherit;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(92, 63, 46, 0.25);
  transition: all 0.2s var(--ios-spring);
}

.btn-edit-save:active {
  transform: scale(0.97);
}

[data-theme="dark"] .edit-profile-card {
  background: #211510;
  border-color: rgba(255, 255, 255, 0.18);
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.7);
}

[data-theme="dark"] .edit-profile-icon {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  color: #FFFFFF;
}

[data-theme="dark"] .profile-input-wrapper.is-disabled {
  background: rgba(255, 255, 255, 0.03);
}

[data-theme="dark"] .btn-edit-cancel {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
  color: #FFFFFF;
}

[data-theme="dark"] .btn-edit-save {
  background: #FFFFFF;
  color: #211510;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
}

/* Container do Formulário de Autenticação */
.profile-auth-container {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Seletor Segmentado Apple: Login e Cadastrar (Compacto & Juntinho) */
.auth-segmented-tabs {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-warm-beige-soft);
  border: 1px solid var(--color-warm-beige);
  border-radius: var(--radius-full);
  padding: 3px;
  margin: 0 auto 18px auto;
  width: auto;
  max-width: 204px;
  gap: 2px;
  position: relative;
  box-shadow: inset 0 1px 2px rgba(33, 21, 16, 0.04);
}

.auth-seg-tab {
  flex: 0 0 auto;
  min-width: 86px;
  padding: 5px 12px;
  border-radius: var(--radius-full);
  border: none;
  background: transparent;
  color: var(--text-secondary);
  font-size: 12px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  transition: all 0.2s var(--ios-spring);
  -webkit-tap-highlight-color: transparent;
  text-align: center;
  white-space: nowrap;
}

.auth-seg-tab:active {
  transform: scale(0.95);
}

.auth-seg-tab.active {
  background: #FFFFFF;
  color: #211510;
  box-shadow: 0 2px 6px rgba(33, 21, 16, 0.12);
  font-weight: 800;
}

[data-theme="dark"] .auth-segmented-tabs {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.4);
}

[data-theme="dark"] .auth-seg-tab {
  color: var(--text-tertiary);
}

[data-theme="dark"] .auth-seg-tab.active {
  background: #211510;
  color: #FFFFFF;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
}

/* Formulário de Login & Senha no Card */
.profile-login-form {
  width: 100%;
  margin-top: 0;
  text-align: left;
}

.auth-mode-switch-hint {
  text-align: center;
  margin-top: 10px;
  font-size: 11.5px;
  color: var(--text-secondary);
}

.auth-mode-switch-hint button {
  background: none;
  border: none;
  color: var(--color-roast-brown);
  font-weight: 750;
  cursor: pointer;
  font-family: inherit;
  text-decoration: underline;
  padding: 0 2px;
  font-size: inherit;
}

[data-theme="dark"] .auth-mode-switch-hint button {
  color: var(--color-warm-beige);
}

.profile-form-inputs {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.profile-field-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.profile-field-label {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--text-secondary);
  letter-spacing: -0.01em;
  padding-left: 2px;
}

.profile-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  background: var(--color-bg-base);
  border: 1px solid var(--color-warm-beige);
  border-radius: var(--radius-md);
  padding: 0 12px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.profile-input-wrapper:focus-within {
  border-color: var(--color-roast-brown);
  box-shadow: 0 0 0 3px rgba(92, 63, 46, 0.12);
}

[data-theme="dark"] .profile-input-wrapper {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.16);
}

[data-theme="dark"] .profile-input-wrapper:focus-within {
  border-color: #FFFFFF;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.15);
}

.profile-field-icon {
  width: 17px;
  height: 17px;
  stroke: var(--text-tertiary);
  stroke-width: 2;
  fill: none;
  flex-shrink: 0;
  margin-right: 8px;
}

.profile-input {
  width: 100%;
  height: 42px;
  border: none;
  background: transparent;
  color: var(--text-primary);
  font-size: 13.5px;
  font-family: inherit;
  font-weight: 550;
  outline: none;
}

.profile-input::placeholder {
  color: var(--text-muted);
  font-weight: 400;
}

.btn-pwd-eye {
  background: transparent;
  border: none;
  padding: 8px 4px;
  cursor: pointer;
  color: var(--text-tertiary);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease;
}

.btn-pwd-eye:hover {
  color: var(--text-primary);
}

.btn-pwd-eye svg {
  width: 17px;
  height: 17px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
}

/* Caixa de Reconfirmar Senha: SÓ ABRE APÓS INSERIR A SENHA */
.profile-confirm-group {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  margin-top: -6px;
  transform: translateY(-8px);
  pointer-events: none;
  transition: max-height 0.38s var(--ios-spring),
              opacity 0.28s ease,
              transform 0.38s var(--ios-spring),
              margin-top 0.28s ease;
}

.profile-confirm-group.is-open {
  max-height: 110px;
  opacity: 1;
  margin-top: 0;
  transform: translateY(0);
  pointer-events: auto;
}

.profile-pwd-match-hint {
  font-size: 11px;
  font-weight: 600;
  margin-top: 4px;
  padding-left: 2px;
  min-height: 14px;
  transition: color 0.2s ease;
}

.profile-pwd-match-hint.match {
  color: #30D158;
}

.profile-pwd-match-hint.mismatch {
  color: #FF453A;
}

/* Botão Conectar / Salvar Conta */
.profile-submit-btn {
  margin-top: 4px;
  width: 100%;
  height: 44px;
  border-radius: var(--radius-md);
  background: var(--color-roast-brown);
  border: none;
  color: #FFFFFF;
  font-size: 13.5px;
  font-weight: 750;
  font-family: inherit;
  letter-spacing: -0.01em;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(92, 63, 46, 0.25);
  transition: transform 0.18s var(--ios-spring), background-color 0.2s ease, opacity 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

.profile-submit-btn:active {
  transform: scale(0.985);
  opacity: 0.92;
}

.profile-submit-btn svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  stroke-width: 2.2;
  fill: none;
}

[data-theme="dark"] .profile-submit-btn {
  background: #FFFFFF;
  color: #211510;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
}

/* Métricas Rápidas: Apenas Favoritos e Explorados (Equilibrado em 2 Colunas com Finesse) */
.profile-stats-row {
  display: flex;
  align-items: center;
  justify-content: space-around;
  margin-top: 14px;
  padding-top: 18px;
  border-top: 0.5px solid rgba(209, 183, 159, 0.4);
}

[data-theme="dark"] .profile-stats-row {
  border-top-color: rgba(255, 255, 255, 0.12);
}

.p-stat {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.p-stat-clickable {
  cursor: pointer;
  transition: transform 0.2s var(--ios-spring), background-color 0.2s ease;
  border-radius: var(--radius-md);
  padding: 6px 14px;
  -webkit-tap-highlight-color: transparent;
}

.p-stat-clickable:active {
  transform: scale(0.94);
  background: rgba(209, 183, 159, 0.15);
}

.p-stat-val {
  font-size: 22px;
  font-weight: 850;
  color: var(--color-deep-espresso);
  letter-spacing: -0.02em;
  line-height: 1.1;
}

[data-theme="dark"] .p-stat-val {
  color: #FAF7F2;
}

.p-stat-lbl {
  font-size: 10px;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-tertiary);
  margin-top: 4px;
}

.p-stat-divider {
  width: 0.5px;
  height: 32px;
  background: rgba(209, 183, 159, 0.45);
}

[data-theme="dark"] .p-stat-divider {
  background: rgba(255, 255, 255, 0.12);
}

/* Destaque Apple para o Botão de Share */
.profile-share-btn-highlight {
  border-color: rgba(92, 63, 46, 0.22);
}

.p-act-share-icon {
  background: rgba(92, 63, 46, 0.12);
  color: var(--color-roast-brown);
}

[data-theme="dark"] .profile-share-btn-highlight {
  border-color: rgba(255, 255, 255, 0.18);
}

[data-theme="dark"] .p-act-share-icon {
  background: rgba(255, 255, 255, 0.12);
  color: #FFFFFF;
}

/* Ações Rápidas do Perfil */
.profile-actions-section {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 24px;
}

.profile-action-btn {
  width: 100%;
  padding: 14px 16px;
  border-radius: var(--radius-lg);
  background: var(--color-surface-card);
  border: 1px solid var(--color-warm-beige);
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  transition: transform var(--transition-fast), background-color var(--transition-fast);
}

.profile-action-btn:active {
  transform: scale(0.985);
  background: var(--color-warm-beige-soft);
}

.p-act-left {
  display: flex;
  align-items: center;
  gap: 12px;
}

.p-act-icon {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-md);
  background: var(--color-warm-beige-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-roast-brown);
}

[data-theme="dark"] .p-act-icon {
  color: var(--color-warm-beige);
}

.p-act-icon svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
}

.p-act-texts strong {
  display: block;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--text-primary);
}

.p-act-texts span {
  display: block;
  font-size: 11.5px;
  color: var(--text-secondary);
  margin-top: 1px;
}

.p-act-arrow {
  width: 16px;
  height: 16px;
  stroke: var(--text-tertiary);
  stroke-width: 2.2;
  fill: none;
}

.p-act-badge {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--color-roast-brown);
  padding: 4px 10px;
  background: var(--color-warm-beige-soft);
  border-radius: var(--radius-full);
}

[data-theme="dark"] .p-act-badge {
  color: var(--color-warm-beige);
}

/* ==========================================================================
   Seções Enriquecidas do Perfil: Visitas, Badges, Preferências & Editorial
   Estilo Alta Gastronomia & Revista Monocle / Kinfolk
   ========================================================================== */

/* Cabeçalhos Padronizados das Seções */
.profile-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 26px;
  margin-bottom: 14px;
  padding: 0 4px;
}

.p-sec-title-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
}

.p-sec-icon {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  background: rgba(197, 168, 128, 0.14);
  color: #8C5835;
  border: 0.5px solid rgba(197, 168, 128, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(197, 168, 128, 0.08);
}

.p-sec-icon svg {
  width: 17px;
  height: 17px;
  stroke: currentColor;
  stroke-width: 2.1;
  fill: none;
}

.p-sec-icon-gold {
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.16) 0%, rgba(197, 168, 128, 0.22) 100%);
  color: #B45309;
  border-color: rgba(212, 175, 55, 0.4);
}

.p-sec-icon-warm {
  background: rgba(194, 65, 12, 0.12);
  color: #C2410C;
  border-color: rgba(194, 65, 12, 0.28);
}

[data-theme="dark"] .p-sec-icon {
  background: rgba(255, 255, 255, 0.08);
  color: var(--color-warm-beige);
  border-color: rgba(255, 255, 255, 0.14);
}

[data-theme="dark"] .p-sec-icon-gold {
  background: rgba(255, 193, 7, 0.15);
  color: #FBBF24;
  border-color: rgba(255, 193, 7, 0.3);
}

.profile-section-title {
  font-size: 16.5px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--text-primary);
}

.p-sec-count-badge {
  font-size: 11px;
  font-weight: 750;
  letter-spacing: 0.02em;
  color: #8C5835;
  background: rgba(197, 168, 128, 0.14);
  border: 0.5px solid rgba(197, 168, 128, 0.38);
  padding: 3px 10px;
  border-radius: var(--radius-full);
}

[data-theme="dark"] .p-sec-count-badge {
  color: #FAF7F2;
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.18);
}

.p-sec-sub-count,
.p-sec-hint-pill {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-tertiary);
  letter-spacing: -0.01em;
}

/* 1. CARROSSEL HORIZONTAL DE BRUNCHS VISITADOS (Apple Horizontal Scroll com Finesse) */
.visited-spots-carousel {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 4px 4px 16px 4px;
  margin: 0 -16px;
  padding-left: 16px;
  padding-right: 16px;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
}

.visited-spots-carousel::-webkit-scrollbar {
  display: none;
}

.visited-mini-card {
  flex: 0 0 156px;
  width: 156px;
  scroll-snap-align: start;
  background: var(--color-surface-card);
  border: 0.5px solid rgba(209, 183, 159, 0.5);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(33, 21, 16, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.8);
  cursor: pointer;
  transition: transform 0.22s var(--ios-spring), box-shadow 0.22s ease;
  -webkit-tap-highlight-color: transparent;
  display: flex;
  flex-direction: column;
}

[data-theme="dark"] .visited-mini-card {
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: 0 8px 26px rgba(0, 0, 0, 0.5);
}

.visited-mini-card:active {
  transform: scale(0.96);
}

.visited-card-thumb-wrap {
  position: relative;
  width: 100%;
  height: 118px;
  background: var(--color-bg-base);
  overflow: hidden;
}

.visited-card-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.visited-mini-card:hover .visited-card-thumb {
  transform: scale(1.06);
}

.visited-checkin-tag {
  position: absolute;
  top: 8px;
  left: 8px;
  background: rgba(33, 21, 16, 0.90);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #FAF7F2;
  border: 0.5px solid rgba(212, 175, 55, 0.5);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.05em;
  padding: 3px 8px;
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4.5px;
  line-height: 1;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25);
  box-sizing: border-box;
}

.visited-tag-star-svg {
  width: 9.5px;
  height: 9.5px;
  color: #D4AF37;
  display: block;
  flex-shrink: 0;
}

.visited-tag-text {
  display: inline-block;
  line-height: 1;
}

.visited-tag-star {
  color: #D4AF37;
  font-size: 10px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.visited-card-details {
  padding: 11px 12px 13px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
}

.visited-card-title {
  font-size: 13px;
  font-weight: 750;
  color: var(--text-primary);
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: -0.01em;
}

.visited-card-neighborhood {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: var(--text-secondary);
  font-weight: 600;
}

.visited-card-neighborhood svg {
  width: 11px;
  height: 11px;
  stroke: var(--color-roast-brown);
  stroke-width: 2.2;
  fill: none;
  flex-shrink: 0;
}

[data-theme="dark"] .visited-card-neighborhood svg {
  stroke: var(--color-warm-beige);
}

/* ========================================================================== */
/* ABA SALVOS: GRID CLÁSSICO DE MINI CARDS EM 2 COLUNAS                      */
/* ========================================================================== */
.favorites-classic-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  padding: 4px 16px 36px 16px;
}

.fav-classic-mini-card {
  background: var(--color-surface-card);
  border: 0.5px solid rgba(209, 183, 159, 0.45);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(33, 21, 16, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.8);
  cursor: pointer;
  transition: transform 0.22s var(--ios-spring), box-shadow 0.22s ease;
  -webkit-tap-highlight-color: transparent;
  display: flex;
  flex-direction: column;
}

[data-theme="dark"] .fav-classic-mini-card {
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: 0 8px 26px rgba(0, 0, 0, 0.5);
}

.fav-classic-mini-card:active {
  transform: scale(0.96);
}

.fav-card-thumb-wrap {
  position: relative;
  width: 100%;
  height: 126px;
  background: var(--color-bg-base);
  overflow: hidden;
}

.fav-card-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.fav-classic-mini-card:hover .fav-card-thumb {
  transform: scale(1.05);
}

.fav-checkin-tag {
  position: absolute;
  top: 8px;
  left: 8px;
  background: rgba(33, 21, 16, 0.90);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #FAF7F2;
  border: 0.5px solid rgba(212, 175, 55, 0.5);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.05em;
  padding: 3.5px 8px;
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4.5px;
  line-height: 1;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25);
  box-sizing: border-box;
}

.fav-checkin-tag.is-saved {
  border-color: rgba(209, 183, 159, 0.5);
}

.fav-card-heart-btn {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(33, 21, 16, 0.65);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 0.5px solid rgba(255, 255, 255, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: transform 0.18s ease;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

.fav-card-heart-btn:active {
  transform: scale(0.85);
}

.fav-card-heart-btn svg {
  width: 14px;
  height: 14px;
  display: block;
}

.fav-card-details {
  padding: 11px 12px 13px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
}

.fav-card-title {
  font-size: 13.5px;
  font-weight: 750;
  color: var(--text-primary);
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: -0.01em;
}

.fav-card-neighborhood {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11.5px;
  color: var(--text-secondary);
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fav-card-neighborhood svg {
  width: 11px;
  height: 11px;
  stroke: var(--color-roast-brown);
  stroke-width: 2.2;
  fill: none;
  flex-shrink: 0;
}

[data-theme="dark"] .fav-card-neighborhood svg {
  stroke: var(--color-warm-beige);
}

.visited-empty-state {
  width: 100%;
  padding: 28px 22px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(250, 247, 242, 0.8) 0%, rgba(245, 239, 230, 0.6) 100%);
  border: 1px dashed rgba(209, 183, 159, 0.6);
  display: flex;
  align-items: center;
  gap: 16px;
  text-align: left;
  backdrop-filter: blur(8px);
}

[data-theme="dark"] .visited-empty-state {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.16);
}

.visited-empty-icon {
  font-size: 32px;
  flex-shrink: 0;
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.1));
}

.visited-empty-text strong {
  display: block;
  font-size: 13.5px;
  font-weight: 800;
  color: var(--text-primary);
  margin-bottom: 3px;
  letter-spacing: -0.01em;
}

.visited-empty-text span {
  display: block;
  font-size: 12px;
  color: var(--text-secondary);
  line-height: 1.4;
}

/* 2. CONQUISTAS DO EXPLORADOR (Badges Grid de Prestígio) */
.profile-badges-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.p-badge-card {
  background: var(--color-surface-card);
  border: 0.5px solid rgba(209, 183, 159, 0.45);
  border-radius: 20px;
  padding: 14px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  position: relative;
  transition: transform 0.2s var(--ios-spring), box-shadow 0.2s ease;
}

.p-badge-card.is-unlocked {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(250, 246, 238, 0.92) 100%);
  border-color: rgba(197, 168, 128, 0.55);
  box-shadow: 0 6px 20px rgba(197, 168, 128, 0.12), inset 0 1px 1px rgba(255, 255, 255, 0.9);
}

[data-theme="dark"] .p-badge-card.is-unlocked {
  background: linear-gradient(135deg, rgba(35, 25, 21, 0.95) 0%, rgba(26, 19, 16, 0.95) 100%);
  border-color: rgba(212, 175, 55, 0.35);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
}

.p-badge-card.is-locked {
  background: rgba(250, 247, 242, 0.4);
  opacity: 0.55;
  filter: grayscale(0.4);
}

[data-theme="dark"] .p-badge-card.is-locked {
  background: rgba(255, 255, 255, 0.03);
}

.p-badge-top-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.p-badge-icon {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  flex-shrink: 0;
  transition: all 0.28s var(--ios-spring);
  box-sizing: border-box;
}

.p-badge-icon svg {
  width: 21px;
  height: 21px;
  display: block;
  stroke: currentColor;
  transition: transform 0.25s ease;
}

.p-badge-card:hover .p-badge-icon svg {
  transform: scale(1.1);
}

.p-badge-card.is-unlocked .p-badge-icon {
  background: linear-gradient(135deg, #FFF9F0 0%, #F6ECE0 55%, #EBDCC6 100%);
  border: 1.5px solid rgba(212, 175, 55, 0.65);
  color: #8C5822;
  box-shadow: 0 4px 14px rgba(212, 175, 55, 0.22), inset 0 0 0 1.5px rgba(255, 255, 255, 0.9);
}

[data-theme="dark"] .p-badge-card.is-unlocked .p-badge-icon {
  background: linear-gradient(135deg, #3C2B1D 0%, #2A1D13 100%);
  border: 1.5px solid rgba(242, 208, 107, 0.55);
  color: #F4D068;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5), inset 0 0 0 1.5px rgba(255, 255, 255, 0.12);
}

.p-badge-card.is-locked .p-badge-icon {
  background: rgba(238, 233, 226, 0.5);
  border: 1.5px dashed rgba(185, 170, 155, 0.55);
  color: rgba(160, 145, 130, 0.65);
  box-shadow: none;
}

[data-theme="dark"] .p-badge-card.is-locked .p-badge-icon {
  background: rgba(255, 255, 255, 0.04);
  border: 1.5px dashed rgba(255, 255, 255, 0.16);
  color: rgba(255, 255, 255, 0.25);
}

.p-badge-status-pill {
  font-size: 9.5px;
  font-weight: 750;
  padding: 2.5px 8px;
  border-radius: var(--radius-full);
  letter-spacing: 0.02em;
}

.p-badge-card.is-unlocked .p-badge-status-pill {
  background: rgba(36, 138, 61, 0.10);
  color: #248A3D;
  border: 0.5px solid rgba(36, 138, 61, 0.28);
}

[data-theme="dark"] .p-badge-card.is-unlocked .p-badge-status-pill {
  color: #30D158;
  background: rgba(48, 209, 88, 0.16);
  border-color: rgba(48, 209, 88, 0.35);
}

.p-badge-card.is-locked .p-badge-status-pill {
  background: rgba(120, 120, 128, 0.1);
  color: var(--text-tertiary);
}

.p-badge-title {
  font-size: 13px;
  font-weight: 800;
  color: var(--text-primary);
  line-height: 1.25;
  letter-spacing: -0.015em;
}

.p-badge-desc {
  font-size: 11px;
  color: var(--text-secondary);
  line-height: 1.35;
}

@keyframes badgePopIn {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.p-badge-card {
  animation: badgePopIn 0.28s cubic-bezier(0.16, 1, 0.3, 1) backwards;
}

/* 2.1 BOTÃO EXPANDIR CONQUISTAS (+4 POR CLIQUE COM SETA) */
.profile-badges-expand-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 14px;
}

.btn-badges-expand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 10px 22px;
  border-radius: var(--radius-full);
  background: var(--color-surface-card);
  border: 1px solid rgba(209, 183, 159, 0.5);
  color: var(--text-primary);
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 750;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(33, 21, 16, 0.04);
  transition: all 0.25s var(--ios-spring);
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

[data-theme="dark"] .btn-badges-expand {
  background: rgba(35, 25, 21, 0.9);
  border-color: rgba(255, 255, 255, 0.14);
  color: #F8F5EE;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
}

.btn-badges-expand:hover {
  background: var(--color-warm-beige-soft);
  border-color: rgba(197, 168, 128, 0.8);
  transform: translateY(-1px);
}

.btn-badges-expand:active {
  transform: scale(0.96);
}

.btn-badges-expand-icon {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(212, 175, 55, 0.16);
  border: 0.5px solid rgba(212, 175, 55, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #8C5822;
  transition: transform 0.25s ease;
}

[data-theme="dark"] .btn-badges-expand-icon {
  background: rgba(242, 208, 107, 0.18);
  border-color: rgba(242, 208, 107, 0.4);
  color: #F4D068;
}

.btn-badges-expand-icon svg {
  width: 13px;
  height: 13px;
  stroke: currentColor;
  stroke-width: 2.6;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  display: block;
}

.btn-badges-expand:hover .btn-badges-expand-icon {
  transform: translateY(1.5px);
}

.btn-badges-expand.is-collapsed-state:hover .btn-badges-expand-icon {
  transform: translateY(-1.5px);
}

/* 3. PREFERÊNCIAS DO BRUNCHER (Chips Interativos Estilo Atelier de Café) */
.profile-preference-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.p-pref-chip {
  padding: 8px 16px;
  border-radius: var(--radius-full);
  font-size: 12.5px;
  font-weight: 700;
  background: rgba(255, 255, 255, 0.9);
  border: 0.5px solid rgba(209, 183, 159, 0.55);
  color: var(--text-secondary);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.2s var(--ios-spring);
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  box-shadow: 0 2px 6px rgba(33, 21, 16, 0.03);
}

.p-pref-chip:active {
  transform: scale(0.95);
}

.p-pref-chip.active {
  background: #211510;
  color: #FAF7F2;
  border: 0.5px solid rgba(212, 175, 55, 0.5);
  box-shadow: 0 6px 18px rgba(33, 21, 16, 0.18), inset 0 1px 0.5px rgba(255, 255, 255, 0.3);
}

[data-theme="dark"] .p-pref-chip {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.15);
  color: var(--text-secondary);
}

[data-theme="dark"] .p-pref-chip.active {
  background: #FAF7F2;
  color: #211510;
  border-color: #FAF7F2;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

/* 4. CARD EDITORIAL SUGERIR UM BRUNCH (Revista Gastronômica & Kinfolk) */
.profile-editorial-card {
  margin-top: 26px;
  margin-bottom: 22px;
  border-radius: 26px;
  background: linear-gradient(135deg, rgba(248, 243, 235, 0.98) 0%, rgba(240, 231, 218, 0.94) 100%);
  border: 0.5px solid rgba(197, 168, 128, 0.55);
  padding: 24px 22px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 10px 32px rgba(33, 21, 16, 0.05), inset 0 1px 1px rgba(255, 255, 255, 0.9);
}

[data-theme="dark"] .profile-editorial-card {
  background: linear-gradient(135deg, rgba(34, 25, 21, 0.98) 0%, rgba(24, 18, 15, 0.95) 100%);
  border-color: rgba(212, 175, 55, 0.35);
  box-shadow: 0 10px 34px rgba(0, 0, 0, 0.55), inset 0 1px 1px rgba(255, 255, 255, 0.12);
}

.editorial-card-top-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.editorial-card-badge {
  font-size: 9.5px;
  font-weight: 850;
  letter-spacing: 0.1em;
  color: #8C5835;
  text-transform: uppercase;
}

[data-theme="dark"] .editorial-card-badge {
  color: #D4AF37;
}

.editorial-card-city {
  font-size: 11px;
  font-weight: 750;
  color: var(--text-tertiary);
  letter-spacing: 0.04em;
}

.editorial-card-title {
  font-size: 17.5px;
  font-weight: 850;
  letter-spacing: -0.025em;
  color: var(--color-deep-espresso);
  line-height: 1.3;
  margin-bottom: 8px;
}

[data-theme="dark"] .editorial-card-title {
  color: #FAF7F2;
}

.editorial-card-desc {
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--text-secondary);
  margin-bottom: 18px;
}

.btn-editorial-suggest {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 24px;
  border-radius: var(--radius-full);
  background: linear-gradient(135deg, #2A1C16 0%, #170E0A 100%);
  color: #FAF7F2;
  border: 1px solid rgba(212, 175, 55, 0.45);
  font-size: 13px;
  font-weight: 750;
  font-family: inherit;
  cursor: pointer;
  transition: all 0.24s var(--ios-spring);
  -webkit-tap-highlight-color: transparent;
  box-shadow: 0 6px 20px rgba(33, 21, 16, 0.22), inset 0 1px 1px rgba(255, 255, 255, 0.12);
  user-select: none;
}

.btn-editorial-suggest-icon {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(212, 175, 55, 0.2);
  border: 0.5px solid rgba(212, 175, 55, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #F4D068;
  flex-shrink: 0;
  transition: transform 0.24s ease;
}

.btn-editorial-suggest-icon svg {
  width: 12px;
  height: 12px;
  display: block;
}

.btn-editorial-suggest:hover {
  transform: translateY(-1.5px);
  background: linear-gradient(135deg, #35231B 0%, #1E120D 100%);
  border-color: rgba(212, 175, 55, 0.7);
  box-shadow: 0 10px 28px rgba(33, 21, 16, 0.32);
}

.btn-editorial-suggest:hover .btn-editorial-suggest-icon {
  transform: scale(1.12) rotate(6deg);
}

.btn-editorial-suggest:active {
  transform: scale(0.96);
}

[data-theme="dark"] .btn-editorial-suggest {
  background: linear-gradient(135deg, #FAF7F2 0%, #E8E2D5 100%);
  color: #1F140E;
  border-color: rgba(212, 175, 55, 0.6);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.5);
}

[data-theme="dark"] .btn-editorial-suggest .btn-editorial-suggest-icon {
  background: rgba(33, 21, 16, 0.12);
  border-color: rgba(33, 21, 16, 0.2);
  color: #8C5822;
}

/* Contador de Palavras no Modal de Sugestão (Máx 20 palavras) */
.suggest-word-counter {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-tertiary);
  background: var(--color-warm-beige-soft);
  padding: 2.5px 8.5px;
  border-radius: var(--radius-full);
  letter-spacing: 0.02em;
  transition: all 0.2s ease;
}

.suggest-word-counter.is-limit {
  color: #D32F2F;
  background: rgba(211, 47, 47, 0.12);
  font-weight: 800;
}

/* Painel de Sugestões na Área do Admin */
.admin-suggestions-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 14px;
}

.admin-suggestion-card {
  background: var(--color-surface-card);
  border: 1px solid rgba(209, 183, 159, 0.45);
  border-radius: 18px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  box-shadow: 0 4px 14px rgba(33, 21, 16, 0.04);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.admin-suggestion-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.admin-sug-name {
  font-size: 15px;
  font-weight: 800;
  color: var(--text-primary);
  line-height: 1.25;
}

.admin-sug-neighborhood {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 700;
  color: #8C5822;
  background: rgba(212, 175, 55, 0.15);
  padding: 2.5px 8px;
  border-radius: var(--radius-full);
  margin-top: 4px;
}

[data-theme="dark"] .admin-sug-neighborhood {
  color: #F4D068;
  background: rgba(242, 208, 107, 0.18);
}

.admin-sug-date {
  font-size: 11px;
  color: var(--text-tertiary);
  white-space: nowrap;
}

.admin-sug-quote {
  background: var(--color-warm-beige-soft);
  border-left: 3px solid rgba(212, 175, 55, 0.7);
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 12.5px;
  color: var(--text-secondary);
  line-height: 1.45;
  font-style: italic;
}

.admin-sug-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 4px;
  padding-top: 10px;
  border-top: 1px solid var(--color-warm-beige-soft);
}

.btn-sug-use {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  background: var(--color-deep-espresso);
  color: #FAF7F2;
  border: none;
  border-radius: var(--radius-full);
  font-size: 11.5px;
  font-weight: 750;
  cursor: pointer;
  transition: all 0.2s ease;
}

.btn-sug-use:hover {
  background: #3A261D;
  transform: translateY(-1px);
}

.btn-sug-dismiss {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 7px 12px;
  background: transparent;
  color: var(--text-tertiary);
  border: 1px solid rgba(120, 120, 128, 0.25);
  border-radius: var(--radius-full);
  font-size: 11.5px;
  font-weight: 650;
  cursor: pointer;
  transition: all 0.2s ease;
}

.btn-sug-dismiss:hover {
  color: #D32F2F;
  border-color: rgba(211, 47, 47, 0.4);
  background: rgba(211, 47, 47, 0.05);
}

.admin-sug-empty {
  text-align: center;
  padding: 40px 20px;
  color: var(--text-secondary);
}

.admin-sug-empty-icon {
  font-size: 32px;
  margin-bottom: 8px;
}

/* 5. BANNER & BOTÃO DE CHECK-IN NO MODAL BOTTOM SHEET (Gourmet Chic) */
.sheet-checkin-banner {
  margin-bottom: 18px;
}

.sheet-checkin-cta-btn {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 13px 16px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(36, 138, 61, 0.08) 0%, rgba(197, 168, 128, 0.12) 100%);
  border: 0.5px solid rgba(36, 138, 61, 0.35);
  cursor: pointer;
  text-align: left;
  transition: all 0.2s var(--ios-spring);
  -webkit-tap-highlight-color: transparent;
  box-shadow: 0 4px 14px rgba(36, 138, 61, 0.06);
}

.sheet-checkin-cta-btn:active {
  transform: scale(0.98);
}

.checkin-btn-icon {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: #248A3D;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(36, 138, 61, 0.3);
}

.checkin-btn-icon svg {
  width: 18px;
  height: 18px;
  stroke: #FFFFFF;
  stroke-width: 2.3;
  fill: none;
}

.checkin-btn-text strong {
  display: block;
  font-size: 13.5px;
  font-weight: 800;
  color: var(--text-primary);
  line-height: 1.25;
  letter-spacing: -0.01em;
}

.checkin-btn-text span {
  display: block;
  font-size: 11px;
  color: var(--text-secondary);
  margin-top: 2px;
}

.sheet-checkedin-badge {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 18px;
  border-radius: 20px;
  background: rgba(36, 138, 61, 0.1);
  border: 0.5px solid rgba(36, 138, 61, 0.35);
  color: #248A3D;
  font-size: 13px;
  font-weight: 750;
  box-shadow: 0 4px 12px rgba(36, 138, 61, 0.06);
}

.sheet-checkedin-badge svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  stroke-width: 2.4;
  fill: none;
  flex-shrink: 0;
}

[data-theme="dark"] .sheet-checkedin-badge {
  color: #30D158;
  background: rgba(48, 209, 88, 0.14);
  border-color: rgba(48, 209, 88, 0.4);
}

/* Card do Manifesto B Iced Latte */
.manifesto-card-section {
  background: var(--color-surface-card);
  border: 1px solid var(--color-warm-beige);
  border-radius: var(--radius-xl);
  padding: 22px 18px;
}

.manifesto-card-header {
  text-align: center;
  margin-bottom: 18px;
}

.manifesto-logo-frame {
  width: 64px;
  height: 64px;
  margin: 0 auto 10px auto;
  padding: 6px;
  border-radius: var(--radius-lg);
  background: var(--color-bg-base);
  border: 1px solid var(--color-warm-beige);
}

.manifesto-logo-frame img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.manifesto-title {
  font-size: 18px;
  font-weight: 800;
  color: var(--text-primary);
  letter-spacing: -0.02em;
  margin-top: 8px;
}

.manifesto-lead {
  font-size: 13px;
  line-height: 1.45;
  color: var(--text-secondary);
  margin-top: 5px;
}

.manifesto-swatches-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin: 16px 0;
}

.swatch-card {
  padding: 10px 12px;
  border-radius: var(--radius-md);
  font-size: 11.5px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.swatch-card strong {
  font-size: 12px;
  font-weight: 700;
}

.swatch-card span {
  font-size: 10.5px;
  opacity: 0.85;
}

.manifesto-rules-box {
  background: var(--color-bg-base);
  border: 1px solid var(--color-warm-beige);
  border-radius: var(--radius-lg);
  padding: 14px;
  margin-top: 14px;
}

.manifesto-rules-box h4 {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-roast-brown);
  margin-bottom: 8px;
}

[data-theme="dark"] .manifesto-rules-box h4 {
  color: var(--color-warm-beige);
}

.manifesto-rules-box ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.manifesto-rules-box li {
  font-size: 12px;
  line-height: 1.45;
  color: var(--text-secondary);
  margin-bottom: 8px;
  padding-left: 12px;
  position: relative;
}

.manifesto-rules-box li::before {
  content: '•';
  position: absolute;
  left: 0;
  color: var(--color-roast-brown);
  font-weight: bold;
}

/* ==========================================================================
   Modal Bottom Sheet: Destaques de Menu & Botão Compartilhar iOS
   ========================================================================== */
.sheet-menu-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}

.sheet-menu-item {
  padding: 10px 12px;
  background: var(--color-bg-base);
  border: 1px solid var(--color-warm-beige);
  border-radius: var(--radius-md);
}

.menu-item-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.menu-item-name {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--text-primary);
}

.menu-item-price {
  font-size: 13px;
  font-weight: 800;
  color: var(--color-roast-brown);
}

[data-theme="dark"] .menu-item-price {
  color: var(--color-warm-beige);
}

.menu-item-desc {
  font-size: 11.5px;
  color: var(--text-secondary);
  margin-top: 2px;
  line-height: 1.35;
}

.sheet-share-cta-btn {
  width: 100%;
  margin-top: 14px;
  padding: 13px 16px;
  background: var(--color-roast-brown);
  color: #FFFFFF;
  border: none;
  border-radius: var(--radius-lg);
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(92, 63, 46, 0.25);
  transition: transform var(--transition-fast);
}

.sheet-share-cta-btn:active {
  transform: scale(0.97);
}

.sheet-share-cta-btn svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  stroke-width: 2.2;
  fill: none;
}

/* ==========================================================================
   Toast de Notificação Apple Dynamic Island / Capsule HUD
   ========================================================================== */
.toast-notice {
  position: fixed;
  top: calc(var(--sat) + 12px);
  left: 50%;
  transform: translate(-50%, -140%) scale(0.92);
  background: rgba(33, 21, 16, 0.90);
  backdrop-filter: blur(32px) saturate(190%);
  -webkit-backdrop-filter: blur(32px) saturate(190%);
  color: #FAF7F2;
  padding: 10px 20px;
  border-radius: var(--radius-full);
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13.5px;
  font-weight: 650;
  letter-spacing: -0.01em;
  z-index: 9999;
  border: 0.5px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 10px 32px rgba(0, 0, 0, 0.25), inset 0 1px 0.5px rgba(255, 255, 255, 0.35);
  pointer-events: none;
  opacity: 0;
  transition: transform 0.36s cubic-bezier(0.18, 0.89, 0.32, 1.25), opacity 0.24s ease;
}

[data-theme="dark"] .toast-notice {
  background: rgba(250, 247, 242, 0.92);
  color: #1A130F;
  border-color: rgba(0, 0, 0, 0.08);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.5);
}

.toast-notice.show {
  opacity: 1;
  transform: translate(-50%, 0) scale(1);
}

.toast-notice svg {
  width: 17px;
  height: 17px;
  stroke: var(--apple-system-green);
  stroke-width: 2.6;
  fill: none;
  flex-shrink: 0;
}

/* ==========================================================================
   Skeleton Shimmer
   ========================================================================== */
.skeleton-card {
  height: 290px;
  border-radius: var(--radius-xl);
  background: linear-gradient(90deg, var(--color-warm-beige-soft) 25%, rgba(209, 183, 159, 0.2) 50%, var(--color-warm-beige-soft) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.6s infinite;
  border: 1px solid var(--color-warm-beige);
}

@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ==========================================================================
   Harmonia Visual Contínua (Sem Bordas Laterais • 100% em Sintonia)
   ========================================================================== */
@media (min-width: 620px) {
  body {
    background-color: var(--color-bg-base);
    padding: 0;
  }

  #app {
    height: 100vh;
    max-height: 100vh;
    border: none;
    border-radius: 0;
    box-shadow: none;
  }
}

/* ==========================================================================
   Modal Visualizador de Foto do Menu / Galeria (Lightbox Apple HIG)
   ========================================================================== */
.photo-viewer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(14, 9, 7, 0.96);
  backdrop-filter: blur(28px);
  -webkit-backdrop-filter: blur(28px);
  z-index: 3000;
  display: flex;
  flex-direction: column;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.28s ease, visibility 0.28s;
  visibility: hidden;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

.photo-viewer-backdrop.active {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}

.photo-viewer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: calc(var(--sat) + 14px) 18px 12px 18px;
  background: rgba(25, 16, 12, 0.75);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  z-index: 20;
  flex-shrink: 0;
}

.photo-viewer-title-wrap {
  display: flex;
  flex-direction: column;
  gap: 2px;
  overflow: hidden;
  max-width: calc(100% - 130px);
}

.photo-viewer-badge {
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: var(--color-warm-beige);
  text-transform: uppercase;
}

.photo-viewer-title {
  font-size: 15px;
  font-weight: 700;
  color: #FFFFFF;
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.photo-viewer-header-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.photo-viewer-counter {
  font-size: 11.5px;
  font-weight: 750;
  color: rgba(255, 255, 255, 0.85);
  background: rgba(255, 255, 255, 0.14);
  padding: 4px 10px;
  border-radius: var(--radius-full);
  letter-spacing: 0.04em;
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.photo-viewer-close-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform var(--transition-fast), background-color var(--transition-fast);
}

.photo-viewer-close-btn:active {
  transform: scale(0.9);
  background: rgba(255, 255, 255, 0.3);
}

.photo-viewer-close-btn svg {
  width: 18px;
  height: 18px;
  stroke: #FFFFFF;
  stroke-width: 2.2;
}

.photo-viewer-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
  user-select: none;
  -webkit-user-select: none;
}

.photo-viewer-slider {
  flex: 1;
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
  touch-action: none;
  display: flex;
}

.photo-viewer-track {
  display: flex;
  width: 100%;
  height: 100%;
  will-change: transform;
}

.photo-viewer-slide {
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  touch-action: none;
}

.photo-slide-viewport {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  cursor: grab;
}

.photo-slide-viewport.is-dragging {
  cursor: grabbing;
}

.photo-slide-img-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 92%;
  max-height: 78vh;
  position: relative;
  transform-origin: center center;
  will-change: transform;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
}

.photo-slide-img {
  max-width: 100%;
  max-height: 76vh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: var(--radius-md);
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.65);
  pointer-events: none;
  -webkit-user-drag: none;
}

/* Botões de navegação lateral (Anterior / Próxima) */
.photo-viewer-nav-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(25, 18, 14, 0.75);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.22);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 15;
  transition: opacity 0.2s ease, transform 0.2s var(--ios-spring), background-color 0.2s;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
  -webkit-tap-highlight-color: transparent;
}

.photo-viewer-nav-btn:hover {
  background: rgba(45, 30, 22, 0.9);
  border-color: rgba(255, 255, 255, 0.4);
}

.photo-viewer-nav-btn:active {
  transform: translateY(-50%) scale(0.92);
}

.photo-viewer-nav-btn.disabled {
  opacity: 0.18;
  pointer-events: none;
}

.photo-nav-prev {
  left: 14px;
}

.photo-nav-next {
  right: 14px;
}

.photo-viewer-nav-btn svg {
  width: 20px;
  height: 20px;
}

.photo-viewer-footer {
  padding-bottom: calc(var(--sab) + 14px);
  padding-top: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  z-index: 10;
  flex-shrink: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(14, 9, 7, 0.8) 100%);
}

.photo-viewer-dots {
  display: flex;
  gap: 6px;
  align-items: center;
  justify-content: center;
}

.photo-viewer-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
  transition: all 0.25s var(--ios-spring);
  cursor: pointer;
}

.photo-viewer-dot.active {
  width: 20px;
  border-radius: 999px;
  background: var(--color-warm-beige);
}

.photo-viewer-hint {
  font-size: 11.5px;
  color: rgba(255, 255, 255, 0.6);
  text-align: center;
  font-weight: 500;
  letter-spacing: 0.02em;
  margin: 0;
}

/* ==========================================================================
   PORTAL DO CURADOR & ÁREA DE ADMIN (GUILHERME & LUCAS)
   ========================================================================== */

/* 1. Modal de PIN de Segurança */
.admin-auth-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(33, 21, 16, 0.65);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  z-index: 5000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.admin-auth-card {
  width: 100%;
  max-width: 320px;
  background: var(--color-surface-card);
  border: 1px solid var(--color-warm-beige);
  border-radius: var(--radius-xl);
  padding: 28px 24px;
  text-align: center;
  box-shadow: 0 24px 56px rgba(33, 21, 16, 0.35);
  animation: auth-card-pop 0.28s var(--ios-spring);
}

@keyframes auth-card-pop {
  0% { transform: scale(0.9); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}

.admin-auth-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--color-warm-beige-soft);
  color: var(--color-roast-brown);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 12px;
}

.admin-auth-icon svg {
  width: 24px;
  height: 24px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
}

.admin-auth-title {
  font-size: 20px;
  font-weight: 800;
  color: var(--color-deep-espresso);
  margin-bottom: 4px;
}

.admin-auth-sub {
  font-size: 12.5px;
  color: var(--text-secondary);
  margin-bottom: 18px;
}

.admin-email-auth-wrap {
  margin-bottom: 14px;
}

.admin-auth-field-box {
  display: flex;
  align-items: center;
  background: var(--color-bg-base);
  border: 1.5px solid var(--color-warm-beige);
  border-radius: var(--radius-md);
  padding: 0 12px;
  height: 46px;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.admin-auth-field-box:focus-within {
  border-color: var(--color-roast-brown);
  box-shadow: 0 0 0 3px rgba(92, 63, 46, 0.12);
}

[data-theme="dark"] .admin-auth-field-box {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.18);
}

[data-theme="dark"] .admin-auth-field-box:focus-within {
  border-color: #FFFFFF;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.15);
}

.admin-auth-field-icon {
  width: 18px;
  height: 18px;
  stroke: var(--text-tertiary);
  stroke-width: 2;
  fill: none;
  margin-right: 8px;
  flex-shrink: 0;
}

.admin-auth-input {
  width: 100%;
  height: 100%;
  border: none;
  background: transparent;
  color: var(--text-primary);
  font-size: 13.5px;
  font-family: inherit;
  font-weight: 600;
  outline: none;
}

.admin-auth-input::placeholder {
  color: var(--text-muted);
  font-weight: 400;
}

.admin-pin-error {
  font-size: 12px;
  color: #c9342b;
  font-weight: 600;
  margin-bottom: 12px;
}

.admin-auth-btns {
  display: flex;
  gap: 10px;
}

.btn-admin-cancel, .btn-admin-submit {
  flex: 1;
  height: 42px;
  border-radius: var(--radius-full);
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
  border: none;
  transition: transform var(--transition-fast), opacity var(--transition-fast);
}

.btn-admin-cancel {
  background: var(--color-warm-beige-soft);
  color: var(--text-primary);
}

.btn-admin-submit {
  background: var(--color-roast-brown);
  color: #FAF7F2;
}

.btn-admin-cancel:active, .btn-admin-submit:active {
  transform: scale(0.95);
}

/* ============================================================================
   APLICATIVO DEDICADO DO ADMINISTRADOR (NOBRUNCH STUDIO & CURADORIA)
   Experiência autônoma com Header próprio, Rodapé próprio e sem seta de voltar
   ============================================================================ */

/* 1. Ativação do Modo Aplicativo do Admin */
body.admin-studio-active {
  background: var(--color-bg-base);
}

body.admin-studio-active #appFixedHeader,
body.admin-studio-active #appMainTabbar {
  display: none !important;
}

body.admin-studio-active #adminStudioHeader {
  display: block !important;
}

body.admin-studio-active #adminPortalFooterNav {
  display: block !important;
}

body.admin-studio-active #btnAdminFabAdd {
  display: flex !important;
}

body.admin-studio-active #viewCurator {
  display: block !important;
  animation: studio-app-enter 0.32s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes studio-app-enter {
  from {
    opacity: 0;
    transform: scale(0.985) translateY(6px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.curator-view-screen {
  padding-top: 14px;
  padding-bottom: calc(var(--sab) + 115px);
  background: var(--color-bg-base);
  min-height: 100%;
}

/* 2. Header do Aplicativo do Admin (NoBrunch Studio • 100% Estático e Fixo Fora do Scroll) */
.admin-studio-header {
  flex-shrink: 0;
  width: 100%;
  background-color: var(--color-bg-base);
  padding-top: calc(var(--sat) + 8px);
  padding-left: 16px;
  padding-right: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--color-warm-beige-soft);
  z-index: 1000;
  box-shadow: none !important;
  border-top: none !important;
  overflow: visible;
  transition: background-color var(--transition-normal);
}

[data-theme="dark"] .admin-studio-header {
  background-color: var(--color-bg-base);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.admin-studio-header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.admin-studio-brand {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex-shrink: 1;
}

.admin-studio-logo-frame {
  width: 34px;
  height: 34px;
  border-radius: 11px;
  background: var(--color-surface-card);
  border: 1px solid rgba(209, 183, 159, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(33, 21, 16, 0.05);
  padding: 3px;
}

[data-theme="dark"] .admin-studio-logo-frame {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.12);
}

.admin-studio-logo-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.admin-studio-titles {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.admin-studio-app-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 2px;
}

.admin-badge-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #30D158;
  box-shadow: 0 0 8px rgba(48, 209, 88, 0.8);
  animation: pulse-dot 2s infinite ease-in-out;
}

@keyframes pulse-dot {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.3); opacity: 0.7; }
}

.admin-badge-label {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-tertiary);
}

.admin-studio-title {
  font-size: 16.5px;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--color-deep-espresso);
  margin: 0;
  line-height: 1.1;
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}

[data-theme="dark"] .admin-studio-title {
  color: #FAF7F2;
}

.admin-studio-title-accent {
  color: var(--color-roast-brown);
  font-weight: 800;
}

[data-theme="dark"] .admin-studio-title-accent {
  color: var(--color-warm-beige);
}

.admin-studio-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.btn-admin-theme-toggle {
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: rgba(33, 21, 16, 0.06);
  border: 1px solid rgba(209, 183, 159, 0.35);
  color: var(--color-deep-espresso);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform var(--transition-fast), background var(--transition-fast);
}

[data-theme="dark"] .btn-admin-theme-toggle {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.12);
  color: #FAF7F2;
}

.btn-admin-theme-toggle:active {
  transform: scale(0.92);
}

.btn-admin-theme-toggle svg {
  width: 17px;
  height: 17px;
  stroke: currentColor;
  stroke-width: 2.2;
  fill: none;
}

/* 3. Botão Oficial de Retornar ao Perfil (Seta para Voltar ao Perfil) */
.btn-admin-back,
.btn-admin-exit-app {
  width: 36px;
  height: 36px;
  min-width: 36px;
  border-radius: 12px;
  background: rgba(33, 21, 16, 0.06);
  border: 1px solid rgba(209, 183, 159, 0.35);
  color: var(--color-deep-espresso);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  padding: 0;
  box-shadow: none;
  transition: transform var(--transition-fast), background var(--transition-fast);
  -webkit-tap-highlight-color: transparent;
}

.btn-admin-back:active,
.btn-admin-exit-app:active {
  transform: scale(0.92);
}

.btn-admin-back svg,
.btn-admin-exit-app svg {
  width: 19px;
  height: 19px;
  stroke: currentColor;
  stroke-width: 2.3;
  fill: none;
}

[data-theme="dark"] .btn-admin-back,
[data-theme="dark"] .btn-admin-exit-app {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.14);
  color: #FAF7F2;
}

/* 4. Faixa de Identidade do Curador (Status Bar) */
.admin-studio-session-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(209, 183, 159, 0.28);
}

[data-theme="dark"] .admin-studio-session-bar {
  border-top-color: rgba(255, 255, 255, 0.08);
}

.admin-curator-info {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.curator-avatar {
  font-size: 16px;
  line-height: 1;
}

.curator-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.curator-name {
  font-size: 12.5px;
  font-weight: 750;
  color: var(--color-deep-espresso);
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

[data-theme="dark"] .curator-name {
  color: #FAF7F2;
}

.curator-email {
  font-size: 11px;
  color: var(--text-tertiary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.admin-session-metrics {
  flex-shrink: 0;
}

.admin-chip-metric {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  border-radius: 12px;
  background: var(--color-warm-beige-soft);
  color: var(--color-roast-brown);
  font-size: 11px;
  font-weight: 700;
  border: 1px solid rgba(209, 183, 159, 0.4);
}

[data-theme="dark"] .admin-chip-metric {
  background: rgba(209, 183, 159, 0.15);
  color: var(--color-warm-beige);
  border-color: rgba(209, 183, 159, 0.25);
}

.curator-screen-content {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* 5. RODAPÉ DEDICADO DO APLICATIVO DO ADMIN (Apple Liquid Glass Floating Pill Dock) */
.admin-app-footer-nav {
  position: fixed;
  bottom: calc(var(--sab) + 16px);
  left: 50%;
  transform: translateX(-50%) translateZ(0);
  -webkit-transform: translateX(-50%) translateZ(0);
  width: calc(100% - 36px);
  max-width: 270px;
  height: 64px;
  box-sizing: border-box;
  z-index: 2500;
  background: var(--liquid-glass-dock-bg);
  backdrop-filter: blur(var(--liquid-glass-dock-blur)) saturate(var(--liquid-glass-dock-saturate));
  -webkit-backdrop-filter: blur(var(--liquid-glass-dock-blur)) saturate(var(--liquid-glass-dock-saturate));
  border: 0.5px solid var(--liquid-glass-dock-border-side);
  border-top: 1px solid var(--liquid-glass-dock-border-top);
  border-radius: var(--squircle-tabbar, 32px);
  padding: 5px 8px;
  box-shadow: var(--liquid-glass-dock-shadow), var(--liquid-glass-dock-highlight);
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transition: transform var(--transition-normal), opacity var(--transition-normal), background var(--transition-normal), border-color var(--transition-normal);
  overflow: hidden;
}

.admin-app-footer-nav::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.35) 0%,
    rgba(255, 255, 255, 0.08) 32%,
    transparent 65%
  );
  mix-blend-mode: overlay;
}

[data-theme="dark"] .admin-app-footer-nav {
  background: var(--liquid-glass-dock-bg);
  border: 0.5px solid var(--liquid-glass-dock-border-side);
  border-top: 1px solid var(--liquid-glass-dock-border-top);
  box-shadow: var(--liquid-glass-dock-shadow), var(--liquid-glass-dock-highlight);
}

[data-theme="dark"] .admin-app-footer-nav::after {
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.16) 0%,
    rgba(255, 255, 255, 0.04) 32%,
    transparent 65%
  );
  mix-blend-mode: overlay;
}

.admin-footer-bar {
  display: flex;
  align-items: center;
  justify-content: space-around;
  width: 100%;
  height: 100%;
  gap: 6px;
  position: relative;
  z-index: 1;
}

/* Indicador Deslizante do Rodapé Admin (Apple Sliding Capsule & Bouncing Dot) */
.admin-sliding-indicator {
  position: absolute;
  top: 0;
  left: 0;
  border-radius: var(--radius-full);
  background: rgba(255, 255, 255, 0.38);
  border: 0.5px solid rgba(255, 255, 255, 0.65);
  box-shadow: 0 4px 14px rgba(33, 21, 16, 0.06), inset 0 1px 0 rgba(255, 255, 255, 0.95);
  pointer-events: none;
  z-index: 1;
  transition: transform 0.36s cubic-bezier(0.16, 1, 0.3, 1), width 0.36s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s ease;
  will-change: transform, width;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 2.5px;
  box-sizing: border-box;
  opacity: 0;
}

.admin-sliding-indicator.ready {
  opacity: 1;
}

[data-theme="dark"] .admin-sliding-indicator {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.18);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.admin-indicator-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background-color: var(--color-deep-espresso);
  box-shadow: 0 1px 2px rgba(33, 21, 16, 0.25);
  display: block;
  transform-origin: center bottom;
}

[data-theme="dark"] .admin-indicator-dot {
  background-color: #FAF7F2;
  box-shadow: 0 1px 3px rgba(255, 255, 255, 0.35);
}

.admin-sliding-indicator.bouncing .admin-indicator-dot {
  animation: appleAdminDotBounce 0.44s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes appleAdminDotBounce {
  0% {
    transform: translateY(0) scale(1, 1);
  }
  30% {
    transform: translateY(-9px) scale(0.8, 1.35);
  }
  60% {
    transform: translateY(1.5px) scale(1.3, 0.75);
  }
  80% {
    transform: translateY(-2px) scale(0.9, 1.1);
  }
  100% {
    transform: translateY(0) scale(1, 1);
  }
}

.admin-nav-item {
  flex: 1;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 4px 10px;
  border-radius: var(--radius-full);
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--text-tertiary);
  transition: transform var(--transition-fast), color var(--transition-fast);
  position: relative;
  z-index: 2;
  -webkit-tap-highlight-color: transparent;
}

.admin-nav-item:active {
  transform: scale(0.93);
}

.admin-nav-icon-box {
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.admin-nav-icon-box svg {
  width: 21px;
  height: 21px;
  stroke: currentColor;
  stroke-width: 2.0;
  fill: none;
  transition: transform var(--transition-fast), stroke var(--transition-fast), stroke-width var(--transition-fast);
}

.admin-nav-label {
  font-size: 11px;
  font-weight: 550;
  letter-spacing: -0.01em;
  line-height: 1.1;
  transition: color var(--transition-fast), font-weight var(--transition-fast);
}

.admin-nav-item.active {
  color: var(--color-deep-espresso);
  background: transparent;
  box-shadow: none;
}

[data-theme="dark"] .admin-nav-item.active {
  color: #FAF7F2;
  background: transparent;
  box-shadow: none;
}

.admin-nav-item.active .admin-nav-icon-box svg {
  stroke-width: 2.3;
  transform: scale(1.05);
}

.admin-nav-item.active .admin-nav-label {
  font-weight: 750;
}

.admin-nav-badge {
  position: absolute;
  top: -3px;
  right: -8px;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border-radius: 9px;
  background: var(--color-roast-brown);
  color: #FAF7F2;
  font-size: 10px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 4px rgba(92, 63, 46, 0.4);
}

[data-theme="dark"] .admin-nav-badge {
  background: var(--color-warm-beige);
  color: #211510;
}

/* 6. Botão Flutuante '+' de Adicionar (Apple Liquid Glass FAB) */
.btn-admin-fab {
  position: fixed;
  bottom: calc(var(--sab) + 88px);
  right: max(20px, calc(50% - 190px));
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--color-deep-espresso);
  color: #FAF7F2;
  display: none;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.22);
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(33, 21, 16, 0.35), inset 0 1px 1px rgba(255, 255, 255, 0.4);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  z-index: 2400;
  transition: transform 0.16s cubic-bezier(0.16, 1, 0.3, 1), background-color var(--transition-fast), box-shadow 0.16s ease;
  -webkit-tap-highlight-color: transparent;
}

[data-theme="dark"] .btn-admin-fab {
  background: var(--color-warm-beige);
  color: #1A130F;
  border-color: rgba(255, 255, 255, 0.35);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.65), inset 0 1px 1px rgba(255, 255, 255, 0.6);
}

.btn-admin-fab:active {
  transform: scale(0.90);
}

.btn-admin-fab svg {
  width: 28px;
  height: 28px;
  stroke: currentColor;
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* 7. PAINEL DE VISÃO GERAL (TELA C DO ADMIN) */
.admin-overview-hero {
  background: var(--color-surface-card);
  border: 1px solid rgba(209, 183, 159, 0.35);
  border-radius: 20px;
  padding: 20px;
  box-shadow: 0 4px 16px rgba(33, 21, 16, 0.04);
}

[data-theme="dark"] .admin-overview-hero {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
}

.admin-hero-eyebrow {
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--color-roast-brown);
  text-transform: uppercase;
  display: block;
  margin-bottom: 4px;
}

[data-theme="dark"] .admin-hero-eyebrow {
  color: var(--color-warm-beige);
}

.admin-hero-title {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.025em;
  color: var(--color-deep-espresso);
  margin: 0 0 6px 0;
}

[data-theme="dark"] .admin-hero-title {
  color: #FAF7F2;
}

.admin-hero-desc {
  font-size: 13.5px;
  line-height: 1.45;
  color: var(--text-secondary);
  margin: 0;
}

/* Grid de KPIs */
.admin-kpi-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.admin-kpi-card {
  background: var(--color-surface-card);
  border: 1px solid rgba(209, 183, 159, 0.35);
  border-radius: 18px;
  padding: 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  box-shadow: 0 2px 10px rgba(33, 21, 16, 0.03);
  transition: transform var(--transition-fast);
}

[data-theme="dark"] .admin-kpi-card {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
}

.kpi-icon-wrap {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.kpi-icon-wrap svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
  stroke-width: 2.2;
  fill: none;
}

.kpi-icon-gold {
  background: rgba(181, 131, 43, 0.14);
  color: #b5832b;
}

.kpi-icon-green {
  background: rgba(48, 209, 88, 0.14);
  color: #2da44e;
}

.kpi-icon-blue {
  background: rgba(0, 122, 255, 0.14);
  color: #007aff;
}

.kpi-icon-purple {
  background: rgba(175, 82, 222, 0.14);
  color: #af52de;
}

.kpi-data {
  display: flex;
  flex-direction: column;
}

.kpi-num {
  font-size: 22px;
  font-weight: 850;
  letter-spacing: -0.03em;
  color: var(--color-deep-espresso);
  line-height: 1.1;
}

[data-theme="dark"] .kpi-num {
  color: #FAF7F2;
}

.kpi-label {
  font-size: 11px;
  color: var(--text-tertiary);
  font-weight: 600;
  letter-spacing: -0.01em;
}

/* Card de Ações Rápidas */
.admin-quick-actions-card {
  background: var(--color-surface-card);
  border: 1px solid rgba(209, 183, 159, 0.35);
  border-radius: 20px;
  padding: 20px;
  box-shadow: 0 4px 16px rgba(33, 21, 16, 0.04);
}

[data-theme="dark"] .admin-quick-actions-card {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
}

.quick-card-title {
  font-size: 15px;
  font-weight: 750;
  color: var(--color-deep-espresso);
  margin: 0 0 14px 0;
  letter-spacing: -0.02em;
}

[data-theme="dark"] .quick-card-title {
  color: #FAF7F2;
}

.quick-actions-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.quick-act-btn {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border-radius: 16px;
  background: rgba(33, 21, 16, 0.03);
  border: 1px solid rgba(209, 183, 159, 0.3);
  cursor: pointer;
  text-align: left;
  transition: all var(--transition-fast);
  color: var(--color-deep-espresso);
}

[data-theme="dark"] .quick-act-btn {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
  color: #FAF7F2;
}

.quick-act-btn:hover {
  background: rgba(33, 21, 16, 0.06);
}

[data-theme="dark"] .quick-act-btn:hover {
  background: rgba(255, 255, 255, 0.08);
}

.quick-act-btn:active {
  transform: scale(0.98);
}

.quick-act-icon {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  background: var(--color-warm-beige-soft);
  color: var(--color-roast-brown);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

[data-theme="dark"] .quick-act-icon {
  background: rgba(209, 183, 159, 0.15);
  color: var(--color-warm-beige);
}

.quick-act-icon svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  stroke-width: 2.2;
  fill: none;
}

.quick-act-icon.danger-icon {
  background: rgba(255, 59, 48, 0.12);
  color: #ff3b30;
}

.quick-act-texts {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.quick-act-texts strong {
  font-size: 13.5px;
  font-weight: 750;
  line-height: 1.25;
  color: inherit;
}

.quick-act-texts span {
  font-size: 11.5px;
  color: var(--text-tertiary);
  margin-top: 2px;
}

.quick-chevron {
  width: 16px;
  height: 16px;
  stroke: var(--text-muted);
  stroke-width: 2.2;
  fill: none;
  flex-shrink: 0;
}

.quick-act-danger:hover {
  background: rgba(255, 59, 48, 0.08);
  border-color: rgba(255, 59, 48, 0.25);
}

.curator-tabbar {
  z-index: 2500;
}

/* Endereço + Botão Aperte para Localizar (Estilo Apple iOS) */
.address-locate-wrap {
  display: flex;
  gap: 8px;
  align-items: stretch;
}

.address-locate-wrap input {
  flex: 1;
  min-width: 0;
}

.btn-locate-address {
  height: 46px;
  padding: 0 14px;
  border-radius: 13px;
  background: rgba(92, 63, 46, 0.08);
  color: var(--color-roast-brown);
  border: 0.5px solid rgba(92, 63, 46, 0.22);
  font-size: 13px;
  font-weight: 650;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: transform var(--transition-fast), background var(--transition-fast);
}

[data-theme="dark"] .btn-locate-address {
  background: rgba(209, 183, 159, 0.15);
  color: var(--color-cream);
  border-color: rgba(209, 183, 159, 0.3);
}

.btn-locate-address svg {
  width: 14px;
  height: 14px;
  stroke: currentColor;
  stroke-width: 2.4;
  fill: none;
}

.btn-locate-address:active {
  transform: scale(0.96);
  background: rgba(92, 63, 46, 0.15);
}

/* Construtor de Horários por Dias e Intervalos (Estilo iOS Grouped Table) */
.schedule-builder-group {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.schedule-builder-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.btn-copy-schedule {
  background: rgba(92, 63, 46, 0.08);
  color: var(--color-roast-brown);
  border: 0.5px solid rgba(92, 63, 46, 0.2);
  border-radius: var(--radius-full);
  font-size: 11px;
  font-weight: 650;
  padding: 4px 10px;
  cursor: pointer;
  transition: transform var(--transition-fast), background var(--transition-fast);
}

.btn-copy-schedule:active {
  transform: scale(0.95);
  background: rgba(92, 63, 46, 0.16);
}

.schedule-days-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  background: rgba(118, 118, 128, 0.05);
  border: 0.5px solid rgba(60, 60, 67, 0.14);
  border-radius: 14px;
  padding: 0;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
}

[data-theme="dark"] .schedule-days-list {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.1);
}

.schedule-day-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 12px;
  border-radius: 0;
  background: transparent;
  border: none;
  border-bottom: 0.5px solid rgba(60, 60, 67, 0.08);
  transition: opacity var(--transition-fast), background var(--transition-fast);
}

[data-theme="dark"] .schedule-day-row {
  border-bottom-color: rgba(255, 255, 255, 0.06);
}

.schedule-day-row:last-child {
  border-bottom: none;
}

.schedule-day-row.closed {
  opacity: 0.5;
  background: rgba(142, 142, 147, 0.04);
}

.schedule-day-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 110px;
}

.schedule-day-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--color-deep-espresso);
  width: 56px;
  letter-spacing: -0.01em;
}

[data-theme="dark"] .schedule-day-title {
  color: #FAF7F2;
}

.schedule-toggle-wrap {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
}

.schedule-day-chk {
  display: none;
}

.schedule-toggle-badge {
  font-size: 10px;
  font-weight: 750;
  padding: 2.5px 8px;
  border-radius: 20px;
  background: rgba(52, 199, 89, 0.14);
  color: #248A3D;
  transition: all var(--transition-fast);
  user-select: none;
}

.schedule-day-row.closed .schedule-toggle-badge {
  background: rgba(142, 142, 147, 0.16);
  color: var(--text-tertiary);
}

.schedule-time-inputs {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1;
  justify-content: flex-end;
}

.schedule-day-row.closed .schedule-time-inputs {
  opacity: 0.25;
  pointer-events: none;
}

.schedule-time-inp {
  height: 28px;
  width: 68px;
  padding: 0 4px;
  border-radius: 7px;
  border: 0.5px solid rgba(60, 60, 67, 0.16);
  background: rgba(255, 255, 255, 0.7);
  color: var(--color-deep-espresso);
  font-size: 12px;
  font-weight: 650;
  text-align: center;
  outline: none;
  font-family: inherit;
  transition: all var(--transition-fast);
}

[data-theme="dark"] .schedule-time-inp {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.12);
  color: #FAF7F2;
}

.schedule-time-inp:focus {
  background: #FFFFFF;
  border-color: var(--color-roast-brown);
  box-shadow: 0 0 0 2px rgba(92, 63, 46, 0.15);
}

[data-theme="dark"] .schedule-time-inp:focus {
  background: rgba(255, 255, 255, 0.14);
}

.schedule-time-sep {
  font-size: 11px;
  font-weight: 600;
  color: var(--text-tertiary);
}

.schedule-live-output {
  margin-top: 8px;
}

.schedule-output-text {
  font-family: inherit;
  font-size: 12px;
  line-height: 1.5;
  color: var(--color-deep-espresso);
  white-space: pre-line;
  margin: 0;
}

.admin-header-brand {
  display: flex;
  align-items: center;
  gap: 10px;
}

.admin-brand-icon {
  width: 38px;
  height: 38px;
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg, #5C3F2E 0%, #211510 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FAF7F2;
  box-shadow: 0 4px 12px rgba(33, 21, 16, 0.2);
}

.admin-brand-icon svg {
  width: 20px;
  height: 20px;
  stroke: currentColor;
  stroke-width: 2.2;
}

.admin-header-titles {
  display: flex;
  flex-direction: column;
}

.admin-portal-badge {
  font-size: 9.5px;
  font-weight: 850;
  letter-spacing: 0.1em;
  color: var(--color-roast-brown);
  text-transform: uppercase;
}

.admin-portal-title {
  font-size: 20px;
  font-weight: 850;
  color: var(--color-deep-espresso);
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.admin-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.btn-admin-header-plus {
  height: 36px;
  padding: 0 14px;
  background: linear-gradient(135deg, #5C3F2E 0%, #211510 100%);
  color: #FAF7F2;
  border: none;
  border-radius: var(--radius-full);
  font-size: 13px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(33, 21, 16, 0.25);
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.btn-admin-header-plus svg {
  width: 15px;
  height: 15px;
  stroke: currentColor;
  stroke-width: 2.5;
}

.btn-admin-header-plus:active {
  transform: scale(0.95);
}

.admin-portal-close {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--color-warm-beige-soft);
  border: none;
  color: var(--text-primary);
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform var(--transition-fast);
}

.admin-portal-close:active {
  transform: scale(0.92);
}

.admin-portal-body {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 16px 18px 24px 18px;
  display: flex;
  flex-direction: column;
}

/* Telas Alternáveis */
.admin-view-panel {
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: 100%;
}

.admin-view-title-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}

.admin-view-heading {
  font-size: 18px;
  font-weight: 850;
  color: var(--color-deep-espresso);
  letter-spacing: -0.02em;
}

.admin-view-subheading {
  font-size: 12px;
  color: var(--text-secondary);
  margin-top: 2px;
}

.admin-catalog-title-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.btn-catalog-search-toggle {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  background: var(--color-warm-beige-soft);
  border: 0.5px solid rgba(60, 60, 67, 0.12);
  color: var(--color-deep-espresso);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all var(--transition-fast);
  padding: 0;
}

.btn-catalog-search-toggle svg {
  width: 15px;
  height: 15px;
  stroke: currentColor;
  stroke-width: 2.2;
  fill: none;
}

.btn-catalog-search-toggle:active,
.btn-catalog-search-toggle.active {
  background: var(--color-roast-brown);
  color: #FFFFFF;
  border-color: var(--color-roast-brown);
  transform: scale(0.95);
}

[data-theme="dark"] .btn-catalog-search-toggle {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.14);
  color: #FAF7F2;
}

[data-theme="dark"] .btn-catalog-search-toggle:active,
[data-theme="dark"] .btn-catalog-search-toggle.active {
  background: var(--color-warm-beige);
  color: #211510;
  border-color: var(--color-warm-beige);
}

.btn-admin-view-reset {
  background: var(--color-warm-beige-soft);
  color: var(--text-secondary);
  border: 1px solid var(--color-warm-beige);
  padding: 5px 12px;
  border-radius: var(--radius-full);
  font-size: 11.5px;
  font-weight: 750;
  cursor: pointer;
  transition: transform var(--transition-fast);
}

.btn-admin-view-reset:active {
  transform: scale(0.94);
}

.catalog-total-pill {
  background: var(--color-warm-beige-soft);
  color: var(--color-deep-espresso);
  padding: 5px 12px;
  border-radius: var(--radius-full);
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

/* 3 Cards Accordion Grandes (Estilo Apple Inset Grouped Card) */
.admin-accordion-card {
  background: var(--color-surface-card);
  border: 0.5px solid rgba(60, 60, 67, 0.14);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03), 0 1px 3px rgba(0, 0, 0, 0.02);
  transition: all 0.28s cubic-bezier(0.25, 1, 0.5, 1);
  margin-bottom: 14px;
}

[data-theme="dark"] .admin-accordion-card {
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
}

.admin-accordion-card.open {
  border-color: rgba(92, 63, 46, 0.35);
  box-shadow: 0 6px 20px rgba(92, 63, 46, 0.08);
}

[data-theme="dark"] .admin-accordion-card.open {
  border-color: var(--color-warm-beige);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.4);
}

.accordion-header {
  width: 100%;
  padding: 16px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  transition: background-color var(--transition-fast);
}

.accordion-header:active {
  background: rgba(118, 118, 128, 0.06);
}

.accordion-header-left {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  flex: 1;
}

.accordion-step-num {
  width: 28px;
  height: 28px;
  border-radius: 9px;
  background: rgba(92, 63, 46, 0.09);
  color: var(--color-roast-brown);
  font-size: 13px;
  font-weight: 750;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all var(--transition-fast);
}

[data-theme="dark"] .accordion-step-num {
  background: rgba(209, 183, 159, 0.15);
  color: var(--color-cream);
}

.admin-accordion-card.open .accordion-step-num {
  background: var(--color-roast-brown);
  color: #FFFFFF;
}

[data-theme="dark"] .admin-accordion-card.open .accordion-step-num {
  background: var(--color-warm-beige);
  color: #211510;
}

.accordion-title-wrap {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.accordion-title {
  font-size: 15px;
  font-weight: 750;
  color: var(--text-primary);
  letter-spacing: -0.015em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.accordion-sub {
  font-size: 12px;
  font-weight: 450;
  color: var(--text-tertiary);
  margin-top: 1.5px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.accordion-header-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.accordion-badge-pill {
  font-size: 11px;
  font-weight: 650;
  padding: 3px 9px;
  border-radius: 20px;
  background: rgba(118, 118, 128, 0.1);
  color: var(--text-secondary);
}

.admin-accordion-card.open .accordion-badge-pill {
  background: rgba(92, 63, 46, 0.12);
  color: var(--color-roast-brown);
}

[data-theme="dark"] .admin-accordion-card.open .accordion-badge-pill {
  background: rgba(209, 183, 159, 0.2);
  color: var(--color-cream);
}

.accordion-chevron {
  width: 16px;
  height: 16px;
  stroke: rgba(60, 60, 67, 0.45);
  stroke-width: 2.4;
  fill: none;
  transition: transform 0.32s cubic-bezier(0.25, 1, 0.5, 1);
}

[data-theme="dark"] .accordion-chevron {
  stroke: rgba(255, 255, 255, 0.45);
}

.admin-accordion-card.open .accordion-chevron {
  transform: rotate(180deg);
  stroke: var(--color-roast-brown);
}

[data-theme="dark"] .admin-accordion-card.open .accordion-chevron {
  stroke: var(--color-warm-beige);
}

.accordion-content {
  display: none;
  border-top: 0.5px solid rgba(60, 60, 67, 0.08);
  background: var(--color-surface-card);
}

[data-theme="dark"] .accordion-content {
  border-top-color: rgba(255, 255, 255, 0.08);
}

.admin-accordion-card.open .accordion-content {
  display: block;
  animation: fadeInDown 0.22s ease-out;
}

.accordion-inner {
  padding: 18px;
}

@keyframes fadeInDown {
  from { opacity: 0; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}

.accordion-inner {
  padding: 16px;
}

.cloudinary-header-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.cloud-pill-badge {
  font-size: 10.5px;
  font-weight: 800;
  padding: 4px 9px;
  border-radius: var(--radius-full);
  background: var(--color-warm-beige-soft);
  color: var(--text-secondary);
  white-space: nowrap;
}

.cloud-pill-badge.connected {
  background: rgba(52, 199, 89, 0.14);
  color: #248A3D;
  border: 1px solid rgba(52, 199, 89, 0.3);
}

.btn-admin-header-cloud {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 36px;
  padding: 0 11px;
  border-radius: 12px;
  background: var(--color-warm-beige-soft);
  color: var(--color-deep-espresso);
  border: 1px solid var(--color-warm-beige);
  font-size: 11.5px;
  font-weight: 750;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: all var(--transition-fast);
}

[data-theme="dark"] .btn-admin-header-cloud {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.12);
  color: #FAF7F2;
}

.btn-admin-header-cloud:active {
  transform: scale(0.96);
}

.cloud-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #FF9500;
  display: inline-block;
  transition: background 0.2s ease, box-shadow 0.2s ease;
}

.cloud-status-dot.connected {
  background: #34C759;
  box-shadow: 0 0 6px rgba(52, 199, 89, 0.6);
}

.cloud-status-msg {
  padding: 10px 14px;
  border-radius: var(--radius-md);
  font-size: 12px;
  line-height: 1.4;
  background: var(--color-warm-beige-soft);
  color: var(--color-deep-espresso);
  border: 1px solid var(--color-warm-beige);
}

.cloud-status-msg.success {
  background: rgba(52, 199, 89, 0.12);
  border-color: rgba(52, 199, 89, 0.3);
  color: #1e6b32;
}

.cloud-status-msg.error {
  background: rgba(255, 59, 48, 0.12);
  border-color: rgba(255, 59, 48, 0.3);
  color: #d70015;
}

.admin-form-row-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.admin-select-input {
  width: 100%;
  height: 42px;
  padding: 0 12px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--color-warm-beige);
  background: var(--color-surface-card);
  color: var(--text-primary);
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  outline: none;
  cursor: pointer;
}

@keyframes locateHighlightAnim {
  0% {
    background-color: rgba(52, 199, 89, 0.22);
    border-color: #34C759;
    box-shadow: 0 0 10px rgba(52, 199, 89, 0.35);
  }
  100% {
    background-color: var(--color-surface-card);
    border-color: var(--color-warm-beige);
    box-shadow: none;
  }
}

.locate-highlight {
  animation: locateHighlightAnim 1.4s ease-out;
}

.cloudinary-actions-row {
  display: flex;
  gap: 10px;
  margin-top: 10px;
}

.btn-test-cloudinary {
  flex: 1;
  height: 40px;
  background: var(--color-warm-beige-soft);
  color: var(--color-deep-espresso);
  border: 1px solid var(--color-warm-beige);
  border-radius: var(--radius-full);
  font-size: 12.5px;
  font-weight: 750;
  cursor: pointer;
  transition: transform var(--transition-fast);
}

.btn-test-cloudinary:active {
  transform: scale(0.96);
}

.btn-save-settings {
  flex: 1.2;
  height: 40px;
  background: var(--color-roast-brown);
  color: #FAF7F2;
  border: none;
  border-radius: var(--radius-full);
  font-size: 13px;
  font-weight: 750;
  cursor: pointer;
  transition: transform var(--transition-fast);
}

.btn-save-settings:active {
  transform: scale(0.96);
}

.cloud-status-msg {
  margin-top: 10px;
  font-size: 12px;
  font-weight: 700;
  padding: 8px 12px;
  border-radius: var(--radius-sm);
  background: var(--color-warm-beige-soft);
  color: var(--color-deep-espresso);
}

.admin-card-title {
  font-size: 15px;
  font-weight: 800;
  color: var(--color-deep-espresso);
  margin-bottom: 4px;
}

.admin-card-desc {
  font-size: 12px;
  color: var(--text-secondary);
  margin-bottom: 14px;
  line-height: 1.4;
}

.admin-form-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--color-warm-beige-soft);
}

.admin-form-main-title {
  font-size: 17px;
  font-weight: 800;
  color: var(--color-deep-espresso);
}

.btn-form-close {
  background: transparent;
  border: none;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-secondary);
  cursor: pointer;
}

.form-fieldset {
  margin-bottom: 20px;
  padding-bottom: 18px;
  border-bottom: 1px dashed var(--color-warm-beige-soft);
}

.fieldset-tag {
  display: inline-block;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.08em;
  color: var(--color-roast-brown);
  background: var(--color-warm-beige-soft);
  padding: 3px 8px;
  border-radius: 4px;
  margin-bottom: 10px;
}

.fieldset-hint {
  font-size: 11.5px;
  color: var(--text-secondary);
  margin-bottom: 10px;
  line-height: 1.35;
}

.admin-form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 14px;
}

.admin-form-group label {
  font-size: 11.5px;
  font-weight: 650;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-secondary);
}

.admin-form-group input,
.admin-form-group select,
.admin-form-group textarea {
  width: 100%;
  padding: 12px 14px;
  border-radius: 13px;
  border: 0.5px solid rgba(60, 60, 67, 0.15);
  background: rgba(118, 118, 128, 0.07);
  color: var(--text-primary);
  font-family: inherit;
  font-size: 15px;
  font-weight: 500;
  outline: none;
  transition: all 0.2s cubic-bezier(0.25, 1, 0.5, 1);
  -webkit-appearance: none;
}

[data-theme="dark"] .admin-form-group input,
[data-theme="dark"] .admin-form-group select,
[data-theme="dark"] .admin-form-group textarea {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.12);
}

.admin-form-group input:focus,
.admin-form-group select:focus,
.admin-form-group textarea:focus {
  background: #FFFFFF;
  border-color: var(--color-roast-brown);
  box-shadow: 0 0 0 3.5px rgba(92, 63, 46, 0.12);
}

[data-theme="dark"] .admin-form-group input:focus,
[data-theme="dark"] .admin-form-group select:focus,
[data-theme="dark"] .admin-form-group textarea:focus {
  background: rgba(44, 44, 46, 0.95);
  border-color: var(--color-warm-beige);
  box-shadow: 0 0 0 3.5px rgba(209, 183, 159, 0.2);
}

.admin-form-hint {
  font-size: 11.5px;
  color: var(--text-tertiary);
  margin-top: 2px;
}

.btn-save-settings {
  width: 100%;
  height: 40px;
  background: var(--color-roast-brown);
  color: #FAF7F2;
  border: none;
  border-radius: var(--radius-full);
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
  margin-top: 6px;
}

/* 5. GPS Capture Button */
.btn-gps-capture {
  width: 100%;
  height: 44px;
  background: #E8F5E9;
  border: 1.5px solid #81C784;
  color: #1b5e20;
  border-radius: var(--radius-md);
  font-size: 13px;
  font-weight: 750;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  margin-bottom: 10px;
  transition: all var(--transition-fast);
}

.btn-gps-capture svg {
  width: 16px;
  height: 16px;
  fill: currentColor;
}

.btn-gps-capture:active {
  transform: scale(0.96);
  background: #C8E6C9;
}

[data-theme="dark"] .btn-gps-capture {
  background: rgba(46, 125, 50, 0.2);
  border-color: rgba(129, 199, 132, 0.4);
  color: #81c784;
}

.gps-coords-row {
  display: flex;
  gap: 10px;
}

.gps-coords-row .admin-form-group {
  flex: 1;
}

/* 6. Switch Toggle Sim / Não */
.toggle-row {
  flex-direction: row !important;
  align-items: center;
  justify-content: space-between;
}

.switch-toggle-pill {
  display: inline-flex;
  background: var(--color-warm-beige-soft);
  padding: 3px;
  border-radius: var(--radius-full);
  gap: 4px;
}

.switch-btn {
  padding: 5px 14px;
  border-radius: var(--radius-full);
  border: none;
  background: transparent;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-secondary);
  cursor: pointer;
  transition: all var(--transition-fast);
}

.switch-btn.active {
  background: var(--color-surface-card);
  color: var(--color-deep-espresso);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

/* 7. Checkboxes de Comodidades em Grid */
.amenities-toggle-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}

.amenity-checkbox-card {
  position: relative;
  cursor: pointer;
}

.amenity-checkbox-card input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}

.chk-box-content {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 13px;
  background: var(--color-bg-base);
  border: 1.5px solid var(--color-warm-beige);
  border-radius: 14px;
  transition: all var(--transition-fast);
  user-select: none;
}

.chk-box-content:hover {
  border-color: var(--color-caramel-accent);
  background: rgba(246, 241, 235, 0.65);
}

.amenity-checkbox-card input:checked + .chk-box-content {
  background: rgba(92, 63, 46, 0.09);
  border-color: var(--color-roast-brown);
  box-shadow: 0 2px 8px rgba(92, 63, 46, 0.12);
}

[data-theme="dark"] .amenity-checkbox-card input:checked + .chk-box-content {
  background: rgba(209, 183, 159, 0.18);
  border-color: var(--color-warm-beige);
}

.chk-icon {
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--color-roast-brown);
  transition: transform 0.2s ease, color 0.2s ease;
}

.chk-icon svg {
  width: 19px;
  height: 19px;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}

.chk-icon svg.fill-svg {
  fill: currentColor;
  stroke: none;
}

.amenity-checkbox-card:active .chk-box-content {
  transform: scale(0.985);
}

.amenity-checkbox-card input:checked + .chk-box-content .chk-icon {
  color: var(--color-roast-brown);
  transform: scale(1.08);
}

[data-theme="dark"] .chk-icon {
  color: #FFFFFF;
}

[data-theme="dark"] .amenity-checkbox-card input:checked + .chk-box-content .chk-icon {
  color: #FFFFFF;
}

.chk-title {
  font-size: 13px;
  font-weight: 750;
  color: var(--text-primary);
  line-height: 1.2;
}

/* 8. Uploaders de Foto */
.admin-photo-upload-block {
  margin-bottom: 14px;
  padding: 10px;
  background: var(--color-bg-base);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-warm-beige-soft);
}

.menu-upload-highlight {
  border: 1.5px solid var(--color-roast-brown);
  background: rgba(92, 63, 46, 0.04);
}

.upload-label {
  display: block;
  font-size: 12.5px;
  font-weight: 750;
  color: var(--text-primary);
  margin-bottom: 6px;
}

.highlight-text {
  color: var(--color-roast-brown);
}

.file-hidden-input {
  display: none;
}

.upload-input-row {
  display: flex;
  gap: 8px;
}

/* Grandes Botões Fotográficos Estratégicos (Card 2) */
.btn-large-photo-hero {
  width: 100%;
  min-height: 82px;
  padding: 14px 16px;
  background: var(--color-surface-card);
  border: 1.5px dashed rgba(193, 154, 107, 0.45);
  border-radius: 16px;
  display: flex;
  align-items: center;
  gap: 14px;
  cursor: pointer;
  text-align: left;
  transition: all 0.22s cubic-bezier(0.2, 0.8, 0.2, 1);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02);
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.btn-large-photo-hero:hover {
  background: rgba(246, 241, 235, 0.65);
  border-color: var(--color-caramel-accent);
  box-shadow: 0 4px 14px rgba(193, 154, 107, 0.12);
}

.btn-large-photo-hero:active {
  transform: scale(0.985);
  background: rgba(240, 233, 224, 0.8);
}

.btn-hero-menu {
  border-color: rgba(92, 63, 46, 0.35);
  background: rgba(92, 63, 46, 0.03);
}

.btn-hero-menu:hover {
  background: rgba(92, 63, 46, 0.06);
  border-color: var(--color-roast-brown);
}

.photo-hero-icon-circle {
  width: 48px;
  height: 48px;
  min-width: 48px;
  border-radius: 50%;
  background: rgba(193, 154, 107, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-roast-brown);
  transition: transform 0.2s ease, background 0.2s ease;
}

.btn-large-photo-hero:hover .photo-hero-icon-circle {
  transform: scale(1.05);
  background: rgba(193, 154, 107, 0.2);
}

.menu-icon-circle {
  background: rgba(92, 63, 46, 0.12);
  color: var(--color-roast-brown);
}

.photo-hero-icon-circle svg {
  width: 24px;
  height: 24px;
  stroke: currentColor;
  stroke-width: 1.9;
  fill: none;
}

.photo-hero-text {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.photo-hero-title {
  font-size: 14.5px;
  font-weight: 750;
  color: var(--text-primary);
  line-height: 1.25;
}

.photo-hero-sub {
  font-size: 11.5px;
  font-weight: 500;
  color: var(--text-muted);
  margin-top: 3px;
  line-height: 1.3;
}

.photo-preview-slot {
  position: relative;
  margin-top: 8px;
  width: 100%;
  height: 120px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: #000;
}

.photo-preview-slot.large-preview {
  margin-top: 10px;
  height: 160px;
  border-radius: 16px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  border: 1px solid var(--color-warm-beige-soft);
  cursor: pointer;
}

.photo-preview-slot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.photo-preview-slot.large-preview:hover img {
  transform: scale(1.02);
}

.preview-badge {
  position: absolute;
  top: 8px;
  left: 8px;
  padding: 3px 8px;
  background: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  border-radius: 6px;
  letter-spacing: 0.5px;
}

.badge-menu-tag {
  background: var(--color-roast-brown) !important;
}

.preview-change-overlay {
  position: absolute;
  bottom: 8px;
  right: 8px;
  background: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #FFFFFF;
  padding: 5px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 650;
  display: flex;
  align-items: center;
  gap: 5px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  transition: background 0.2s ease;
}

.preview-change-overlay svg {
  width: 13px;
  height: 13px;
  stroke: #FFFFFF;
  stroke-width: 2;
  fill: none;
}

.photo-preview-slot.large-preview:hover .preview-change-overlay {
  background: rgba(0, 0, 0, 0.85);
}

.gallery-previews-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(76px, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.gallery-preview-item {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  height: auto;
  min-height: 76px;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  border: 1px solid var(--color-warm-beige-soft);
}

.gallery-preview-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.btn-remove-gal-photo {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.72);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  color: #FFFFFF;
  border: 1px solid rgba(255, 255, 255, 0.3);
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  line-height: 1;
  transition: transform 0.15s ease, background 0.15s ease;
}

.btn-remove-gal-photo:hover {
  transform: scale(1.1);
  background: rgba(220, 38, 38, 0.9);
}

.btn-remove-gal-photo:active {
  transform: scale(0.9);
}

.admin-item-type-badge {
  display: inline-block;
  font-size: 9.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 2px 6px;
  border-radius: 6px;
  margin-top: 3px;
}

.admin-item-type-badge.badge-custom {
  background: rgba(92, 63, 46, 0.15);
  color: var(--color-roast-brown);
}

.admin-item-type-badge.badge-base {
  background: rgba(142, 142, 147, 0.12);
  color: var(--text-secondary);
}

.admin-form-row-2 {
  display: flex;
  gap: 10px;
}

.admin-form-row-2 .admin-form-group {
  flex: 1;
}

.input-with-prefix {
  display: flex;
  align-items: center;
  background: var(--color-bg-base);
  border: 1.2px solid var(--color-warm-beige);
  border-radius: var(--radius-sm);
  overflow: hidden;
  transition: border-color var(--transition-fast);
}

.input-with-prefix:focus-within {
  border-color: var(--color-roast-brown);
}

.input-prefix {
  padding: 0 10px;
  font-size: 13px;
  font-weight: 750;
  color: var(--text-tertiary);
  user-select: none;
}

.input-with-prefix input {
  border: none !important;
  background: transparent !important;
  padding: 10px 10px 10px 0 !important;
}

/* Radar Wave no Botão GPS */
.btn-gps-capture {
  position: relative;
  overflow: hidden;
}

.gps-radar-wave {
  position: absolute;
  top: 50%;
  left: 20px;
  transform: translate(-50%, -50%);
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #34C759;
  opacity: 0.6;
  pointer-events: none;
}

.btn-gps-capture.active-gps .gps-radar-wave {
  animation: radarPulse 1.6s infinite ease-out;
}

@keyframes radarPulse {
  0% { transform: translate(-50%, -50%) scale(1); opacity: 0.9; }
  100% { transform: translate(-50%, -50%) scale(3.5); opacity: 0; }
}

/* Banner de Upload Ativo */
.photo-upload-loading-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: rgba(92, 63, 46, 0.08);
  border: 1px solid var(--color-roast-brown);
  border-radius: var(--radius-sm);
  font-size: 12px;
  font-weight: 700;
  color: var(--color-roast-brown);
  margin-bottom: 12px;
  animation: pulseBg 1.5s infinite alternate;
}

@keyframes pulseBg {
  0% { background: rgba(92, 63, 46, 0.05); }
  100% { background: rgba(92, 63, 46, 0.12); }
}

.spinner-mini {
  width: 16px;
  height: 16px;
  border: 2px solid var(--color-warm-beige);
  border-top-color: var(--color-roast-brown);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

/* Card 4: Preview Oficial + Botão de Publicar (Estilo Apple iOS) */
.admin-preview-publish-card {
  background: var(--color-surface-card);
  border: 0.5px solid rgba(60, 60, 67, 0.14);
  border-radius: 20px;
  padding: 18px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03), 0 1px 3px rgba(0, 0, 0, 0.02);
  margin-top: 6px;
  margin-bottom: 24px;
}

[data-theme="dark"] .admin-preview-publish-card {
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
}

.preview-publish-header {
  margin-bottom: 14px;
  padding: 2px 0;
}

.preview-hero-title {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--color-deep-espresso);
  margin: 0;
  line-height: 1.1;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 8px;
}

[data-theme="dark"] .preview-hero-title {
  color: var(--color-cream);
}

.admin-live-card-wrapper {
  pointer-events: none;
}

.admin-live-card-wrapper .brunch-card {
  margin-bottom: 0 !important;
  box-shadow: 0 4px 20px rgba(33, 21, 16, 0.08);
  border-radius: 18px;
  overflow: hidden;
}

.preview-insta-tag {
  background: rgba(33, 21, 16, 0.72);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #FAF7F2;
  font-size: 11px;
  font-weight: 800;
  padding: 4px 9px;
  border-radius: var(--radius-full);
  letter-spacing: 0.02em;
}

.preview-live-indicator {
  font-size: 11px;
  font-weight: 800;
  color: #30D158;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 4px;
}

.publish-action-box {
  margin-top: 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
}

.btn-publish-official {
  width: 100%;
  height: 52px;
  background: var(--color-roast-brown);
  color: #FFFFFF;
  border: none;
  border-radius: 16px;
  font-size: 16px;
  font-weight: 650;
  letter-spacing: -0.01em;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(92, 63, 46, 0.28);
  transition: transform var(--transition-fast), filter var(--transition-fast), box-shadow var(--transition-fast);
}

.btn-publish-official svg {
  width: 17px;
  height: 17px;
  fill: currentColor;
}

.btn-publish-official:active {
  transform: scale(0.98);
  filter: brightness(0.95);
  box-shadow: 0 2px 8px rgba(92, 63, 46, 0.2);
}

[data-theme="dark"] .btn-publish-official {
  background: var(--color-warm-beige);
  color: #211510;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35);
}

.publish-note-sub {
  font-size: 11.5px;
  color: var(--text-tertiary);
  text-align: center;
}

/* Modo Editar & Catálogo Compacto (Estilo Apple iOS) */
.admin-catalog-search-wrap {
  display: flex;
  align-items: center;
  background: rgba(118, 118, 128, 0.1);
  border: none;
  border-radius: 12px;
  padding: 8px 12px;
  gap: 8px;
  margin-bottom: 12px;
  transition: all 0.2s ease;
}

.admin-catalog-search-wrap:focus-within {
  background: rgba(118, 118, 128, 0.16);
  box-shadow: 0 0 0 3px rgba(92, 63, 46, 0.12);
}

.admin-catalog-search-wrap svg {
  width: 15px;
  height: 15px;
  stroke: var(--text-tertiary);
  stroke-width: 2.2;
  fill: none;
  flex-shrink: 0;
}

.admin-catalog-search-wrap input {
  flex: 1;
  border: none;
  background: transparent;
  font-size: 14px;
  color: var(--text-primary);
  outline: none;
  font-family: inherit;
}

.btn-clear-admin-search {
  background: transparent;
  border: none;
  color: var(--text-tertiary);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  padding: 0 4px;
}

.admin-catalog-filters-row {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding-bottom: 6px;
  margin-bottom: 14px;
}

.catalog-filter-chip {
  padding: 6px 13px;
  border-radius: 20px;
  border: 0.5px solid rgba(60, 60, 67, 0.12);
  background: rgba(118, 118, 128, 0.08);
  color: var(--text-secondary);
  font-size: 12px;
  font-weight: 650;
  white-space: nowrap;
  cursor: pointer;
  transition: all var(--transition-fast);
}

.catalog-filter-chip.active {
  background: var(--color-roast-brown);
  border-color: var(--color-roast-brown);
  color: #FFFFFF;
  box-shadow: 0 2px 8px rgba(92, 63, 46, 0.25);
}

.catalog-filter-chip:active {
  transform: scale(0.95);
}

/* Cards em Pequenos Formatos no Catálogo (Apple Inset Cell) */
.admin-compact-spot-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.admin-compact-spot-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  background: var(--color-surface-card);
  border: 0.5px solid rgba(60, 60, 67, 0.12);
  border-radius: 16px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.03);
  transition: transform var(--transition-fast);
}

[data-theme="dark"] .admin-compact-spot-card {
  border-color: rgba(255, 255, 255, 0.1);
}

.admin-compact-thumb {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  object-fit: cover;
  flex-shrink: 0;
  background: #211510;
}

.admin-compact-info {
  flex: 1;
  min-width: 0;
}

.admin-compact-name {
  font-size: 14.5px;
  font-weight: 750;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: -0.01em;
}

.admin-compact-meta {
  font-size: 12px;
  color: var(--text-secondary);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.admin-compact-tags {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 4px;
  flex-wrap: wrap;
}

.admin-item-type-badge {
  font-size: 10px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 6px;
}

.badge-custom {
  background: rgba(92, 63, 46, 0.1);
  color: var(--color-roast-brown);
}

.badge-base {
  background: rgba(142, 142, 147, 0.12);
  color: var(--text-secondary);
}

.admin-mini-status {
  font-size: 10px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: var(--radius-full);
}

.admin-mini-status.open {
  background: rgba(48, 209, 88, 0.14);
  color: #248A3D;
}

.admin-mini-status.closed {
  background: rgba(142, 142, 147, 0.14);
  color: var(--text-tertiary);
}

.admin-compact-actions {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}

.btn-compact-edit, .btn-compact-del {
  padding: 6px 12px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
  border: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: transform var(--transition-fast);
}

.btn-compact-edit {
  background: rgba(118, 118, 128, 0.1);
  color: var(--text-primary);
}

.btn-compact-del {
  background: rgba(255, 69, 58, 0.12);
  color: #c9342b;
}

.btn-compact-edit:active, .btn-compact-del:active {
  transform: scale(0.92);
}

/* Rodapé do Curador (Estilo Apple iOS Tab Bar) */
.curator-tabbar {
  border-top: 0.5px solid rgba(60, 60, 67, 0.15) !important;
  background: rgba(253, 251, 247, 0.88) !important;
  backdrop-filter: blur(25px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(25px) saturate(180%) !important;
}

[data-theme="dark"] .curator-tabbar {
  background: rgba(28, 28, 30, 0.88) !important;
  border-top-color: rgba(255, 255, 255, 0.12) !important;
}

.curator-tab-btn {
  padding: 4px 20px;
  border-radius: 12px;
  transition: all 0.2s cubic-bezier(0.25, 1, 0.5, 1);
}

.curator-tab-btn:active {
  transform: scale(0.92);
}

.curator-tab-btn.active {
  color: var(--color-roast-brown);
}

[data-theme="dark"] .curator-tab-btn.active {
  color: var(--color-warm-beige);
}

.curator-tab-btn.active .tab-label {
  font-weight: 700;
}

.admin-portal-footer-nav {
  flex-shrink: 0;
  display: flex;
  background: var(--color-surface-card);
  border-top: 0.5px solid rgba(60, 60, 67, 0.15);
  padding: 8px 16px calc(var(--sab) + 8px) 16px;
  gap: 12px;
  box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.04);
}

.admin-tab-btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 8px 12px;
  border-radius: var(--radius-md);
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--text-tertiary);
  transition: all var(--transition-fast);
}

.admin-tab-icon {
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.admin-tab-icon svg {
  width: 22px;
  height: 22px;
  stroke: currentColor;
  stroke-width: 2.1;
  fill: none;
  transition: transform var(--transition-fast);
}

.admin-tab-label {
  font-size: 11.5px;
  font-weight: 750;
  letter-spacing: -0.01em;
}

.admin-tab-btn.active {
  color: var(--color-roast-brown);
  background: var(--color-warm-beige-soft);
}

.admin-tab-btn.active .admin-tab-icon svg {
  stroke-width: 2.5;
  transform: scale(1.08);
}

/* Card / Modal Pequeno de Confirmação de Exclusão */
.admin-confirm-dialog-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 10, 8, 0.65);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 3500;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.admin-confirm-card {
  width: 100%;
  max-width: 320px;
  background: var(--color-surface-card);
  border: 1px solid var(--color-warm-beige);
  border-radius: var(--radius-xl);
  padding: 22px 20px;
  text-align: center;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25);
  animation: popInDialog 0.22s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes popInDialog {
  from { opacity: 0; transform: scale(0.88); }
  to { opacity: 1; transform: scale(1); }
}

.admin-confirm-icon-wrap {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(255, 69, 58, 0.14);
  color: #ff3b30;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 12px auto;
}

.admin-confirm-icon-wrap svg {
  width: 24px;
  height: 24px;
  stroke: currentColor;
  stroke-width: 2.2;
  fill: none;
}

.admin-confirm-title {
  font-size: 17px;
  font-weight: 850;
  color: var(--color-deep-espresso);
  margin-bottom: 6px;
}

.admin-confirm-desc {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.4;
  margin-bottom: 18px;
}

.admin-confirm-actions {
  display: flex;
  gap: 10px;
}

.btn-confirm-cancel {
  flex: 1;
  height: 42px;
  border-radius: var(--radius-full);
  background: var(--color-warm-beige-soft);
  color: var(--color-deep-espresso);
  border: none;
  font-size: 13px;
  font-weight: 750;
  cursor: pointer;
  transition: transform var(--transition-fast);
}

.btn-confirm-danger {
  flex: 1.2;
  height: 42px;
  border-radius: var(--radius-full);
  background: #ff3b30;
  color: #ffffff;
  border: none;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(255, 59, 48, 0.3);
  transition: transform var(--transition-fast);
}

.btn-confirm-cancel:active, .btn-confirm-danger:active {
  transform: scale(0.95);
}

/* Modal Central de Parabéns pela Validação & Conquistas (Estilo iOS Premium) */
.checkin-congrats-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 4000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.checkin-congrgrats-backdrop[style*="display: none"] {
  display: none !important;
}

.checkin-congrats-card {
  width: 100%;
  max-width: 324px;
  background: var(--color-surface-card);
  border: 1px solid var(--color-warm-beige);
  border-radius: 26px;
  padding: 24px 20px 20px;
  text-align: center;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.28);
  animation: popInDialog 0.26s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  position: relative;
}

[data-theme="dark"] .checkin-congrats-card {
  background: #211814;
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
}

.checkin-stamp-glow-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: 12px;
}

.checkin-stamp-circle {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: linear-gradient(135deg, #FFC043 0%, #E69500 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #211510;
  box-shadow: 0 6px 18px rgba(230, 149, 0, 0.35);
  animation: stampBounce 0.45s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes stampBounce {
  0% { transform: scale(0.3) rotate(-20deg); opacity: 0; }
  60% { transform: scale(1.15) rotate(5deg); opacity: 1; }
  100% { transform: scale(1) rotate(0deg); }
}

.checkin-stamp-circle svg {
  width: 28px;
  height: 28px;
}

.checkin-congrats-title {
  font-size: 20px;
  font-weight: 850;
  color: var(--color-deep-espresso);
  letter-spacing: -0.02em;
  margin: 0 0 6px 0;
}

[data-theme="dark"] .checkin-congrats-title {
  color: #FAF7F2;
}

.checkin-congrats-subtitle {
  font-size: 13.5px;
  color: var(--text-secondary);
  line-height: 1.45;
  margin: 0 0 12px 0;
}

.checkin-congrats-subtitle strong {
  color: var(--color-deep-espresso);
}

[data-theme="dark"] .checkin-congrats-subtitle strong {
  color: #FAF7F2;
}

.checkin-passport-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: var(--radius-full);
  background: rgba(92, 63, 46, 0.08);
  color: var(--color-roast-brown);
  font-size: 12px;
  font-weight: 750;
  margin-bottom: 14px;
}

[data-theme="dark"] .checkin-passport-pill {
  background: rgba(255, 255, 255, 0.08);
  color: var(--color-warm-beige);
}

/* Caixa de Nova Conquista Desbloqueada */
.checkin-new-achievement-box {
  background: rgba(255, 179, 0, 0.08);
  border: 1px solid rgba(255, 179, 0, 0.32);
  border-radius: 16px;
  padding: 12px;
  margin-bottom: 16px;
  text-align: left;
}

[data-theme="dark"] .checkin-new-achievement-box {
  background: rgba(255, 179, 0, 0.1);
  border-color: rgba(255, 179, 0, 0.28);
}

.new-achievement-banner-title {
  display: flex;
  align-items: center;
  margin-bottom: 8px;
}

.new-achievement-badge-tag {
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.04em;
  color: #D97706;
  text-transform: uppercase;
}

[data-theme="dark"] .new-achievement-badge-tag {
  color: #FBBF24;
}

.new-achievement-content {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.new-achievement-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.new-achievement-icon-wrap {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--color-surface-card);
  border: 1px solid rgba(255, 179, 0, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #D97706;
  flex-shrink: 0;
}

[data-theme="dark"] .new-achievement-icon-wrap {
  background: rgba(255, 255, 255, 0.06);
  color: #FBBF24;
}

.new-achievement-icon-wrap svg {
  width: 20px;
  height: 20px;
}

.new-achievement-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.new-achievement-title {
  font-size: 13.5px;
  font-weight: 800;
  color: var(--color-deep-espresso);
  line-height: 1.25;
}

[data-theme="dark"] .new-achievement-title {
  color: #FAF7F2;
}

.new-achievement-desc {
  font-size: 11.5px;
  color: var(--text-secondary);
  line-height: 1.3;
}

/* Botão de Ação do Modal */
.btn-checkin-congrats-action {
  width: 100%;
  height: 46px;
  background: var(--color-roast-brown);
  color: #FFFFFF;
  border: none;
  border-radius: 16px;
  font-size: 15px;
  font-weight: 750;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform var(--transition-fast), filter var(--transition-fast);
  box-shadow: 0 4px 14px rgba(92, 63, 46, 0.25);
}

.btn-checkin-congrats-action:active {
  transform: scale(0.97);
  filter: brightness(0.95);
}

[data-theme="dark"] .btn-checkin-congrats-action {
  background: var(--color-warm-beige);
  color: #211510;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}

/* Modal Central de Feedback de Publicação Concluída (NoBrunch Studio) */
.publish-success-circle {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: linear-gradient(135deg, #34C759 0%, #248A3D 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FFFFFF;
  box-shadow: 0 6px 18px rgba(52, 199, 89, 0.35);
  animation: stampBounce 0.45s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.publish-success-circle svg {
  width: 28px;
  height: 28px;
}

.publish-success-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}

.btn-publish-feedback-secondary {
  width: 100%;
  height: 44px;
  background: rgba(118, 118, 128, 0.08);
  border: 0.5px solid rgba(60, 60, 67, 0.14);
  border-radius: 16px;
  color: var(--color-deep-espresso);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all var(--transition-fast);
}

.btn-publish-feedback-secondary:active {
  transform: scale(0.97);
  background: rgba(118, 118, 128, 0.16);
}

[data-theme="dark"] .btn-publish-feedback-secondary {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.14);
  color: #FAF7F2;
}

[data-theme="dark"] .btn-publish-feedback-secondary:active {
  background: rgba(255, 255, 255, 0.14);
}

/* Modal Central de Feedback de Sugestão Enviada */
.suggestion-success-circle {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: linear-gradient(135deg, #5C3F2E 0%, #211510 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FAF7F2;
  box-shadow: 0 6px 18px rgba(92, 63, 46, 0.35);
  animation: stampBounce 0.45s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.suggestion-success-circle svg {
  width: 26px;
  height: 26px;
}

[data-theme="dark"] .suggestion-success-circle {
  background: linear-gradient(135deg, #EAD8C7 0%, #C4A482 100%);
  color: #211510;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.4);
}

/* ==========================================================================
   Modo Visitante / Guest Perks & Empty States (NoBrunch Identity)
   ========================================================================== */
.profile-guest-perks-section {
  margin-bottom: 24px;
}

.guest-perks-card {
  position: relative;
  background: linear-gradient(180deg, #FFFFFF 0%, #FAF7F2 100%);
  border: 0.5px solid rgba(209, 183, 159, 0.55);
  border-radius: 26px;
  padding: 24px 20px 22px 20px;
  box-shadow: 0 12px 36px rgba(33, 21, 16, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.9);
  overflow: hidden;
}

[data-theme="dark"] .guest-perks-card {
  background: linear-gradient(180deg, rgba(32, 23, 19, 0.98) 0%, rgba(22, 16, 14, 0.96) 100%);
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.guest-perks-header {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 18px;
}

.guest-perks-icon {
  width: 40px;
  height: 40px;
  border-radius: 14px;
  background: rgba(197, 168, 128, 0.18);
  border: 0.5px solid rgba(197, 168, 128, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}

.guest-perks-title-wrap {
  flex: 1;
}

.guest-perks-title {
  font-size: 16px;
  font-weight: 800;
  color: var(--color-deep-espresso);
  letter-spacing: -0.02em;
  margin: 0 0 4px 0;
}

[data-theme="dark"] .guest-perks-title {
  color: #FAF7F2;
}

.guest-perks-desc {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.45;
  margin: 0;
}

.guest-perks-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.guest-perk-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.7);
  border: 0.5px solid rgba(209, 183, 159, 0.35);
  border-radius: 16px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

[data-theme="dark"] .guest-perk-item {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.1);
}

.guest-perk-bullet {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(92, 63, 46, 0.1) 0%, rgba(33, 21, 16, 0.05) 100%);
  color: #8C5338;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.guest-perk-bullet svg {
  width: 17px;
  height: 17px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.8;
}

[data-theme="dark"] .guest-perk-bullet {
  background: rgba(234, 216, 199, 0.12);
  color: #EAD8C7;
}

.guest-perk-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
}

.guest-perk-text strong {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--color-deep-espresso);
  letter-spacing: -0.01em;
}

[data-theme="dark"] .guest-perk-text strong {
  color: #FAF7F2;
}

.guest-perk-text span {
  font-size: 12px;
  color: var(--text-secondary);
  line-height: 1.4;
}

/* Card de Visitante na Aba Salvos */
.favorites-guest-card {
  text-align: center;
  padding: 48px 24px 36px 24px;
  background: linear-gradient(180deg, #FFFFFF 0%, #FAF7F2 100%);
  border: 0.5px solid rgba(209, 183, 159, 0.5);
  border-radius: 26px;
  box-shadow: 0 12px 36px rgba(33, 21, 16, 0.05);
  margin: 16px 4px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

[data-theme="dark"] .favorites-guest-card {
  background: linear-gradient(180deg, rgba(32, 23, 19, 0.98) 0%, rgba(22, 16, 14, 0.96) 100%);
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.55);
}

.fav-guest-icon-bubble {
  width: 64px;
  height: 64px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(140, 83, 56, 0.12) 0%, rgba(92, 63, 46, 0.05) 100%);
  border: 0.5px solid rgba(140, 83, 56, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #8C5338;
  margin-bottom: 16px;
}

.fav-guest-icon-bubble svg {
  width: 30px;
  height: 30px;
}

[data-theme="dark"] .fav-guest-icon-bubble {
  background: rgba(234, 216, 199, 0.1);
  border-color: rgba(234, 216, 199, 0.2);
  color: #EAD8C7;
}

.fav-guest-title {
  font-size: 18px;
  font-weight: 800;
  color: var(--color-deep-espresso);
  letter-spacing: -0.02em;
  margin: 0 0 8px 0;
}

[data-theme="dark"] .fav-guest-title {
  color: #FAF7F2;
}

.fav-guest-sub {
  font-size: 13.5px;
  color: var(--text-secondary);
  line-height: 1.5;
  max-width: 320px;
  margin: 0 0 24px 0;
}

.btn-guest-auth-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 13px 26px;
  border-radius: 980px;
  background: linear-gradient(135deg, #5C3F2E 0%, #211510 100%);
  color: #FAF7F2;
  border: none;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.01em;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(33, 21, 16, 0.2);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

.btn-guest-auth-action:active {
  transform: scale(0.96);
}

.btn-guest-auth-action svg {
  width: 17px;
  height: 17px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2.2;
}

[data-theme="dark"] .btn-guest-auth-action {
  background: linear-gradient(135deg, #EAD8C7 0%, #C4A482 100%);
  color: #211510;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.4);
}

/* ========================================================================== */
/* ABA SALVOS: CARD SIMPLES DE ESTADO (LOGIN / ADICIONAR FAVORITOS)            */
/* ========================================================================== */
.fav-prompt-container {
  padding: 16px 4px 36px 4px;
}

.fav-prompt-card {
  text-align: center;
  padding: 44px 24px 36px 24px;
  background: var(--color-surface-card);
  border: 0.5px solid rgba(209, 183, 159, 0.45);
  border-radius: 24px;
  box-shadow: 0 10px 30px rgba(33, 21, 16, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.85);
  display: flex;
  flex-direction: column;
  align-items: center;
}

[data-theme="dark"] .fav-prompt-card {
  background: var(--color-surface-card);
  border-color: rgba(255, 255, 255, 0.1);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.fav-prompt-icon-bubble {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: rgba(140, 83, 56, 0.1);
  border: 0.5px solid rgba(140, 83, 56, 0.22);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  color: var(--color-roast-brown);
}

[data-theme="dark"] .fav-prompt-icon-bubble {
  background: rgba(212, 175, 55, 0.12);
  border-color: rgba(212, 175, 55, 0.28);
  color: #D4AF37;
}

.fav-prompt-icon-bubble svg {
  width: 26px;
  height: 26px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
}

.fav-prompt-title {
  font-size: 19px;
  font-weight: 800;
  letter-spacing: -0.025em;
  color: var(--text-primary);
  margin: 0 0 8px 0;
  line-height: 1.25;
}

.fav-prompt-desc {
  font-size: 13.5px;
  color: var(--text-secondary);
  line-height: 1.5;
  max-width: 320px;
  margin: 0 0 24px 0;
}

.btn-fav-prompt-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 13px 26px;
  border-radius: 980px;
  background: var(--color-deep-espresso);
  color: #FAF7F2;
  border: none;
  font-size: 13.5px;
  font-weight: 750;
  letter-spacing: -0.01em;
  box-shadow: 0 6px 20px rgba(33, 21, 16, 0.22);
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
  -webkit-tap-highlight-color: transparent;
}

.btn-fav-prompt-action svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  stroke-width: 2.2;
  fill: none;
}

.btn-fav-prompt-action:active {
  transform: scale(0.97);
}

[data-theme="dark"] .btn-fav-prompt-action {
  background: #FAF7F2;
  color: #211510;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.5);
}

/* ========================================================================== */
/* MODAL DE BOAS-VINDAS AO CADASTRAR (EXPLORAR O APP)                         */
/* ========================================================================== */
.register-welcome-card {
  max-width: 338px;
  border: 1px solid rgba(212, 175, 55, 0.45);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.95);
}

[data-theme="dark"] .register-welcome-card {
  border-color: rgba(212, 175, 55, 0.4);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.6), inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.register-welcome-circle {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, #FFC043 0%, #D4AF37 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #211510;
  box-shadow: 0 8px 24px rgba(212, 175, 55, 0.35);
  animation: stampBounce 0.45s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  position: relative;
}

.register-welcome-icon {
  width: 30px;
  height: 30px;
  stroke: #211510;
}

.register-welcome-sparkle {
  position: absolute;
  top: -4px;
  right: -3px;
  font-size: 15px;
}

.register-welcome-kicker {
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #C5A059;
  margin-bottom: 6px;
}

[data-theme="dark"] .register-welcome-kicker {
  color: #E5C278;
}

.register-welcome-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}

.btn-register-explore-action {
  background: linear-gradient(135deg, #3D2619 0%, #1F140F 100%);
  border: 0.5px solid rgba(212, 175, 55, 0.4);
  box-shadow: 0 8px 24px rgba(33, 21, 16, 0.25);
}

[data-theme="dark"] .btn-register-explore-action {
  background: linear-gradient(135deg, #EAD8C7 0%, #C4A482 100%);
  color: #211510;
  border-color: rgba(255, 255, 255, 0.2);
}

.btn-register-welcome-secondary {
  width: 100%;
  height: 40px;
  background: transparent;
  color: var(--text-secondary);
  border: none;
  font-size: 13px;
  font-weight: 650;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

.btn-register-welcome-secondary:active {
  opacity: 0.7;
}

/* ==========================================================================
   Apple HIG Acessibilidade: prefers-reduced-transparency & prefers-reduced-motion
   ========================================================================== */
@media (prefers-reduced-transparency: reduce) {
  .app-fixed-header,
  .app-tabbar,
  .bottom-sheet,
  .toast-notice,
  .btn-glass-dropdown,
  .status-segmented-control {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .app-fixed-header {
    background: var(--color-bg-base) !important;
  }

  .app-tabbar {
    background: var(--color-bg-secondary) !important;
    border-color: var(--border-subtle) !important;
  }

  [data-theme="dark"] .app-tabbar {
    background: #1C1512 !important;
  }

  .bottom-sheet {
    background: var(--color-surface-card) !important;
  }

  .toast-notice {
    background: #211510 !important;
  }

  [data-theme="dark"] .toast-notice {
    background: #FAF7F2 !important;
  }
}

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