/* Pewenche Propiedades — estilos custom */

:root {
  --pew-beige: #F7F4D5;
  --pew-beige-dark: #ede9c4;
  --pew-moss: #839958;
  --pew-moss-dark: #6d8048;
  --pew-moss-darker: #5a6b3c;
  --pew-moss-deep: #4a5732;
  --pew-moss-light: #a8b87a;
  --pew-moss-muted: #d4ddb8;
  --pew-moss-accent: #c5d4a0;
  --pew-dark-green: #0A3323;
  --rock-texture: url('https://images.unsplash.com/photo-1551893147-54af44d5b519?w=1200&q=80');
  --text-primary: #18181b;
  --text-secondary: #27272a;
  --text-muted: #3f3f46;
  --text-soft: #52525b;
}

body.site-body {
  background-color: var(--pew-beige);
  color: var(--text-primary);
  font-weight: 500;
  -webkit-font-smoothing: antialiased;
}

#mainPage h1,
#mainPage h2,
#mainPage h3,
.prop-card h3,
.about-card h3,
.contact-panel-title,
#listado h2,
#sectionTitle {
  color: var(--text-primary);
}
#mainPage .text-muted,
#mainPage .about-card p,
#mainPage .contact-note,
#mainPage #resultCount,
#mainPage .prop-card p {
  color: var(--text-muted);
}
.site-body .text-zinc-900,
.site-body .text-zinc-800 { color: #18181b; }
.site-body .text-zinc-700 { color: #27272a; }
.site-body .text-zinc-600,
.site-body .text-zinc-500,
.site-body .text-gray-600,
.site-body .text-gray-500 { color: #3f3f46; }
.site-body .text-zinc-400,
.site-body .text-gray-400 { color: #52525b; }
.bg-white { color: var(--text-primary); }
.formal-search-input,
.contact-input,
.adm-input,
select,
.form-select {
  color: var(--text-primary);
}
.sidebar-link { color: var(--text-secondary); }

/* Hero: texto claro sobre foto */
.hero-bg,
.hero-bg h1,
.hero-bg h2,
.hero-bg p,
.hero-bg span,
.hero-bg .font-bold,
.hero-bg .font-semibold {
  color: #fff;
}
.hero-bg .formal-search,
.hero-bg .formal-search label,
.hero-bg .formal-search-input,
.hero-bg .formal-search-title {
  color: #18181b;
}
.hero-bg .formal-search-field label {
  color: #3f3f46;
}
.hero-bg .formal-search-title {
  text-shadow: none;
  opacity: 1;
}

.hero-bg .hero-eyebrow,
.hero-bg .hero-lead,
.hero-bg .hero-trust {
  opacity: 1 !important;
  text-shadow: 0 1px 14px rgba(0, 0, 0, .45);
}
.hero-bg .hero-lead {
  font-weight: 500;
  color: #fff;
}
.hero-bg .hero-eyebrow,
.hero-bg .hero-trust {
  font-weight: 600;
  color: #fff;
}
.hero-bg .hero-trust i {
  opacity: 1 !important;
}

body.site-body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  opacity: 0.045;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.rock-texture {
  position: relative;
  isolation: isolate;
}
.rock-texture::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.09;
  background: var(--rock-texture) center/cover no-repeat;
  mix-blend-mode: multiply;
}
.rock-texture > * {
  position: relative;
  z-index: 1;
}

::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 99px; }

.fade-in { animation: fadeIn .38s ease both; }
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}

body, header, footer, .prop-card, .modal-backdrop, .adm-input, .btn-verde, .sidebar-link, .nav-link {
  transition: background-color .2s, border-color .2s, color .15s, transform .28s ease, box-shadow .28s ease;
}

.hero-bg {
  position: relative;
  overflow: hidden;
  background: #0A3323;
}
.hero-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 28% 42%;
  z-index: 0;
  transform: scale(1.02);
}
.hero-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(105deg, rgba(10, 51, 35, .55) 0%, rgba(10, 51, 35, .42) 42%, rgba(10, 51, 35, .72) 78%, rgba(10, 51, 35, .82) 100%),
    linear-gradient(180deg, rgba(10, 51, 35, .45) 0%, rgba(61, 72, 41, .55) 48%, rgba(10, 51, 35, .78) 100%);
  pointer-events: none;
}
.hero-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background: radial-gradient(ellipse 70% 55% at 50% 42%, transparent 0%, rgba(10, 51, 35, .35) 100%);
  opacity: 1;
}
.hero-bg > * { position: relative; z-index: 2; }
.hero-bg > picture {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
}
.hero-bg picture img.hero-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Header transparente → sólido al scroll */
.site-header {
  color: #fff;
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: background .35s ease, border-color .35s ease, box-shadow .35s ease, color .25s ease;
}
.site-header--scrolled {
  color: #18181b;
  background: rgba(255, 255, 255, .94);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom-color: rgba(0, 0, 0, .06);
  box-shadow: 0 1px 0 rgba(0, 0, 0, .04), 0 8px 24px -12px rgba(0, 0, 0, .12);
}
.site-header--hero .nav-link { color: inherit; }
.site-header--hero .nav-link:hover { background: rgba(255, 255, 255, .1); }
.site-header--scrolled .nav-link { color: #27272a; font-weight: 500; }
.site-header--scrolled .nav-link:hover { background: #f4f4f5; color: #3d4829; }
.site-header--hero .header-icon-btn:hover { background: rgba(255, 255, 255, .1); }
.site-header--scrolled .header-icon-btn:hover { background: #f4f4f5; }
.site-header--hero .header-uf { background: rgba(255, 255, 255, .12); color: #F7F4D5; }
.site-header--scrolled .header-uf { background: #F7F4D5; color: #5a6b3c; }
.site-header--hero .brand-sub { color: rgba(255, 255, 255, .92); }
.site-header--scrolled .brand-sub { color: #52525b; }
.site-header--scrolled .brand-name { color: #3d4829; font-weight: 700; }
.mobile-menu-panel {
  background: rgba(61, 72, 41, .96);
  backdrop-filter: blur(12px);
  border-top: 1px solid rgba(255, 255, 255, .08);
}
.site-header--scrolled .mobile-menu-panel {
  background: rgba(255, 255, 255, .98);
  border-top-color: rgba(0, 0, 0, .06);
}
.nav-link.active-nav { background: rgba(255, 255, 255, .16); border-radius: .5rem; font-weight: 600; }
.site-header--scrolled .nav-link.active-nav { background: #ede9c4; color: #5a6b3c; }

/* Búsqueda formal */
.formal-search {
  background: rgba(255, 255, 255, .97);
  border: 1px solid rgba(255, 255, 255, .5);
  border-radius: 1rem;
  padding: 1.25rem 1.25rem 1rem;
  box-shadow: 0 24px 48px -16px rgba(0, 0, 0, .35);
  color: #18181b;
}
.formal-search-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: .75rem;
}
@media (min-width: 640px) {
  .formal-search-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1024px) {
  .formal-search-grid { grid-template-columns: 1.1fr 1.1fr 1.4fr auto; align-items: end; }
}
.formal-search-field label {
  display: block;
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #3f3f46;
  margin-bottom: .35rem;
}
.formal-search-input {
  width: 100%;
  border: 1px solid #d4d4d8;
  border-radius: .5rem;
  padding: .7rem .85rem;
  font-size: .875rem;
  font-weight: 500;
  background: #faf8ef;
  color: #18181b;
}
.formal-search-input:focus {
  outline: 2px solid #6d8048;
  outline-offset: 1px;
  border-color: #6d8048;
}
.formal-search-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .72rem 1.25rem;
  background: #4a5732;
  color: #fff;
  font-weight: 600;
  font-size: .875rem;
  border-radius: .5rem;
  transition: background .2s;
}
.formal-search-btn:hover { background: #5a6b3c; }
.formal-search-label-spacer { display: block; height: 1.15rem; }
@media (max-width: 1023px) { .formal-search-label-spacer { display: none; } }
.formal-search-clear {
  display: block;
  width: 100%;
  margin-top: .75rem;
  text-align: center;
  font-size: .72rem;
  font-weight: 600;
  color: #52525b;
  padding: .25rem;
  transition: color .15s;
}
.formal-search-clear:hover { color: #3d4829; }

.section-eyebrow {
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .22em;
  color: #3d4829;
  margin-bottom: .75rem;
}

.about-section { background: var(--pew-beige); }
.about-card {
  background: #fff;
  border: 1px solid #f4f4f5;
  border-radius: .875rem;
  padding: 1.5rem;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
}

/* Contacto */
.contact-section {
  background: linear-gradient(180deg, var(--pew-beige) 0%, #f0ecd0 100%);
  border-top: 1px solid #e4e4e7;
}
.contact-panel-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 1rem;
  color: #18181b;
}
.contact-channels-panel,
.contact-form-panel {
  background: #fff;
  border: 1px solid #e4e4e7;
  border-radius: .875rem;
  padding: 1.5rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .03);
}
.contact-table { border-collapse: collapse; }
.contact-table th {
  text-align: left;
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: #52525b;
  padding: .5rem .75rem;
  border-bottom: 2px solid #e4e4e7;
}
.contact-table td {
  padding: .85rem .75rem;
  border-bottom: 1px solid #f4f4f5;
  vertical-align: middle;
  color: #27272a;
  font-weight: 500;
}
.contact-table tbody tr:last-child td { border-bottom: none; }
.contact-channel {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-weight: 500;
  white-space: nowrap;
}
.contact-table-link {
  display: inline-block;
  font-size: .75rem;
  font-weight: 700;
  color: #3d4829;
  padding: .35rem .75rem;
  border: 1px solid #b5c48f;
  border-radius: .375rem;
  transition: background .15s, color .15s;
}
.contact-table-link:hover { background: #F7F4D5; color: #27272a; }

/* Footer siempre oscuro — texto claro fijo */
.site-footer,
.site-footer p,
.site-footer button {
  color: rgba(255, 255, 255, 0.88);
}
.site-footer .footer-muted {
  color: rgba(255, 255, 255, 0.65);
}
.site-footer a.text-zinc-400 {
  color: rgba(255, 255, 255, 0.55) !important;
}
.site-footer button[data-action="open-admin-login"] {
  color: rgba(255, 255, 255, 0.45) !important;
}
.site-footer button[data-action="open-admin-login"]:hover {
  color: rgba(255, 255, 255, 0.75) !important;
}

/* Paneles y listado */
.contact-label {
  display: block;
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #3f3f46;
  margin-bottom: .35rem;
}
.contact-input {
  width: 100%;
  border: 1px solid #d4d4d8;
  border-radius: .5rem;
  padding: .7rem .85rem;
  font-size: .875rem;
  font-weight: 500;
  background: #faf8ef;
  color: #18181b;
}
.contact-input:focus { outline: 2px solid #6d8048; outline-offset: 1px; }
.contact-submit-btn {
  width: 100%;
  padding: .8rem 1rem;
  background: #4a5732;
  color: #fff;
  font-weight: 600;
  font-size: .875rem;
  border-radius: .5rem;
  transition: background .2s;
}
.contact-submit-btn:hover { background: #5a6b3c; }
.contact-submit-btn:disabled { opacity: .6; cursor: wait; }
.contact-wa-strip {
  background: linear-gradient(135deg, #4a5732 0%, #5a6b3c 100%);
  border-radius: .875rem;
  overflow: hidden;
  color: #fff;
  box-shadow: 0 12px 32px -12px rgba(74, 87, 50, .45);
}
.contact-wa-strip p,
.contact-wa-strip .font-bold,
.contact-wa-strip .font-semibold {
  color: #fff;
}
.contact-wa-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 1.5rem 1.75rem;
}
.contact-wa-btn {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  background: #25D366;
  color: #fff;
  font-weight: 700;
  padding: .85rem 1.35rem;
  border-radius: .625rem;
  transition: background .2s, transform .2s;
  box-shadow: 0 4px 14px rgba(37, 211, 102, .35);
}
.contact-wa-btn:hover { background: #1ebe5d; transform: translateY(-1px); }

.contact-section--highlight {
  animation: contactPulse .9s ease;
}
@keyframes contactPulse {
  0% { box-shadow: inset 0 0 0 0 rgba(131, 153, 88, 0); }
  30% { box-shadow: inset 0 0 0 3px rgba(131, 153, 88, .35); }
  100% { box-shadow: inset 0 0 0 0 rgba(131, 153, 88, 0); }
}

/* Chips de filtros activos */
.active-filters-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem;
}
.active-filters-label {
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #52525b;
  margin-right: .25rem;
}
.filter-chip {
  display: inline-flex;
  align-items: center;
  font-size: .75rem;
  font-weight: 600;
  padding: .35rem .7rem;
  border-radius: 9999px;
  background: #F7F4D5;
  color: #3d4829;
  border: 1px solid #b5c48f;
  transition: background .15s;
}
.filter-chip:hover { background: #ede9c4; }
.filter-chip--clear {
  background: transparent;
  color: #71717a;
  border-color: #e4e4e7;
}

.load-more-btn {
  display: inline-flex;
  align-items: center;
  padding: .85rem 2rem;
  font-size: .875rem;
  font-weight: 600;
  color: #4a5732;
  background: #fff;
  border: 2px solid #d4ddb8;
  border-radius: .625rem;
  transition: background .2s, border-color .2s, transform .2s;
  box-shadow: 0 4px 14px -6px rgba(74, 87, 50, .2);
}
.load-more-btn:hover {
  background: #F7F4D5;
  border-color: #839958;
  transform: translateY(-1px);
}

.scroll-top-btn {
  position: fixed;
  bottom: 6.5rem;
  right: 1.5rem;
  z-index: 39;
  width: 2.75rem;
  height: 2.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  color: #4a5732;
  border: 1px solid #e4e4e7;
  border-radius: 9999px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, .12);
  transition: opacity .2s, transform .2s;
}
.scroll-top-btn:hover { transform: translateY(-2px); }

.carousel-inner { display: flex; transition: transform .4s cubic-bezier(.4, 0, .2, 1); }
.carousel-slide  { flex: 0 0 100%; }

.prop-card h3 {
  color: var(--text-primary);
  font-weight: 700;
}

.prop-card {
  color: var(--text-primary);
}

.sidebar-link {
  color: var(--text-muted);
  font-weight: 500;
}

.prop-card:hover { transform: translateY(-8px); box-shadow: 0 24px 32px -8px rgba(0, 0, 0, .13); }

.price-uf { font-size: 1.65rem; font-weight: 800; color: #3d4829; line-height: 1.1; }
.price-clp { font-size: 1.45rem; font-weight: 800; color: #3d4829; line-height: 1.15; }
.card-media { height: 200px; }
@media (min-width: 640px) {
  .card-media { height: 220px; }
}
@media (min-width: 1024px) {
  .card-media { height: 230px; }
}

.modal-backdrop {
  position: fixed; inset: 0;
  background: rgba(0, 0, 0, .6);
  backdrop-filter: blur(5px);
  z-index: 9000;
  display: flex; align-items: center; justify-content: center;
  padding: 1rem;
}

.sidebar-link.active { background: #ede9c4; color: #5a6b3c; font-weight: 600; }

.adm-input {
  width: 100%; border: 1px solid #d4d4d8; border-radius: .75rem;
  padding: .6rem 1rem; font-size: .875rem; font-weight: 500; background: #faf8ef; color: #18181b;
}
.adm-input:focus { outline: 2px solid #839958; outline-offset: 2px; }

.form-select,
.adm-input select,
select.adm-input {
  color-scheme: light;
  appearance: auto;
}
.form-select,
select {
  background-color: #faf8ef;
  color: #18181b;
  font-weight: 500;
}
.form-select option,
select option {
  background-color: #ffffff;
  color: #1f2937;
}

.admin-sidebar-btn { display: flex; align-items: center; gap: 0.65rem; color: #d4ddb8; transition: background .15s; }
.admin-sidebar-btn:hover { background: rgba(255,255,255,.08); }
.admin-sidebar-active { background: rgba(255,255,255,.15) !important; color: #fff !important; font-weight: 600; }
.admin-stat-card { background: #fff; border: 1px solid #e5e7eb; border-radius: 1rem; padding: 1rem; }
.admin-action-card { display: flex; flex-direction: column; align-items: flex-start; text-align: left; padding: 1.25rem; background: #fff; border: 1px solid #e5e7eb; border-radius: 1rem; transition: box-shadow .2s, border-color .2s; }
.admin-action-card:hover { border-color: #839958; box-shadow: 0 4px 14px rgba(90, 107, 60, .18); }
.adm-label { display: block; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #3f3f46; margin-bottom: .35rem; }
.upload-zone { border: 2px dashed #d1d5db; border-radius: 1rem; padding: 2rem; text-align: center; cursor: pointer; transition: border-color .2s, background .2s; }
.upload-zone:hover, .upload-zone.drag-over { border-color: #839958; background: #F7F4D5; }

.btn-verde { background: #839958; color: white; font-weight: 600; border-radius: .75rem; }
.btn-verde:hover { background: #6d8048; }

#adminSidebarOverlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 60;
}
.admin-sidebar { z-index: 70; }

/* Filtros móvil */
.mobile-filter-bar {
  flex-wrap: wrap;
  gap: .5rem;
}
@media (max-width: 639px) {
  .formal-search { padding: 1rem; }
  .formal-search-grid { gap: .65rem; }
  #propertiesGrid { gap: 1rem; }
  .contact-wa-inner { flex-direction: column; align-items: stretch; }
  .contact-wa-btn { justify-content: center; }
}

.line-clamp-2 {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.line-clamp-3 {
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}

.skeleton {
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  background-size: 200% 100%;
  animation: shimmer 1.2s infinite;
}
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* ═══ Móvil — sitio público y admin ═══ */
:root {
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-top: env(safe-area-inset-top, 0px);
}

body {
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}

.site-header {
  padding-top: var(--safe-top);
}

@media (max-width: 639px) {
  .hero-photo { object-position: 18% 40%; }
  .hero-bg .font-display {
    font-size: 1.85rem !important;
    line-height: 1.15;
  }
  .hero-trust {
    flex-direction: column;
    gap: 0.5rem !important;
    font-size: 0.8rem;
  }
  .hero-bg .max-w-5xl {
    padding-top: 3.5rem !important;
    padding-bottom: 2.5rem !important;
  }
  .brand-sub { display: none; }
  .header-uf { display: none !important; }
  .prop-card .btn-verde,
  .prop-card a[aria-label] {
    min-height: 2.75rem;
  }
  .price-uf { font-size: 1.35rem; }
  .price-clp { font-size: 1.25rem; }
  .contact-table th:last-child,
  .contact-table td:last-child { display: none; }
  .contact-table td { font-size: 0.8rem; padding: 0.65rem 0.5rem; }
  .contact-layout { gap: 1.25rem !important; }
  .about-section { padding-top: 3rem !important; padding-bottom: 3rem !important; }
  #waFloat {
    bottom: calc(1.25rem + var(--safe-bottom));
    right: 1rem;
    width: 3.25rem;
    height: 3.25rem;
  }
  .scroll-top-btn {
    bottom: calc(5.5rem + var(--safe-bottom));
    right: 1rem;
  }
  .formal-search-input,
  .formal-search-btn,
  .form-select,
  .adm-input,
  .contact-input,
  .contact-submit-btn {
    font-size: 16px; /* evita zoom en iOS */
    min-height: 2.75rem;
  }
  .modal-backdrop--sheet {
    align-items: flex-end;
    padding: 0;
  }
  .modal-sheet {
    border-radius: 1.25rem 1.25rem 0 0;
    max-width: 100%;
    padding-bottom: calc(1.5rem + var(--safe-bottom));
  }
  #propertiesGrid {
    grid-template-columns: 1fr !important;
  }
}

/* Tablet */
@media (min-width: 640px) and (max-width: 1023px) {
  .hero-bg .font-display {
    font-size: 2.45rem !important;
  }
  #propertiesGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1.15rem;
  }
  .admin-prop-card-img {
    width: 6.5rem;
    height: 6.5rem;
  }
  #adminPage main { padding: 1.15rem 1.35rem; }
}

/* Admin móvil */
.admin-main-scroll {
  padding-bottom: calc(5.5rem + var(--safe-bottom));
}
@media (min-width: 768px) {
  .admin-main-scroll { padding-bottom: 1.5rem; }
}

.admin-bottom-nav {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 80;
  display: flex;
  align-items: stretch;
  justify-content: space-around;
  gap: 0.15rem;
  padding: 0.35rem 0.5rem calc(0.35rem + var(--safe-bottom));
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(12px);
  border-top: 1px solid #e4e4e7;
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.06);
}

.admin-bottom-nav-btn {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  min-height: 3rem;
  padding: 0.25rem 0.15rem;
  font-size: 0.62rem;
  font-weight: 600;
  color: #71717a;
  border-radius: 0.5rem;
  transition: color 0.15s, background 0.15s;
}
.admin-bottom-nav-btn i { font-size: 1.15rem; }
.admin-bottom-nav-btn.admin-bottom-nav-active {
  color: #5a6b3c;
  background: #F7F4D5;
}
.admin-bottom-nav-btn--accent {
  color: #fff;
  background: #6d8048;
  border-radius: 0.65rem;
  margin: 0 0.1rem;
}
.admin-bottom-nav-btn--accent.admin-bottom-nav-active {
  background: #5a6b3c;
  color: #fff;
}

.admin-prop-card {
  display: flex;
  gap: 0.75rem;
  padding: 0.75rem;
  background: #fff;
  border: 1px solid #e4e4e7;
  border-radius: 0.875rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
.admin-prop-card-img {
  position: relative;
  width: 5.5rem;
  height: 5.5rem;
  flex-shrink: 0;
  border-radius: 0.65rem;
  overflow: hidden;
  background: #f4f4f5;
}
.admin-prop-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.admin-prop-card-img--empty {
  background: linear-gradient(135deg, #ede9c4, #F7F4D5);
}
.admin-prop-card-img span {
  position: absolute;
  top: 0.25rem;
  left: 0.25rem;
  font-size: 0.55rem;
  padding: 0.15rem 0.4rem;
}
.admin-prop-card-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.admin-prop-card-actions {
  display: flex;
  gap: 0.35rem;
  margin-top: auto;
  padding-top: 0.5rem;
}
.admin-prop-card-btn {
  flex: 1;
  min-height: 2.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  font-size: 0.72rem;
  font-weight: 600;
  border: 1px solid #e4e4e7;
  border-radius: 0.5rem;
  color: #3f3f46;
  background: #faf8ef;
}
.admin-prop-card-btn--primary {
  background: #F7F4D5;
  border-color: #d4ddb8;
  color: #5a6b3c;
}
.admin-prop-card-btn--danger {
  flex: 0 0 2.5rem;
  color: #dc2626;
  border-color: #fecaca;
  background: #fef2f2;
}

.admin-save-bar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: calc(4.25rem + var(--safe-bottom));
  z-index: 75;
  padding: 0.65rem 1rem;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-top: 1px solid #e4e4e7;
  box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.08);
}

.admin-stats-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.admin-stats-scroll::-webkit-scrollbar { display: none; }

@media (max-width: 767px) {
  .admin-sidebar {
    position: fixed;
    left: 0; top: 0; bottom: 0;
    transform: translateX(-100%);
    transition: transform .25s ease;
    width: min(88vw, 18rem);
    padding-bottom: var(--safe-bottom);
  }
  .admin-sidebar.admin-sidebar-open { transform: translateX(0); }
  #adminPage > .flex-1 { width: 100%; }
  #adminPage main { padding: 0.85rem; }
  #adminPage header {
    padding: 0.65rem 0.85rem;
    padding-top: calc(0.65rem + var(--safe-top));
  }
  #adminPageTitle { font-size: 1rem; }
  .admin-stat-card {
    padding: 0.75rem;
    min-width: 0;
  }
  .admin-stat-card p.text-2xl { font-size: 1.25rem; }
  .admin-action-card {
    padding: 1rem;
    min-height: 5.5rem;
  }
  .upload-zone { padding: 1.25rem; }
  #editorMapPreview { height: 160px !important; }
  [data-admin-panel="editor"] .grid.grid-cols-2,
  [data-admin-panel="editor"] .grid.grid-cols-4 {
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
  }
}
