
/* =========================================================
   Responsive profesional total - Concesionaria
   Objetivo: mobile real sin blur, textos legibles, tablas en cards,
   header/sidebar/menu consistentes y portafolio compacto.
   ========================================================= */
:root{
  --rp-dark:#0b1220;
  --rp-dark-2:#111b2e;
  --rp-blue:#2563eb;
  --rp-line:rgba(15,23,42,.10);
  --rp-shadow:0 18px 48px rgba(15,23,42,.14);
}
*{box-sizing:border-box;}
html{width:100%;max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;}
body{width:100%;max-width:100%;overflow-x:hidden;}
img,svg,video,canvas,iframe{max-width:100%;}
img{height:auto;}
button,a,input,select,textarea{font:inherit;}
button,.btn,a{ -webkit-tap-highlight-color: transparent; }
input,select,textarea{max-width:100%;}

/* Evita desenfoques molestos en menues/overlays */
.header,
.topbar,
.sidebar,
.overlay,
.modal,
.modal-overlay,
.glass,
.glass-nav,
.glass-dark,
.backdrop-blur,
.backdrop-blur-xl{
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
}

/* Formularios y contenedores generales */
form{max-width:100%;}
[class*="grid"], .grid{min-width:0;}
.w-full{max-width:100%;}
.saas-shell{max-width:100%;}
.saas-card,.card,.panel,.login-card{max-width:100%;}

/* Botones siempre horizontales, nunca letras apiladas */
.btn,
.btn-primary,
.btn-secondary,
button,
input[type="submit"],
input[type="button"],
a[class*="btn"],
.top-actions a,
.top-actions button,
.nav a,
.menu a{
  writing-mode:horizontal-tb !important;
  text-orientation:mixed !important;
  white-space:nowrap;
  word-break:normal;
  overflow-wrap:normal;
}

/* ===================== Dashboard / sistema ===================== */
header.topbar, .topbar, body > header{
  z-index:80;
}
body > header{
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
}
.brand-left{min-width:0;}
.brand-title,.titles{min-width:0;}
.brand-title .t1,.titles .h1,
.brand-title .t2,.titles .sub{
  overflow:hidden;
  text-overflow:ellipsis;
}
.top-actions{min-width:0;}
.sidebar,
.sidebar *{
  color:#ffffff;
}
.sidebar{
  background:linear-gradient(180deg,var(--rp-dark) 0%,var(--rp-dark-2) 100%) !important;
}
.sidebar .nav a,
.sidebar .menu a,
.sidebar a,
.sidebar .label,
.sidebar i{
  color:#ffffff !important;
}
.sidebar .section-title,
.sidebar-title{
  color:rgba(255,255,255,.72) !important;
}
.sidebar .nav a:hover,
.sidebar .menu a:hover,
.sidebar .nav a.active,
.sidebar .menu a.active{
  color:#ffffff !important;
}

/* Tablas: desktop intacto + mobile en tarjetas con data-label por JS */
.table-scroll,.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
table{max-width:100%;}
.responsive-card-table th,
.responsive-card-table td{word-break:normal;overflow-wrap:anywhere;}

