/* =========================================================
   APOGEO · refinamiento visual integral
   Capa visual compartida. No contiene lógica de producto.
   ========================================================= */
:root{
  --ap-font-institutional:'Inter',ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --ap-font-product:'Inter',ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --ap-font-brand:'Inter',ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --ap-font:var(--ap-font-institutional);
  --ap-navy:#051d40;
  --ap-navy-2:#082a5a;
  --ap-green:#00b894;
  --ap-green-2:#00d8ad;
  --ap-paper:#f6f8fc;
  --ap-cream:#fffdf8;
  --ap-white:#fff;
  --ap-text:#0d1b2e;
  --ap-muted:#607086;
  --ap-line:#dfe6ef;
  --ap-line-strong:#cfd9e6;
  --ap-focus:0 0 0 3px rgba(0,216,173,.18);
  --ap-shadow-xs:0 2px 8px rgba(5,29,64,.035);
  --ap-shadow-sm:0 8px 24px rgba(5,29,64,.055);
  --ap-shadow-md:0 16px 44px rgba(5,29,64,.08);
  --ap-r-sm:10px;
  --ap-r-md:13px;
  --ap-r-lg:18px;
  --ap-r-xl:24px;
  --ap-control-h:42px;
}

html{-webkit-text-size-adjust:100%}

/* Sistema tipográfico final:
   Inter = marca, comunicación, producto y operación. */
body.apogeo-index,
body.apogeo-privacidad{
  --ap-font:var(--ap-font-institutional);
}

body.apogeo-panel,
body.apogeo-entrar,
body.apogeo-suscripcion,
body.apogeo-staff,
body.apogeo-catalogo,
body.apogeo-tarjeta,
body.apogeo-tarjeta-cliente,
body.apogeo-admin{
  --ap-font:var(--ap-font-product);
}

