/* RENTA GO Bloque 21 — Mobile First Premium + PWA tipo app
   Referencia visual: demo móvil premium solicitada por el usuario.
   Prioridad: celular 360/390/414/430px, PWA instalada y administración móvil. */
:root{
  --rg21-bg:#020713;
  --rg21-bg-2:#07111f;
  --rg21-card:rgba(12,23,42,.84);
  --rg21-card-2:rgba(16,31,56,.72);
  --rg21-stroke:rgba(148,163,184,.18);
  --rg21-stroke-strong:rgba(0,184,255,.34);
  --rg21-blue:#007BFF;
  --rg21-cyan:#00B8FF;
  --rg21-orange:#FF9F2F;
  --rg21-green:#22C55E;
  --rg21-yellow:#F59E0B;
  --rg21-red:#EF4444;
  --rg21-text:#F8FAFC;
  --rg21-muted:#94A3B8;
  --rg21-soft:#CBD5E1;
  --rg21-radius:28px;
  --rg21-radius-lg:34px;
  --rg21-shadow:0 28px 90px rgba(0,0,0,.42);
  --rg21-glow:0 0 42px rgba(0,184,255,.18);
  --rg21-bottom-h:78px;
  --rg21-safe-bottom:env(safe-area-inset-bottom,0px);
}
html.premium21, body.premium21-app{background:var(--rg21-bg);}
body.premium21-app{
  color:var(--rg21-text);
  background:
    radial-gradient(circle at 16% -8%,rgba(0,184,255,.23),transparent 28rem),
    radial-gradient(circle at 92% 8%,rgba(255,159,47,.13),transparent 24rem),
    radial-gradient(circle at 48% 102%,rgba(0,123,255,.13),transparent 26rem),
    linear-gradient(180deg,#020713,#07111f 44%,#020713);
  min-height:100vh;
}
body.premium21-app::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:42px 42px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.65),transparent 74%);
}
.premium21-app .site-header,.premium21-app .dash-topbar{
  background:linear-gradient(180deg,rgba(3,9,21,.88),rgba(3,9,21,.66));
  border-bottom:1px solid rgba(255,255,255,.10);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
}
.premium21-app .site-header .brand img,.premium21-app .dash-brand img{filter:drop-shadow(0 0 20px rgba(0,184,255,.16));}
.premium21-app .main-nav a,.premium21-app .dash-sidebar nav a{position:relative;}
.premium21-app .main-nav a svg,.premium21-app .dash-sidebar nav a svg{stroke-width:2.15;width:19px;height:19px;}
.premium21-app .btn{font-weight:850;letter-spacing:-.02em;}
.premium21-app .btn-primary{background:linear-gradient(135deg,#007BFF,#00B8FF);box-shadow:0 14px 40px rgba(0,123,255,.28),0 0 24px rgba(0,184,255,.16);border:0;color:#fff;}
.premium21-app .btn-accent{background:linear-gradient(135deg,#FF9F2F,#FF6B2C);box-shadow:0 14px 40px rgba(255,159,47,.22);border:0;color:#111827;}
.premium21-app .btn-secondary,.premium21-app .btn-ghost{
  background:rgba(255,255,255,.065);border:1px solid rgba(255,255,255,.13);color:var(--rg21-text);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.premium21-app .dash-card,.premium21-app .dash-panel,.premium21-app .detail-card,.premium21-app .property-card,.premium21-app .plan-public-card{
  border-color:var(--rg21-stroke);background:linear-gradient(180deg,rgba(13,25,45,.88),rgba(6,12,25,.94));box-shadow:var(--rg21-shadow);
}
.premium21-app .status-chip,.premium21-app .badge,.premium21-app .verified-badge{
  border-radius:999px;font-weight:850;letter-spacing:-.01em;border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(12px);
}
.premium21-app .status-confirmed,.premium21-app .status-paid,.premium21-app .status-success,.premium21-app .status-active,.premium21-app .status-published,.premium21-app .status-completed{background:rgba(34,197,94,.13)!important;color:#86EFAC!important;border-color:rgba(34,197,94,.28)!important;}
.premium21-app .status-pending,.premium21-app .status-warning,.premium21-app .status-unpaid,.premium21-app .status-pending_review{background:rgba(245,158,11,.13)!important;color:#FCD34D!important;border-color:rgba(245,158,11,.28)!important;}
.premium21-app .status-cancelled,.premium21-app .status-rejected,.premium21-app .status-danger,.premium21-app .status-suspended,.premium21-app .status-failed{background:rgba(239,68,68,.13)!important;color:#FCA5A5!important;border-color:rgba(239,68,68,.30)!important;}
.premium21-app .property-card-rich{overflow:hidden;border-radius:32px;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease;}
.premium21-app .property-card-rich:hover{transform:translateY(-6px);border-color:rgba(0,184,255,.36);box-shadow:0 32px 96px rgba(0,0,0,.42),0 0 44px rgba(0,184,255,.13);}
.premium21-app .property-cover-link::after{content:"";position:absolute;inset:auto 0 0 0;height:55%;background:linear-gradient(180deg,transparent,rgba(0,0,0,.76));pointer-events:none;}
.premium21-app .property-cover-link{position:relative;}
.premium21-app .featured-pill{background:linear-gradient(135deg,#FF9F2F,#FF6B2C)!important;color:#111827!important;font-weight:950;box-shadow:0 10px 32px rgba(255,159,47,.26);}
.premium21-app .gallery-chip{z-index:2;background:rgba(2,6,19,.68)!important;color:#fff!important;border:1px solid rgba(255,255,255,.18)!important;}
.premium21-app .rating{background:rgba(2,6,19,.62);border:1px solid rgba(255,255,255,.14);padding:.35rem .6rem;border-radius:999px;color:#FBBF24;}
.premium21-app .premium-search,.premium21-app .search-panel,.premium21-app .search-box{
  background:linear-gradient(180deg,rgba(15,28,51,.78),rgba(5,10,22,.94));border:1px solid rgba(255,255,255,.13);box-shadow:0 24px 80px rgba(0,0,0,.34),0 0 38px rgba(0,184,255,.09);
}
.premium21-app input,.premium21-app select,.premium21-app textarea{
  background:rgba(2,6,19,.46)!important;border:1px solid rgba(255,255,255,.12)!important;color:#fff!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.premium21-app input:focus,.premium21-app select:focus,.premium21-app textarea:focus{border-color:rgba(0,184,255,.55)!important;box-shadow:0 0 0 4px rgba(0,184,255,.10),inset 0 1px 0 rgba(255,255,255,.05)!important;outline:none!important;}

/* Mobile app visual system */
@media (max-width:860px){
  html{background:#020713;}
  body.premium21-app{padding-bottom:calc(var(--rg21-bottom-h) + var(--rg21-safe-bottom) + 18px);}
  body.premium21-app main{overflow-x:hidden;}
  .premium21-app .site-header{
    min-height:60px;padding:9px 14px;position:sticky;top:0;z-index:80;
    border-radius:0 0 26px 26px;margin:0 0 8px;
  }
  .premium21-app .site-header .brand img{max-height:34px;max-width:128px;object-fit:contain;}
  .premium21-app .mobile-nav-toggle,.premium21-app .dash-mobile-toggle{width:46px;height:46px;min-width:46px;min-height:46px;border-radius:18px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);}
  .premium21-app .float-whatsapp{bottom:calc(var(--rg21-bottom-h) + 28px + var(--rg21-safe-bottom));right:16px;width:58px;height:58px;border-radius:23px;background:linear-gradient(135deg,#25D366,#10B981);box-shadow:0 18px 46px rgba(37,211,102,.34);}
  .premium21-app .section{padding:18px 14px;margin:0;}
  .premium21-app .premium-section-head{align-items:flex-start;gap:10px;margin-bottom:12px;}
  .premium21-app .premium-section-head h2{font-size:1.35rem;line-height:1.05;letter-spacing:-.045em;}
  .premium21-app .eyebrow{font-size:10px;letter-spacing:.10em;color:#7DD3FC;}

  /* Home mobile como app */
  .premium21-app .hero-premium-v2{
    margin:10px 12px 18px;padding:20px 16px 18px;border-radius:34px;min-height:auto;display:block;overflow:hidden;
    background:
      radial-gradient(circle at 90% 0%,rgba(255,159,47,.18),transparent 38%),
      radial-gradient(circle at 15% 10%,rgba(0,184,255,.26),transparent 36%),
      linear-gradient(180deg,rgba(12,24,44,.92),rgba(4,9,20,.97));
    border:1px solid rgba(255,255,255,.14);box-shadow:0 28px 88px rgba(0,0,0,.52),0 0 46px rgba(0,184,255,.10);
  }
  .premium21-app .hero-premium-v2::before{content:"";position:absolute;inset:-30% -20% auto auto;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(0,184,255,.16),transparent 68%);filter:blur(2px);}
  .premium21-app .hero-copy-premium{position:relative;z-index:1;}
  .premium21-app .hero-title-premium{font-size:clamp(2.05rem,13.8vw,3.55rem);line-height:.92;margin:8px 0 12px;letter-spacing:-.08em;}
  .premium21-app .hero-subtitle-premium{font-size:.96rem;line-height:1.55;color:#B8C5D8;margin-bottom:14px;}
  .premium21-app .hero-visual-premium{display:none;}
  .premium21-app .premium-search{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;border-radius:28px!important;padding:12px!important;margin-top:10px;}
  .premium21-app .premium-search label{display:grid;gap:7px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#9FB0C7;font-weight:850;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.09);padding:10px;border-radius:20px;}
  .premium21-app .premium-search label:first-child{background:rgba(0,184,255,.08);border-color:rgba(0,184,255,.18);}
  .premium21-app .premium-search button{height:54px;border-radius:20px;font-size:1rem;}
  .premium21-app .premium-trust-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px;margin-top:14px;}
  .premium21-app .premium-trust-grid span{padding:10px;border-radius:18px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.10);font-size:11px;line-height:1.2;}
  .premium21-app .category-grid{display:flex!important;overflow-x:auto;gap:10px;padding:2px 2px 8px;scroll-snap-type:x mandatory;}
  .premium21-app .category-card{min-width:132px;scroll-snap-align:start;border-radius:22px;padding:14px;background:rgba(255,255,255,.06);}
  .premium21-app .property-grid{display:flex!important;overflow-x:auto;gap:14px;padding:2px 2px 14px;scroll-snap-type:x mandatory;}
  .premium21-app .property-grid .property-card{min-width:82vw;max-width:82vw;scroll-snap-align:start;}
  .premium21-app .property-cover-link{height:235px!important;}
  .premium21-app .property-body{padding:14px;}
  .premium21-app .property-body h3{font-size:1.08rem;line-height:1.18;margin:.5rem 0 .35rem;}
  .premium21-app .property-features,.premium21-app .premium-card-actions{gap:8px;}
  .premium21-app .premium-card-actions .btn{height:46px;flex:1;}
  .premium21-app .module-card-grid{display:grid!important;grid-template-columns:1fr!important;gap:12px;}
  .premium21-app .module-card{border-radius:28px;padding:16px;background:linear-gradient(135deg,rgba(255,255,255,.075),rgba(255,255,255,.035));}

  /* Detail mobile */
  .premium21-app .property-detail-hero{padding:14px;margin:0 12px 10px;border-radius:28px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);}
  .premium21-app .property-detail-hero h1{font-size:1.85rem;line-height:1.02;letter-spacing:-.06em;}
  .premium21-app .premium-gallery{display:block!important;margin:0 12px 14px;}
  .premium21-app .premium-gallery-main{height:360px!important;border-radius:34px;overflow:hidden;box-shadow:0 26px 76px rgba(0,0,0,.52);}
  .premium21-app .premium-gallery-main img{height:100%;width:100%;object-fit:cover;}
  .premium21-app .detail-gallery-side{display:flex!important;gap:9px;overflow-x:auto;padding:10px 2px 4px;}
  .premium21-app .detail-gallery-side .gallery-thumb{min-width:116px;height:88px;border-radius:20px;}
  .premium21-app .detail-gallery-side img{height:88px!important;border-radius:20px!important;}
  .premium21-app .detail-layout{display:block!important;margin:0 12px;}
  .premium21-app .detail-card,.premium21-app .booking-preview-card{margin-bottom:12px;border-radius:28px!important;padding:16px!important;}
  .premium21-app .feature-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .premium21-app .booking-preview-card{position:static!important;box-shadow:0 30px 90px rgba(0,0,0,.46),0 0 44px rgba(0,184,255,.13);border-color:rgba(0,184,255,.24)!important;}
  .premium21-app .price-big strong{font-size:1.75rem;}
  .premium21-app .timeline,.premium21-app .booking-timeline{display:grid;grid-template-columns:1fr;gap:8px;}
  .premium21-app .timeline-step{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:9px;}

  /* Dashboard mobile native */
  .premium21-app .dash-layout{display:block!important;}
  .premium21-app .dash-main{padding:12px!important;}
  .premium21-app .dash-topbar{margin:-12px -12px 14px;border-radius:0 0 26px 26px;padding:10px 12px;}
  .premium21-app .dash-topbar h1{font-size:1.32rem;line-height:1.05;max-width:58vw;}
  .premium21-app .dash-topbar .dash-muted{font-size:10px;}
  .premium21-app .dash-user form .btn{padding:8px 10px;min-height:42px;border-radius:16px;font-size:.8rem;}
  .premium21-app .dash-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px;}
  .premium21-app .dash-card{min-height:122px;padding:14px;border-radius:26px!important;}
  .premium21-app .dash-card span{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#9FB0C7;}
  .premium21-app .dash-card strong{font-size:1.55rem!important;line-height:1.05;}
  .premium21-app .dash-card p{font-size:.76rem;line-height:1.3;margin:.25rem 0 0;color:#9FB0C7;}
  .premium21-app .dash-panel{padding:16px!important;border-radius:28px!important;margin-bottom:12px;}
  .premium21-app .section-title-row{display:grid!important;grid-template-columns:1fr!important;gap:12px;}
  .premium21-app .section-title-row h2{font-size:1.2rem;line-height:1.08;}
  .premium21-app .booking-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px;}
  .premium21-app .booking-actions .btn{width:100%;justify-content:center;}
  .premium21-app .mini-booking-item,.premium21-app .admin-urgent-item,.premium21-app .mobile-quick-action,.premium21-app .assistant-tip{border-radius:22px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.10);}
  .premium21-app .mini-booking-item{display:grid;grid-template-columns:1fr auto;gap:6px 10px;padding:12px;text-decoration:none;color:#fff;}
  .premium21-app .mini-booking-item small{grid-column:1/-1;color:#9FB0C7;}
  .premium21-app .assistant-grid{display:grid!important;grid-template-columns:1fr!important;}
  .premium21-app .host-property-mini-grid{display:grid!important;grid-template-columns:1fr!important;}
  .premium21-app .host-property-mini{display:grid;grid-template-columns:92px 1fr;gap:12px;padding:10px;border-radius:24px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.10);}
  .premium21-app .host-property-mini img{width:92px;height:86px;min-height:0;border-radius:18px;object-fit:cover;}

  /* Admin mobile más estricto */
  .premium21-app .admin-mobile-command-center{display:grid!important;gap:12px;margin-bottom:12px;}
  .premium21-app .admin-mobile-hero{border-radius:32px;padding:20px;background:radial-gradient(circle at 0 0,rgba(0,184,255,.24),transparent 42%),radial-gradient(circle at 100% 0,rgba(255,159,47,.15),transparent 38%),linear-gradient(180deg,rgba(15,31,58,.94),rgba(5,10,22,.97));}
  .premium21-app .admin-mobile-hero h2{font-size:1.75rem;line-height:.98;letter-spacing:-.07em;margin:8px 0;}
  .premium21-app .admin-quick-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .premium21-app .admin-quick-metric{border-radius:22px;background:linear-gradient(180deg,rgba(0,184,255,.08),rgba(255,255,255,.045));padding:14px;border:1px solid rgba(255,255,255,.10);}
  .premium21-app .admin-quick-metric strong{font-size:1.7rem;color:#7DD3FC;}
  .premium21-app .mobile-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .premium21-app .mobile-quick-action{display:grid;place-items:center;gap:8px;min-height:92px;text-align:center;color:#fff;text-decoration:none;font-weight:850;}
  .premium21-app .mobile-quick-action svg{width:24px;height:24px;color:#7DD3FC;}

  /* Tables -> cards con labels reales por JS */
  .premium21-app .premium-table-wrap{border:0!important;overflow:visible!important;}
  .premium21-app table.dash-table,.premium21-app table.dash-table thead,.premium21-app table.dash-table tbody,.premium21-app table.dash-table th,.premium21-app table.dash-table td,.premium21-app table.dash-table tr{display:block;width:100%;}
  .premium21-app table.dash-table thead{display:none;}
  .premium21-app table.dash-table tr{margin:0 0 12px;padding:14px;border-radius:24px;background:linear-gradient(180deg,rgba(13,25,45,.90),rgba(6,12,25,.96));border:1px solid rgba(255,255,255,.11);box-shadow:0 16px 48px rgba(0,0,0,.32);}
  .premium21-app table.dash-table td{display:grid;grid-template-columns:minmax(95px,36%) 1fr;gap:10px;align-items:start;border:0!important;padding:8px 0!important;}
  .premium21-app table.dash-table td::before{content:attr(data-label);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#7DD3FC;font-weight:950;}
  .premium21-app table.dash-table td:empty{display:none;}

  /* Bottom nav lujo */
  .premium21-app .mobile-bottom-nav{left:10px;right:10px;height:var(--rg21-bottom-h);padding:8px;border-radius:30px;background:linear-gradient(180deg,rgba(8,18,34,.95),rgba(3,7,17,.97));border:1px solid rgba(255,255,255,.15);box-shadow:0 22px 70px rgba(0,0,0,.66),0 0 42px rgba(0,184,255,.12);}
  .premium21-app .mobile-bottom-nav__item{border-radius:22px;min-height:60px;font-size:10px;color:#AAB8CC;}
  .premium21-app .mobile-bottom-nav__item svg{width:22px;height:22px;stroke-width:2.2;}
  .premium21-app .mobile-bottom-nav__item.is-active{background:linear-gradient(135deg,#007BFF,#00B8FF);box-shadow:0 10px 28px rgba(0,123,255,.30),inset 0 1px 0 rgba(255,255,255,.18);}
  .premium21-app .mobile-bottom-nav__item:active{transform:translateY(-2px) scale(.98);}
  .premium21-app .mobile-fab{right:16px;bottom:calc(var(--rg21-bottom-h) + 28px + var(--rg21-safe-bottom));width:58px;height:58px;border-radius:23px;background:linear-gradient(135deg,#007BFF,#00B8FF);box-shadow:0 18px 46px rgba(0,123,255,.38);}

  /* PWA banner tipo app */
  .premium21-app .pwa-install-banner{left:12px;right:12px;bottom:calc(var(--rg21-bottom-h) + 16px + var(--rg21-safe-bottom));border-radius:26px;background:linear-gradient(180deg,rgba(13,25,45,.96),rgba(5,10,22,.98));border:1px solid rgba(0,184,255,.24);box-shadow:0 22px 70px rgba(0,0,0,.55),0 0 40px rgba(0,184,255,.13);padding:12px;grid-template-columns:auto 1fr auto auto;}
  .premium21-app .pwa-install-banner__icon{width:44px;height:44px;border-radius:17px;background:rgba(0,184,255,.12);color:#7DD3FC;}
  .premium21-app .pwa-install-banner p{font-size:.78rem;margin:2px 0 0;color:#9FB0C7;}
  .premium21-app .pwa-install-banner .btn{min-height:40px;padding:8px 12px;font-size:.78rem;}
}
@media (max-width:430px){
  .premium21-app .dash-grid{grid-template-columns:1fr 1fr!important;}
  .premium21-app .dash-card strong{font-size:1.35rem!important;}
  .premium21-app .property-grid .property-card{min-width:86vw;max-width:86vw;}
  .premium21-app .feature-summary{grid-template-columns:1fr!important;}
}
@media (max-width:374px){
  .premium21-app .dash-grid,.premium21-app .admin-quick-metrics,.premium21-app .mobile-quick-actions,.premium21-app .premium-trust-grid{grid-template-columns:1fr!important;}
  .premium21-app .mobile-bottom-nav__item span{font-size:9px;}
}

/* PWA installed/fullscreen feel */
@media (display-mode: standalone){
  body.premium21-app .site-header,body.premium21-app .dash-topbar{padding-top:max(12px,env(safe-area-inset-top));}
  body.premium21-app .pwa-install-banner{display:none!important;}
}