@media (max-width: 980px){
  body{overflow-y:auto !important;}
  .app{width:100%;max-width:100%;}
  .main{width:100%;max-width:100%;padding-left:12px !important;padding-right:12px !important;}
  .panel{padding:14px !important;}
  .frame-wrap,.iframe-wrap{height:auto !important;min-height:70vh !important;}
  .seccion.active{min-height:70vh;}
  iframe{min-height:70vh;border-radius:14px;}
  .kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:12px !important;}
  .kpi{grid-column:auto !important;min-width:0 !important;}
  .dash-row,.row{grid-template-columns:1fr !important;}
  body > header,
  .topbar{
    position:sticky !important;
    top:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
    flex-wrap:nowrap !important;
    padding:12px 14px !important;
    background:linear-gradient(90deg,var(--rp-dark),var(--rp-dark-2)) !important;
    color:#fff !important;
  }
  .topbar-inner{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap !important;}
  .brand-left{min-width:0 !important;flex:1 1 auto !important;gap:10px !important;}
  .brand-left img,.brand-left .logo{width:48px !important;height:48px !important;min-width:48px !important;object-fit:cover;}
  .brand-title .t1,.titles .h1{font-size:15px !important;line-height:1.1 !important;color:#fff !important;}
  .brand-title .t2,.titles .sub{font-size:11px !important;color:rgba(255,255,255,.78) !important;}
  .top-actions{flex:0 0 auto !important;width:auto !important;display:flex !important;align-items:center !important;justify-content:flex-end !important;gap:8px !important;flex-wrap:nowrap !important;}
  .top-actions .btn:not(.icon){display:none !important;}
  .top-actions .btn.icon,
  #btnMenuMobile,
  #btnMenu{
    display:inline-flex !important;
    width:46px !important;
    height:46px !important;
    min-width:46px !important;
    padding:0 !important;
    align-items:center !important;
    justify-content:center !important;
    color:#fff !important;
    background:rgba(255,255,255,.10) !important;
    border:1px solid rgba(255,255,255,.18) !important;
    border-radius:14px !important;
  }
  #btnCollapse{display:none !important;}
  .sidebar{
    position:fixed !important;
    left:12px !important;
    top:76px !important;
    bottom:12px !important;
    height:auto !important;
    width:min(310px,calc(100vw - 24px)) !important;
    max-width:calc(100vw - 24px) !important;
    z-index:120 !important;
    transform:translateX(calc(-100% - 24px)) !important;
    transition:transform .22s ease !important;
    border-radius:20px !important;
    padding:14px !important;
    overflow-y:auto !important;
    box-shadow:0 24px 70px rgba(0,0,0,.30) !important;
    background:linear-gradient(180deg,var(--rp-dark) 0%,var(--rp-dark-2) 100%) !important;
    color:#fff !important;
  }
  .sidebar.open{transform:translateX(0) !important;}
  .sidebar.collapsed{width:min(310px,calc(100vw - 24px)) !important;}
  .sidebar.collapsed .label,
  .sidebar.collapsed .section-title,
  .sidebar.collapsed .sidebar-title{display:block !important;}
  .sidebar .nav,.sidebar .menu ul{gap:8px !important;}
  .sidebar .nav a,.sidebar .menu a{
    color:#fff !important;
    background:rgba(255,255,255,.055) !important;
    border:1px solid rgba(255,255,255,.08) !important;
    border-radius:14px !important;
    padding:13px 14px !important;
    font-size:14px !important;
    min-height:48px !important;
    justify-content:flex-start !important;
  }
  .sidebar .nav a i,.sidebar .menu a i{color:#fff !important;min-width:24px;text-align:center;}
  .sidebar .nav a .label,.sidebar .menu a .label{display:inline !important;color:#fff !important;}
  .sidebar .nav a.active,.sidebar .menu a.active{background:rgba(37,99,235,.36) !important;border-color:rgba(37,99,235,.46) !important;}
}

@media (max-width: 700px){
  .kpi-grid{grid-template-columns:1fr !important;}
  .kpi{padding:14px !important;}
  .kpi .meta .v,.kpi-val{font-size:22px !important;}
  .content-head{align-items:flex-start !important;}
  .links{display:grid !important;grid-template-columns:1fr !important;}
  .pill{width:100%;justify-content:center;white-space:normal !important;text-align:center;}

  table.responsive-card-table,
  table.responsive-card-table thead,
  table.responsive-card-table tbody,
  table.responsive-card-table th,
  table.responsive-card-table td,
  table.responsive-card-table tr{
    display:block !important;
    width:100% !important;
  }
  table.responsive-card-table{
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }
  table.responsive-card-table thead{
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    overflow:hidden !important;
    clip:rect(0 0 0 0) !important;
    white-space:nowrap !important;
  }
  table.responsive-card-table tbody{display:grid !important;gap:12px !important;}
  table.responsive-card-table tr{
    border:1px solid rgba(15,23,42,.10) !important;
    border-radius:18px !important;
    background:#fff !important;
    padding:10px !important;
    box-shadow:0 10px 24px rgba(15,23,42,.07) !important;
    overflow:hidden !important;
  }
  table.responsive-card-table td{
    border:0 !important;
    border-bottom:1px solid rgba(15,23,42,.07) !important;
    padding:10px 6px !important;
    display:grid !important;
    grid-template-columns:minmax(110px,42%) minmax(0,1fr) !important;
    gap:10px !important;
    align-items:start !important;
    text-align:right !important;
    font-size:13px !important;
  }
  table.responsive-card-table td:last-child{border-bottom:0 !important;}
  table.responsive-card-table td::before{
    content:attr(data-label);
    font-weight:900;
    color:#334155;
    text-align:left;
    text-transform:uppercase;
    letter-spacing:.03em;
    font-size:11px;
  }
  table.responsive-card-table td[colspan]::before{display:none;}
  table.responsive-card-table td[colspan]{display:block !important;text-align:left !important;}
}

/* ===================== Portafolio/Landing ===================== */
.lc-mobile-menu-btn{display:none;}
@media (max-width: 900px){
  .header{
    position:sticky !important;
    top:0 !important;
    z-index:1000 !important;
    background:#fff !important;
    border-bottom:1px solid rgba(15,23,42,.08) !important;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
  }
  .contenedor{padding-left:14px !important;padding-right:14px !important;}
  .header-inner{
    min-height:66px !important;
    padding:10px 0 !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:10px !important;
  }
  .brand-link{width:auto !important;min-width:0 !important;flex:1 1 auto !important;}
  .brand{min-width:0 !important;gap:10px !important;}
  .brand-logo-wrap,.brand-icon{width:46px !important;height:46px !important;border-radius:14px !important;min-width:46px !important;}
  .brand-texto{font-size:19px !important;white-space:nowrap !important;overflow:hidden !important;text-overflow:ellipsis !important;letter-spacing:-.4px !important;}
  .lc-mobile-menu-btn{
    display:inline-flex !important;
    width:48px !important;
    height:48px !important;
    min-width:48px !important;
    align-items:center !important;
    justify-content:center !important;
    border-radius:16px !important;
    border:1px solid rgba(15,23,42,.10) !important;
    background:#fff !important;
    color:#0f172a !important;
    box-shadow:0 10px 24px rgba(15,23,42,.08) !important;
    font-size:22px !important;
    font-weight:900 !important;
    cursor:pointer !important;
    line-height:1 !important;
  }
  .header .nav{
    position:fixed !important;
    left:12px !important;
    right:12px !important;
    top:76px !important;
    width:auto !important;
    max-height:calc(100dvh - 92px) !important;
    overflow:auto !important;
    display:none !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    padding:14px !important;
    background:#fff !important;
    border:1px solid rgba(15,23,42,.10) !important;
    border-radius:20px !important;
    box-shadow:0 24px 70px rgba(15,23,42,.18) !important;
    z-index:1001 !important;
  }
  .header .nav.responsive-open{display:grid !important;}
  .header .nav-link,
  .header .btn-principal,
  .header .btn-secundario{
    width:100% !important;
    min-height:48px !important;
    justify-content:center !important;
    padding:12px 16px !important;
    font-size:14px !important;
    border-radius:14px !important;
    text-align:center !important;
  }
  .header .nav-link{background:#f8fafc !important;color:#0f172a !important;border:1px solid rgba(15,23,42,.08) !important;}
  body.lc-menu-open{overflow:hidden !important;}

  .hero{padding:10px 0 18px !important;}
  .hero-panel{min-height:auto !important;border-radius:24px !important;box-shadow:0 14px 34px rgba(15,23,42,.08) !important;}
  .hero-main{padding:22px 18px !important;}
  .pill{max-width:100% !important;min-height:34px !important;padding:7px 12px !important;font-size:10px !important;letter-spacing:.04em !important;margin-bottom:16px !important;white-space:normal !important;}
  .hero-main h1{font-size:clamp(31px,10vw,44px) !important;line-height:1.04 !important;letter-spacing:-1.3px !important;margin-bottom:16px !important;max-width:100% !important;}
  .hero-subtitulo,.hero-contexto{font-size:16px !important;line-height:1.55 !important;margin-bottom:16px !important;max-width:100% !important;}
  .hero-botones{display:grid !important;grid-template-columns:1fr !important;gap:10px !important;width:100% !important;}
  .btn-principal,.btn-secundario,.btn-demo,.modal-link,.modal-close,.btn-module,.btn-smart,.btn-preview{width:100% !important;min-width:0 !important;text-align:center !important;white-space:normal !important;}
  .section{padding-bottom:22px !important;}
  .panel,.feature-panel,.smart-panel,.cta-panel,.market-panel{border-radius:24px !important;margin-top:18px !important;box-shadow:0 14px 34px rgba(15,23,42,.07) !important;}
  .panel-header,.cards-wrap,.feature-header,.feature-grid,.smart-grid,.cta-main,.cta-side,.market-header,.base-grid{padding:20px !important;}
  .panel-header h2,.feature-header h2,.cta-main h2,.market-header h2{font-size:clamp(27px,8vw,35px) !important;line-height:1.07 !important;letter-spacing:-.9px !important;}
  .panel-header p,.feature-header p,.cta-main p,.market-header p{font-size:15.5px !important;line-height:1.55 !important;}
  .cards-grid,.feature-grid,.smart-grid,.base-grid{grid-template-columns:1fr !important;gap:14px !important;}
  .card-body,.smart-body,.feature-card,.base-card{padding:18px !important;}
  .card-sector h3,.feature-card h3,.smart-body h3,.base-card h3{font-size:22px !important;min-height:auto !important;line-height:1.13 !important;}
  .card-footer{display:grid !important;grid-template-columns:1fr !important;align-items:stretch !important;}
  .cta-grid,.market-header{grid-template-columns:1fr !important;}
  .modal{padding:10px !important;align-items:flex-start !important;}
  .modal-box{border-radius:18px !important;max-height:calc(100dvh - 20px) !important;overflow:hidden !important;}
  .modal-header{display:grid !important;grid-template-columns:1fr !important;gap:10px !important;padding:14px !important;}
  .modal-actions{display:grid !important;grid-template-columns:1fr !important;width:100% !important;}
  .modal-frame-wrap{height:calc(100dvh - 190px) !important;min-height:420px !important;}
  .modal-contenido{width:calc(100vw - 20px) !important;height:calc(100dvh - 36px) !important;max-height:none !important;border-radius:18px !important;transform:none !important;}
  .contacto-fijo{width:54px !important;height:54px !important;right:14px !important;bottom:18px !important;z-index:900 !important;}
}

@media (max-width: 420px){
  .brand-texto{font-size:17px !important;}
  .brand-logo-wrap,.brand-icon{width:42px !important;height:42px !important;min-width:42px !important;}
  .lc-mobile-menu-btn{width:44px !important;height:44px !important;min-width:44px !important;}
  .hero-main{padding:20px 16px !important;}
  .hero-main h1{font-size:30px !important;}
  .panel-header,.cards-wrap,.feature-header,.feature-grid,.smart-grid,.cta-main,.cta-side,.market-header,.base-grid{padding:16px !important;}
}

/* ===================== Webs internas / landings Tailwind ===================== */
@media (max-width: 768px){
  .min-h-screen{min-height:auto !important;}
  section,header,main{max-width:100%;}
  [class*="px-10"],[class*="px-12"],[class*="px-16"]{padding-left:1rem !important;padding-right:1rem !important;}
  [class*="py-24"],[class*="py-28"],[class*="py-32"]{padding-top:3.5rem !important;padding-bottom:3.5rem !important;}
  .lc-mobile-web-menu{
    position:fixed;
    top:74px;
    left:12px;
    right:12px;
    display:none;
    z-index:9999;
    background:#ffffff;
    border:1px solid rgba(15,23,42,.10);
    border-radius:18px;
    padding:12px;
    box-shadow:0 24px 70px rgba(15,23,42,.18);
  }
  .lc-mobile-web-menu.open{display:grid;gap:8px;}
  .lc-mobile-web-menu a{
    display:flex;
    min-height:46px;
    align-items:center;
    justify-content:center;
    padding:10px 12px;
    border-radius:13px;
    background:#f8fafc;
    border:1px solid rgba(15,23,42,.08);
    color:#0f172a !important;
    font-weight:800;
    text-align:center;
  }
  .lc-mobile-web-menu a[class*="bg-"]{color:#fff !important;}
}