body.apogeo-page{
  font-family:var(--ap-font)!important;
  font-synthesis:none;
  font-weight:400;
  text-rendering:geometricPrecision;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
body.apogeo-page button,
body.apogeo-page input,
body.apogeo-page select,
body.apogeo-page textarea{
  font-family:var(--ap-font)!important;
}
body.apogeo-page button,
body.apogeo-page a,
body.apogeo-page input,
body.apogeo-page select,
body.apogeo-page textarea{
  -webkit-tap-highlight-color:transparent;
}
body.apogeo-page button,
body.apogeo-page a,
body.apogeo-page input,
body.apogeo-page select,
body.apogeo-page textarea{
  transition-property:background-color,border-color,color,box-shadow,transform,opacity;
  transition-duration:.16s;
  transition-timing-function:ease;
}
body.apogeo-page button:focus-visible,
body.apogeo-page a:focus-visible,
body.apogeo-page input:focus-visible,
body.apogeo-page select:focus-visible,
body.apogeo-page textarea:focus-visible{
  outline:2px solid var(--ap-green-2)!important;
  outline-offset:2px!important;
  box-shadow:var(--ap-focus)!important;
}
body.apogeo-page button:active:not(:disabled),
body.apogeo-page .btn:active:not(:disabled){transform:translateY(1px)}
body.apogeo-page button:disabled,
body.apogeo-page .btn:disabled{cursor:not-allowed!important;opacity:.56!important}
body.apogeo-page svg{shape-rendering:geometricPrecision}
body.apogeo-page img{image-rendering:auto}

/* Marca y jerarquía base */
body.apogeo-page .brand,
body.apogeo-page .logo,
body.apogeo-page .dash-brand,
body.apogeo-page .auth-logo,
body.apogeo-page .apogeo-boot-brand,
body.apogeo-page .intro-logo,
body.apogeo-page .report-print-brand,
body.apogeo-page .brand-close{
  font-family:var(--ap-font-brand)!important;
  letter-spacing:.17em!important;
  font-weight:800!important;
}
body.apogeo-page h1,
body.apogeo-page h2,
body.apogeo-page h3,
body.apogeo-page h4{
  text-wrap:balance;
}

/* =========================================================
   LANDING PRINCIPAL
   ========================================================= */
body.apogeo-index{
  --font:var(--ap-font)!important;
  --display:var(--ap-font)!important;
}
body.apogeo-index nav{height:60px!important;padding-inline:clamp(16px,4vw,56px)!important}
body.apogeo-index .logo{font-size:18px!important;letter-spacing:.075em!important}
body.apogeo-index .nav-links a{font-size:12.5px!important;font-weight:600!important;padding:8px 11px!important}
body.apogeo-index .nav-cta{padding:9px 16px!important;border-radius:999px!important}
body.apogeo-index section{padding-inline:clamp(16px,4vw,56px)!important}
body.apogeo-index .hero-copy h1{
  font-size:clamp(40px,4.7vw,64px)!important;
  line-height:.97!important;
  letter-spacing:-.048em!important;
  font-weight:800!important;
}
body.apogeo-index .hero-sub,
body.apogeo-index .lead{font-weight:400!important;line-height:1.62!important}
body.apogeo-index .btn{
  min-height:44px!important;
  padding:11px 19px!important;
  border-radius:999px!important;
  font-size:13px!important;
  font-weight:700!important;
  box-shadow:none!important;
}
body.apogeo-index .btn-primary{box-shadow:0 12px 30px rgba(0,216,173,.18)!important}
body.apogeo-index .btn:hover{transform:translateY(-1px)!important}
body.apogeo-index .hstat,
body.apogeo-index .flow-rule,
body.apogeo-index .feat,
body.apogeo-index .faq{
  border-radius:15px!important;
}
body.apogeo-index .hstat{padding:13px 14px!important}
body.apogeo-index .hstat b{font-size:19px!important;font-weight:700!important}
body.apogeo-index .hstat span{font-size:10.5px!important;line-height:1.35!important}
body.apogeo-index .price-card{border-radius:24px!important;box-shadow:var(--ap-shadow-md)!important}
body.apogeo-index .price-num{font-size:56px!important;font-weight:800!important}
body.apogeo-index .price-features li{font-weight:400!important}
@media(max-width:900px){
  body.apogeo-index section{padding-block:36px!important}
  body.apogeo-index .hero-copy h1{font-size:clamp(38px,10vw,52px)!important}
  body.apogeo-index .hero-sub{font-size:14.5px!important}
  body.apogeo-index .hero-actions{gap:9px!important}
}
@media(max-width:600px){
  body.apogeo-index nav{padding-inline:15px!important}
  body.apogeo-index .nav-links a:not(.nav-cta){display:none!important}
  body.apogeo-index .hero-copy h1{font-size:clamp(36px,11vw,46px)!important}
  body.apogeo-index .btn{width:100%!important;min-height:46px!important}
}

/* =========================================================
   ENTRAR / ONBOARDING
   ========================================================= */
body.apogeo-entrar{
  --font:var(--ap-font)!important;
  background-color:var(--ap-cream)!important;
}
body.apogeo-entrar .shell{width:min(100%,1080px)!important}
body.apogeo-entrar .card,
body.apogeo-entrar .gate,
body.apogeo-entrar .final-card{
  border-radius:22px!important;
  border-color:var(--ap-line)!important;
  box-shadow:var(--ap-shadow-md)!important;
}
body.apogeo-entrar h1{font-weight:800!important;letter-spacing:-.035em!important}
body.apogeo-entrar h2{font-weight:800!important;letter-spacing:-.025em!important}
body.apogeo-entrar .sub,
body.apogeo-entrar .hint,
body.apogeo-entrar .note{font-weight:500!important}
body.apogeo-entrar .btn,
body.apogeo-entrar button.google{
  min-height:44px!important;
  border-radius:12px!important;
  font-size:13.5px!important;
  font-weight:600!important;
  box-shadow:none!important;
}
body.apogeo-entrar button.google{box-shadow:0 8px 24px rgba(5,29,64,.08)!important}
body.apogeo-entrar .field input,
body.apogeo-entrar .field select,
body.apogeo-entrar .field textarea{
  min-height:44px!important;
  border-radius:11px!important;
  border-color:var(--ap-line)!important;
  font-size:14px!important;
  font-weight:500!important;
}
body.apogeo-entrar .field label{font-size:11.25px!important;font-weight:600!important;letter-spacing:.025em!important}
body.apogeo-entrar .step-pill,
body.apogeo-entrar .url-chip{font-weight:600!important}
@media(max-width:640px){
  body.apogeo-entrar{padding:14px!important}
  body.apogeo-entrar .card,
  body.apogeo-entrar .gate-body,
  body.apogeo-entrar .final-card{padding:20px 17px!important}
  body.apogeo-entrar h1{font-size:clamp(26px,8vw,34px)!important}
  body.apogeo-entrar .btn,
  body.apogeo-entrar button.google{min-height:46px!important}
}

/* =========================================================
   PANEL DEL NEGOCIO
   ========================================================= */
body.apogeo-panel{
  --font:var(--ap-font)!important;
  --shadow:var(--ap-shadow-sm)!important;
  background:#f8fafc!important;
}
body.apogeo-panel .top{box-shadow:0 1px 0 rgba(255,255,255,.06)!important}
body.apogeo-panel .top .row{padding-block:13px!important}
body.apogeo-panel .brand{font-size:12.5px!important}
body.apogeo-panel .biz{font-size:12.5px!important;font-weight:500!important}
body.apogeo-panel .logout{font-size:12px!important;font-weight:600!important;min-height:34px!important}
body.apogeo-panel .nav button{
  min-height:50px!important;
  padding:13px 15px!important;
  font-size:13px!important;
  font-weight:600!important;
}
body.apogeo-panel main.app{padding-top:20px!important}
body.apogeo-panel h1.h{
  font-size:clamp(24px,2.3vw,30px)!important;
  line-height:1.08!important;
  font-weight:800!important;
  letter-spacing:-.035em!important;
}
body.apogeo-panel p.lead{font-size:13.5px!important;font-weight:500!important;line-height:1.5!important}
body.apogeo-panel .panel,
body.apogeo-panel .report-panel,
body.apogeo-panel .metric,
body.apogeo-panel .status-line,
body.apogeo-panel .result,
body.apogeo-panel .pending,
body.apogeo-panel .ci,
body.apogeo-panel .item,
body.apogeo-panel .rcard,
body.apogeo-panel .seg-card{
  border-color:var(--ap-line)!important;
  box-shadow:var(--ap-shadow-xs)!important;
}
body.apogeo-panel .panel,
body.apogeo-panel .report-panel{border-radius:18px!important}
body.apogeo-panel .panel h3,
body.apogeo-panel .report-panel h3{font-weight:700!important;letter-spacing:-.012em!important}
body.apogeo-panel .metric .lbl{font-weight:600!important;letter-spacing:.045em!important}
body.apogeo-panel .metric .val{font-weight:800!important}
body.apogeo-panel .btn,
body.apogeo-panel .rcard-btn,
body.apogeo-panel .catalog-inner-tab,
body.apogeo-panel .catalog-quick-actions .btn{
  min-height:40px!important;
  padding:9px 14px!important;
  border-radius:11px!important;
  font-size:13px!important;
  line-height:1.1!important;
  font-weight:600!important;
  letter-spacing:0!important;
  box-shadow:none!important;
}
body.apogeo-panel .btn.sm,
body.apogeo-panel .rcard-btn{
  min-height:34px!important;
  padding:7px 11px!important;
  border-radius:9px!important;
  font-size:12.25px!important;
}
body.apogeo-panel .btn:not(.danger):not(.ghost):hover{filter:brightness(.985)!important;box-shadow:0 8px 20px rgba(0,184,148,.12)!important}
body.apogeo-panel .btn.ghost,
body.apogeo-panel .rcard-btn{
  background:#fff!important;
  border-color:var(--ap-line)!important;
  color:var(--ap-navy)!important;
}
body.apogeo-panel .btn.ghost:hover,
body.apogeo-panel .rcard-btn:hover{background:#f7fafc!important;border-color:#c9d5e4!important}
body.apogeo-panel .btn.danger{font-weight:600!important}
body.apogeo-panel .f label,
body.apogeo-panel .bulk-field label{font-size:11.25px!important;font-weight:600!important;letter-spacing:.015em!important}
body.apogeo-panel .f input,
body.apogeo-panel .f select,
body.apogeo-panel .f textarea,
body.apogeo-panel .pin-search input,
body.apogeo-panel .report-select{
  min-height:42px!important;
  border-radius:11px!important;
  border-color:var(--ap-line)!important;
  font-size:13.5px!important;
  font-weight:500!important;
  box-shadow:none!important;
}
body.apogeo-panel .f textarea{line-height:1.5!important}
body.apogeo-panel .report-head{
  display:grid!important;
  grid-template-columns:minmax(360px,1fr) auto!important;
  align-items:start!important;
  gap:18px!important;
}
body.apogeo-panel .report-controls{
  gap:8px!important;
  align-items:center!important;
  flex-wrap:nowrap!important;
}
body.apogeo-panel .report-select,
body.apogeo-panel .report-refresh,
body.apogeo-panel .report-download{
  height:42px!important;
  min-height:42px!important;
  border-radius:11px!important;
  font-size:13px!important;
  font-weight:600!important;
  line-height:1!important;
}
body.apogeo-panel .report-select{width:158px!important;max-width:158px!important;padding:0 34px 0 13px!important}
body.apogeo-panel .report-refresh{width:112px!important;justify-content:center!important}
body.apogeo-panel .report-download{width:164px!important;justify-content:center!important}
body.apogeo-panel .report-refresh,
body.apogeo-panel .report-download{
  padding:0 14px!important;
  gap:7px!important;
}
body.apogeo-panel .report-refresh svg,
body.apogeo-panel .report-download svg{
  width:15px!important;
  height:15px!important;
  flex:0 0 15px!important;
  stroke-width:1.75!important;
  transform:none!important;
}
body.apogeo-panel .report-period-note{font-size:11.75px!important;font-weight:500!important}
body.apogeo-panel .report-metric-label{font-weight:600!important;letter-spacing:.035em!important}
body.apogeo-panel .report-metric-value{font-weight:800!important}
body.apogeo-panel .modal{
  border-radius:20px!important;
  border:1px solid var(--ap-line)!important;
  box-shadow:0 24px 70px rgba(5,29,64,.18)!important;
}
body.apogeo-panel .modal h3{font-weight:800!important}
body.apogeo-panel .empty{font-weight:500!important;line-height:1.5!important}
body.apogeo-panel .badge-soft,
body.apogeo-panel .seg-chip,
body.apogeo-panel .rcard-status{font-weight:600!important;letter-spacing:.02em!important}
body.apogeo-panel .item h4,
body.apogeo-panel .ci b,
body.apogeo-panel .result b{font-weight:600!important}
body.apogeo-panel .item .meta,
body.apogeo-panel .ci span,
body.apogeo-panel .result span{font-weight:500!important}
@media(max-width:760px){
  body.apogeo-panel main.app{padding-top:15px!important}
  body.apogeo-panel .report-head{grid-template-columns:1fr!important;gap:10px!important}
  body.apogeo-panel .report-controls{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 42px 42px!important;
    width:100%!important;
  }
  body.apogeo-panel .report-select{width:100%!important;max-width:none!important}
  body.apogeo-panel .report-refresh,
  body.apogeo-panel .report-download{
    width:42px!important;
    min-width:42px!important;
    padding:0!important;
    font-size:0!important;
  }
  body.apogeo-panel .report-refresh svg,
  body.apogeo-panel .report-download svg{width:17px!important;height:17px!important;flex-basis:17px!important}
}
@media(max-width:640px){
  body.apogeo-panel .top .row{padding:12px 14px!important}
  body.apogeo-panel .biz{max-width:44vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  body.apogeo-panel .nav button{min-height:58px!important;padding:8px 3px!important;font-size:10.25px!important;font-weight:600!important}
  body.apogeo-panel .panel{padding:15px!important}
  body.apogeo-panel h1.h{font-size:24px!important}
  body.apogeo-panel .btn{min-height:44px!important}
  body.apogeo-panel .btn.sm{min-height:38px!important}
  body.apogeo-panel .f input,
  body.apogeo-panel .f select,
  body.apogeo-panel .f textarea{min-height:44px!important}
}

/* =========================================================
   SUSCRIPCIÓN
   ========================================================= */
body.apogeo-suscripcion{
  --font:var(--ap-font)!important;
  background:#f6f8fc!important;
}
body.apogeo-suscripcion .topbar{box-shadow:0 1px 0 rgba(255,255,255,.06)!important}
body.apogeo-suscripcion .brand{font-size:12.5px!important}
body.apogeo-suscripcion .biz{font-weight:600!important}
body.apogeo-suscripcion .page-head h1{font-weight:800!important;letter-spacing:-.035em!important}
body.apogeo-suscripcion .page-head p{font-weight:500!important}
body.apogeo-suscripcion .section,
body.apogeo-suscripcion .summary-card,
body.apogeo-suscripcion .return-card{
  border-color:var(--ap-line)!important;
  border-radius:18px!important;
  box-shadow:var(--ap-shadow-xs)!important;
}
body.apogeo-suscripcion .section-title,
body.apogeo-suscripcion .summary-head,
body.apogeo-suscripcion .product-copy b{font-weight:700!important}
body.apogeo-suscripcion .btn,
body.apogeo-suscripcion .exit{
  min-height:42px!important;
  border-radius:11px!important;
  padding:10px 15px!important;
  font-size:13px!important;
  font-weight:600!important;
  box-shadow:none!important;
}
body.apogeo-suscripcion .btn:not(.secondary){box-shadow:0 8px 20px rgba(5,29,64,.08)!important}
body.apogeo-suscripcion .secondary{border-color:var(--ap-line)!important}
body.apogeo-suscripcion .trial-strip,
body.apogeo-suscripcion .notice,
body.apogeo-suscripcion .trust{border-radius:12px!important}
body.apogeo-suscripcion .sum-row,
body.apogeo-suscripcion .rows{font-weight:500!important}
body.apogeo-suscripcion .test-badge,
body.apogeo-suscripcion .sandbox-note{font-weight:700!important;letter-spacing:.055em!important}
@media(max-width:760px){
  body.apogeo-suscripcion .layout{gap:12px!important}
  body.apogeo-suscripcion .page-head{padding-inline:16px!important}
  body.apogeo-suscripcion .section,
  body.apogeo-suscripcion .summary-card{border-radius:16px!important}
  body.apogeo-suscripcion .btn{min-height:45px!important}
}

/* =========================================================
   CATÁLOGO PÚBLICO
   ========================================================= */
body.apogeo-catalogo{
  --font:var(--ap-font)!important;
  font-family:var(--ap-font)!important;
}
body.apogeo-catalogo .mobile-hero{border-radius:24px!important;box-shadow:0 14px 36px rgba(59,11,12,.12)!important}
body.apogeo-catalogo .hero-copy h1{font-weight:800!important;letter-spacing:-.055em!important}
body.apogeo-catalogo .hero-copy small,
body.apogeo-catalogo .visit-banner small{font-weight:700!important;letter-spacing:.09em!important}
body.apogeo-catalogo .hero-contact{font-weight:500!important}
body.apogeo-catalogo .visit-banner{border-radius:18px!important;box-shadow:0 10px 28px rgba(59,11,12,.09)!important}
body.apogeo-catalogo .btn,
body.apogeo-catalogo .cart-icon-btn,
body.apogeo-catalogo .cart-send,
body.apogeo-catalogo .cat-chip,
body.apogeo-catalogo .catalog-tab,
body.apogeo-catalogo .fotos-upload-btn{
  min-height:40px!important;
  border-radius:11px!important;
  font-size:12.5px!important;
  font-weight:600!important;
  box-shadow:none!important;
}
body.apogeo-catalogo .menu-shell,
body.apogeo-catalogo .info,
body.apogeo-catalogo .fotos-section{border-color:var(--line)!important;box-shadow:0 10px 30px rgba(59,11,12,.055)!important}
body.apogeo-catalogo .menu-head h2,
body.apogeo-catalogo .info h2{font-weight:800!important;letter-spacing:-.045em!important}
body.apogeo-catalogo .menu-head p{font-weight:500!important}
body.apogeo-catalogo .card{border-radius:15px!important;box-shadow:0 4px 14px rgba(59,11,12,.045)!important}
body.apogeo-catalogo .card h4{font-weight:600!important;letter-spacing:-.015em!important}
body.apogeo-catalogo .price{font-weight:700!important}
body.apogeo-catalogo .qty-stepper button,
body.apogeo-catalogo .qty button{
  border-radius:10px!important;
  font-weight:600!important;
  box-shadow:none!important;
}
body.apogeo-catalogo .qty-number{border-radius:10px!important;font-weight:600!important}
body.apogeo-catalogo .cart-bar{border-radius:18px!important;box-shadow:0 14px 38px rgba(59,11,12,.14)!important}
body.apogeo-catalogo .cart-panel{border-radius:22px!important}
body.apogeo-catalogo .ap-modal{border-radius:20px!important}
body.apogeo-catalogo .ap-field input,
body.apogeo-catalogo .ap-field select,
body.apogeo-catalogo .ap-field textarea{
  min-height:44px!important;
  border-radius:11px!important;
  font-size:14px!important;
  font-weight:500!important;
}
@media(max-width:600px){
  body.apogeo-catalogo .page{padding-inline:10px!important}
  body.apogeo-catalogo .mobile-hero{border-radius:20px!important;padding:16px!important}
  body.apogeo-catalogo .hero-copy h1{font-size:clamp(29px,9.5vw,38px)!important}
  body.apogeo-catalogo .menu-shell{border-radius:22px!important}
  body.apogeo-catalogo .card h4{font-size:13.5px!important}
  body.apogeo-catalogo .btn,
  body.apogeo-catalogo .cart-send,
  body.apogeo-catalogo .cart-icon-btn{min-height:44px!important}
}

/* =========================================================
   STAFF / VALIDACIÓN
   ========================================================= */
body.apogeo-staff{
  --font:var(--ap-font)!important;
  font-family:var(--ap-font)!important;
}
body.apogeo-staff .staff-card{
  border-radius:24px!important;
  box-shadow:0 24px 70px rgba(0,0,0,.28)!important;
}
body.apogeo-staff h1{font-size:clamp(27px,7vw,31px)!important;font-weight:800!important;letter-spacing:-.04em!important}
body.apogeo-staff h2{font-weight:800!important;letter-spacing:-.03em!important}
body.apogeo-staff .sub{font-weight:500!important}
body.apogeo-staff .micro,
body.apogeo-staff .safe-note{font-weight:500!important}
body.apogeo-staff .field label{font-size:10.75px!important;font-weight:600!important;letter-spacing:.045em!important}
body.apogeo-staff .field input,
body.apogeo-staff .dnd-panel select{
  min-height:46px!important;
  border-radius:12px!important;
  font-size:14px!important;
  font-weight:500!important;
}
body.apogeo-staff .btn,
body.apogeo-staff .edit-business,
body.apogeo-staff .dnd-toggle{
  min-height:44px!important;
  border-radius:12px!important;
  font-size:13px!important;
  font-weight:600!important;
  box-shadow:none!important;
}
body.apogeo-staff .btn.primary{box-shadow:0 10px 26px rgba(0,184,148,.20)!important}
body.apogeo-staff .match-row,
body.apogeo-staff .client-card,
body.apogeo-staff .summary-card,
body.apogeo-staff .safe-note{border-radius:14px!important}
body.apogeo-staff .estado-badge,
body.apogeo-staff .chip-nm,
body.apogeo-staff .pill{font-weight:600!important;letter-spacing:.055em!important}
@media(max-width:480px){
  body.apogeo-staff{padding:12px!important}
  body.apogeo-staff .staff-card{padding:22px 17px 18px!important;border-radius:21px!important;min-height:0!important}
  body.apogeo-staff .btn{min-height:46px!important}
}

/* =========================================================
   TARJETA DEL CLIENTE
   ========================================================= */
body.apogeo-tarjeta-cliente{
  --font:var(--ap-font)!important;
  font-family:var(--ap-font)!important;
}
body.apogeo-tarjeta-cliente .card{border-radius:24px!important;box-shadow:0 24px 70px rgba(0,0,0,.27)!important}
body.apogeo-tarjeta-cliente h1{font-weight:800!important;letter-spacing:-.035em!important}
body.apogeo-tarjeta-cliente .hello,
body.apogeo-tarjeta-cliente .meta,
body.apogeo-tarjeta-cliente .privacy-note{font-weight:500!important}
body.apogeo-tarjeta-cliente .progress{border-radius:16px!important}
body.apogeo-tarjeta-cliente .progress .big{font-weight:800!important}
body.apogeo-tarjeta-cliente .progress .lbl,
body.apogeo-tarjeta-cliente .tag{font-weight:600!important;letter-spacing:.085em!important}
body.apogeo-tarjeta-cliente .btn-back,
body.apogeo-tarjeta-cliente .btn-prefs,
body.apogeo-tarjeta-cliente .btn-volver,
body.apogeo-tarjeta-cliente .first-visit-popup-btn{
  min-height:44px!important;
  border-radius:11px!important;
  font-size:13px!important;
  font-weight:600!important;
  box-shadow:none!important;
}
body.apogeo-tarjeta-cliente .qr-block,
body.apogeo-tarjeta-cliente .benefit,
body.apogeo-tarjeta-cliente .prefs-view{border-radius:15px!important}
@media(max-width:480px){
  body.apogeo-tarjeta-cliente{padding-inline:12px!important}
  body.apogeo-tarjeta-cliente .card{padding:20px 17px 18px!important;border-radius:21px!important}
}

/* =========================================================
   TARJETA DE PRESENTACIÓN
   ========================================================= */
body.apogeo-tarjeta{
  --font:var(--ap-font)!important;
  font-family:var(--ap-font)!important;
}
body.apogeo-tarjeta h1.title{font-weight:800!important;letter-spacing:-.04em!important}
body.apogeo-tarjeta .benefit{font-weight:400!important;line-height:1.55!important}
body.apogeo-tarjeta .flow{border-radius:17px!important}
body.apogeo-tarjeta .step .name{font-weight:600!important}
body.apogeo-tarjeta .btn-primary,
body.apogeo-tarjeta .btn-secondary,
body.apogeo-tarjeta .btn-video{
  min-height:44px!important;
  border-radius:12px!important;
  font-size:13px!important;
  font-weight:600!important;
  box-shadow:none!important;
}
body.apogeo-tarjeta .btn-primary{box-shadow:0 10px 26px rgba(0,216,173,.17)!important}
body.apogeo-tarjeta .video-modal{border-radius:20px!important}
@media(max-width:430px){
  body.apogeo-tarjeta .shell{padding-inline:16px!important}
  body.apogeo-tarjeta h1.title{font-size:clamp(34px,11vw,46px)!important}
}

/* =========================================================
   ADMIN MAESTRO
   ========================================================= */
body.apogeo-admin{
  --font:var(--ap-font)!important;
  font-family:var(--ap-font)!important;
  background:#f8fafc!important;
}
body.apogeo-admin .auth-card,
body.apogeo-admin .tbl-wrap,
body.apogeo-admin .hist-panel,
body.apogeo-admin .modal-c{
  border-color:var(--ap-line)!important;
  box-shadow:var(--ap-shadow-sm)!important;
}
body.apogeo-admin .auth-card{border-radius:20px!important}
body.apogeo-admin .auth-title{font-weight:800!important}
body.apogeo-admin .auth-sub,
body.apogeo-admin .auth-note{font-weight:500!important}
body.apogeo-admin .f-field label{font-size:10.75px!important;font-weight:600!important;letter-spacing:.04em!important}
body.apogeo-admin .f-field input,
body.apogeo-admin .f-field textarea,
body.apogeo-admin .search-inp{
  min-height:42px!important;
  border-radius:11px!important;
  font-size:13.5px!important;
  font-weight:500!important;
  border-color:var(--ap-line)!important;
}
body.apogeo-admin .btn-full,
body.apogeo-admin .btn-logout,
body.apogeo-admin .ftab,
body.apogeo-admin .acts button,
body.apogeo-admin .modal-acts button{
  min-height:38px!important;
  border-radius:10px!important;
  font-size:12.5px!important;
  font-weight:600!important;
  box-shadow:none!important;
}
body.apogeo-admin .btn-full{min-height:44px!important;font-size:13.5px!important}
body.apogeo-admin .mc{border-radius:13px!important;box-shadow:none!important}
body.apogeo-admin .mc-lbl{font-weight:600!important;letter-spacing:.035em!important}
body.apogeo-admin .mc-val{font-weight:800!important}
body.apogeo-admin .tbl th{font-weight:600!important;letter-spacing:.04em!important}
body.apogeo-admin .tbl td{font-weight:500!important}
body.apogeo-admin .neg-nom{font-weight:600!important}
body.apogeo-admin .badge{font-weight:600!important;letter-spacing:.015em!important}
body.apogeo-admin .modal-c{border-radius:18px!important}
@media(max-width:760px){
  body.apogeo-admin .dash-hd{padding-inline:15px!important}
  body.apogeo-admin .dash-body{padding:20px 14px!important}
  body.apogeo-admin .tbl-wrap{overflow-x:auto!important}
  body.apogeo-admin .tbl{min-width:880px!important}
}

/* =========================================================
   AVISO DE PRIVACIDAD
   ========================================================= */
body.apogeo-privacidad{
  --font:var(--ap-font)!important;
  font-family:var(--ap-font)!important;
  background:#f8fafc!important;
}
body.apogeo-privacidad .document,
body.apogeo-privacidad .sidebar,
body.apogeo-privacidad .contact-card,
body.apogeo-privacidad .callout{
  border-color:var(--ap-line)!important;
  box-shadow:var(--ap-shadow-xs)!important;
}
body.apogeo-privacidad .document{border-radius:20px!important}
body.apogeo-privacidad .hero h1{font-weight:800!important;letter-spacing:-.04em!important}
body.apogeo-privacidad .hero-lead{font-weight:400!important;line-height:1.65!important}
body.apogeo-privacidad .section h2{font-weight:700!important;letter-spacing:-.02em!important}
body.apogeo-privacidad .section p,
body.apogeo-privacidad .section li{font-weight:400!important;line-height:1.72!important}
body.apogeo-privacidad .toc a{font-weight:500!important}
body.apogeo-privacidad .provider-table th{font-weight:700!important}
body.apogeo-privacidad .provider-table td{font-weight:400!important}
@media(max-width:760px){
  body.apogeo-privacidad .page{padding-inline:14px!important}
  body.apogeo-privacidad .document{padding:21px 17px!important;border-radius:17px!important}
}

/* =========================================================
   AJUSTES RESPONSIVE Y ACCESIBILIDAD COMPARTIDOS
   ========================================================= */
@media(max-width:430px){
  body.apogeo-page input,
  body.apogeo-page select,
  body.apogeo-page textarea{font-size:16px!important}
}
@media(prefers-reduced-motion:reduce){
  body.apogeo-page *,
  body.apogeo-page *::before,
  body.apogeo-page *::after{
    scroll-behavior:auto!important;
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
}

/* Laptop de altura reducida: conserva jerarquía sin consumir la pantalla. */
@media(min-width:901px) and (max-height:768px){
  body.apogeo-index section{padding-top:28px!important;padding-bottom:28px!important}
  body.apogeo-index .hero-copy h1{font-size:clamp(38px,4.25vw,58px)!important}
  body.apogeo-index .hero-sub{margin-bottom:20px!important}
  body.apogeo-panel main.app{padding-top:16px!important}
  body.apogeo-panel h1.h{font-size:26px!important}
  body.apogeo-panel .panel,
  body.apogeo-panel .report-panel{padding:16px!important}
  body.apogeo-suscripcion .page-head{padding-top:18px!important;padding-bottom:12px!important}
  body.apogeo-suscripcion .section{padding-top:16px!important;padding-bottom:16px!important}
}

/* La capa visual no debe degradar reportes ni documentos impresos. */
@media print{
  body.apogeo-panel,
  body.apogeo-privacidad{background:#fff!important}
  body.apogeo-panel .report-panel,
  body.apogeo-panel .report-metric,
  body.apogeo-privacidad .document,
  body.apogeo-privacidad .sidebar,
  body.apogeo-privacidad .contact-card,
  body.apogeo-privacidad .callout{
    box-shadow:none!important;
  }
  body.apogeo-panel .report-panel,
  body.apogeo-panel .report-metric{border-color:#dfe5ed!important}
}


/* =========================================================
   APOGEO · V2 · jerarquía tipográfica ligera y consistente
   Reduce peso visual sin perder claridad operativa.
   ========================================================= */
body.apogeo-page p,
body.apogeo-page li,
body.apogeo-page .hint,
body.apogeo-page .micro,
body.apogeo-page .note,
body.apogeo-page small{
  font-weight:400;
}
body.apogeo-page input::placeholder,
body.apogeo-page textarea::placeholder{
  font-weight:400!important;
  opacity:.72;
}

/* Formularios: nombre del campo > valor > ayuda. */
body.apogeo-panel .f label,
body.apogeo-panel .bulk-field label,
body.apogeo-entrar .field label,
body.apogeo-staff .field label,
body.apogeo-admin .f-field label{
  font-weight:600!important;
}
body.apogeo-panel .f label span,
body.apogeo-panel .bulk-field label span,
body.apogeo-entrar .field label span,
body.apogeo-staff .field label span,
body.apogeo-admin .f-field label span{
  font-weight:400!important;
  letter-spacing:0!important;
}
body.apogeo-panel .f .hint,
body.apogeo-panel .hint,
body.apogeo-entrar .hint,
body.apogeo-staff .micro,
body.apogeo-admin .auth-note{
  font-weight:400!important;
  line-height:1.48!important;
}
body.apogeo-panel label[for="pfMostrarDir"]{
  font-size:13px!important;
  font-weight:600!important;
  line-height:1.4!important;
}
body.apogeo-panel #fotosAprobadas > p,
body.apogeo-panel #fotosPendientes > p{
  font-weight:400!important;
}

/* Botones secundarios más sobrios; los llamados principales conservan énfasis. */
body.apogeo-page .btn,
body.apogeo-page button{
  font-weight:600!important;
}
body.apogeo-index .btn-primary,
body.apogeo-panel .btn.block:not(.ghost):not(.danger),
body.apogeo-staff .btn.primary,
body.apogeo-suscripcion .btn:not(.secondary),
body.apogeo-tarjeta .btn-primary,
body.apogeo-entrar button.google,
body.apogeo-admin .btn-full{
  font-weight:700!important;
}
body.apogeo-panel .report-refresh,
body.apogeo-panel .report-download,
body.apogeo-panel .report-select{
  font-weight:600!important;
}

/* Evita sensación pesada en tablas, tarjetas y datos auxiliares. */
body.apogeo-panel .status-line span,
body.apogeo-panel .seg-card,
body.apogeo-panel .rcard-msg,
body.apogeo-panel .item .meta,
body.apogeo-panel .ci span,
body.apogeo-panel .result span,
body.apogeo-admin .tbl td,
body.apogeo-catalogo .menu-head p,
body.apogeo-catalogo .info-card p,
body.apogeo-catalogo .info-card li{
  font-weight:400!important;
}
body.apogeo-panel .status-line b,
body.apogeo-panel .seg-card h4,
body.apogeo-panel .rcard-name,
body.apogeo-catalogo .info-card b{
  font-weight:600!important;
}

/* =========================================================
   APOGEO · tipografía unificada Inter
   Capa final: solo ajusta fuente y jerarquía visual.
   No contiene lógica de producto.
   ========================================================= */
body.apogeo-page{
  --ap-font:var(--ap-font-institutional)!important;
  --font:var(--ap-font-institutional)!important;
  font-family:var(--ap-font-institutional)!important;
  -webkit-font-smoothing:antialiased!important;
  -moz-osx-font-smoothing:grayscale!important;
  text-rendering:geometricPrecision!important;
}
body.apogeo-page button,
body.apogeo-page input,
body.apogeo-page select,
body.apogeo-page textarea{
  font-family:var(--ap-font-institutional)!important;
}
body.apogeo-page h1,
body.apogeo-page .h,
body.apogeo-page .page-title,
body.apogeo-page .page-head h1,
body.apogeo-page .hero-copy h1,
body.apogeo-page h1.title,
body.apogeo-page .auth-title{
  font-family:var(--ap-font-institutional)!important;
  font-weight:900!important;
  letter-spacing:-.055em!important;
  line-height:1!important;
}
body.apogeo-page h2,
body.apogeo-page .section-title,
body.apogeo-page .menu-head h2,
body.apogeo-page .info h2,
body.apogeo-page .report-panel h3,
body.apogeo-page .panel h3{
  font-family:var(--ap-font-institutional)!important;
  font-weight:800!important;
  letter-spacing:-.035em!important;
}
body.apogeo-page h3,
body.apogeo-page h4{
  font-family:var(--ap-font-institutional)!important;
}
body.apogeo-page .metric .val,
body.apogeo-page .report-metric-value,
body.apogeo-page .mc-val,
body.apogeo-page .progress .big,
body.apogeo-page .price-num,
body.apogeo-page .price-main,
body.apogeo-page .value,
body.apogeo-page .card-value{
  font-family:var(--ap-font-institutional)!important;
  font-weight:900!important;
  letter-spacing:-.055em!important;
  line-height:.95!important;
}
body.apogeo-page .brand,
body.apogeo-page .logo,
body.apogeo-page .dash-brand,
body.apogeo-page .auth-logo,
body.apogeo-page .apogeo-boot-brand,
body.apogeo-page .intro-logo,
body.apogeo-page .report-print-brand,
body.apogeo-page .brand-close{
  font-family:var(--ap-font-brand)!important;
}
