/* Consolidación sin alterar el orden de cascada v5 -> v6 */
/* LC Design System v4 · capa visual aditiva y reversible · 2026-10 */
:root{--lc-brand-900:#0b1934;--lc-brand-800:#102a52;--lc-brand-700:#164078;--lc-brand-500:#2563eb;--lc-accent:#3b82f6;--lc-surface:#ffffff;--lc-surface-alt:#f5f8fc;--lc-stroke:#dbe5f0;--lc-ink:#10213b;--lc-subtle:#566b82;--lc-focus:#eab54d;--lc-r-sm:12px;--lc-r-md:18px;--lc-r-lg:24px;--lc-elev:0 8px 28px rgba(15,37,73,.07);--lc-elev-hover:0 18px 45px rgba(15,37,73,.13)}
html{scroll-padding-top:1rem}
body.lc-design-v4{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body.lc-design-v4 :is(button,a,input,textarea,select,[tabindex]):focus-visible{outline:3px solid var(--lc-focus)!important;outline-offset:3px!important}
body.lc-design-v4 :is(button,input,textarea,select){font-family:inherit}
body.lc-design-v4 :is(button,[type=submit],.btn,.tab,.btn-panel,.sidebar-toggle){transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}
body.lc-design-v4 :is(button,.btn,[type=submit]):not(:disabled):active{transform:translateY(1px)}
body.lc-design-v4 :is(input,textarea,select):not([type=checkbox]):not([type=radio]){max-width:100%}
body.lc-design-v4 :is(.panel,.card,.hero-panel,.login-container){border-radius:var(--lc-r-md)}
/* Portal público */
body.lc-page-home{--lc-primary:#2563eb;--lc-primary-2:#1d4ed8;--lc-line:var(--lc-stroke);--lc-radius:var(--lc-r-lg)}
body.lc-page-home :is(.hero-panel,.service-card,.project-card,.feature-card){box-shadow:var(--lc-elev)}
body.lc-page-home :is(.btn-main,.btn-primary){box-shadow:0 5px 15px rgba(29,78,216,.16)}
body.lc-page-home .section-title{letter-spacing:-.035em;text-wrap:balance}
body.lc-page-home .section-subtitle{max-width:69ch}
/* Panel y gobernanza: color corporativo común; sin alterar lógica ni scroll */
body.lc-page-dashboard{--primary:#205bd4;--primary-hover:#1646b4;--sidebar:var(--lc-brand-900);--sidebar-soft:var(--lc-brand-800);--line:var(--lc-stroke);--bg:var(--lc-surface-alt)}
body.lc-page-dashboard .sidebar{box-shadow:5px 0 28px rgba(7,25,52,.10)}
body.lc-page-dashboard :is(.topbar,.panel,.stat-card,.metric-card){box-shadow:var(--lc-elev)}
body.lc-page-dashboard .main-panel h1{letter-spacing:-.03em}
body.lc-page-gobernanza{--accent:#205bd4;--accent-soft:#eaf1ff;--navy:var(--lc-brand-800);--ink:var(--lc-ink);--line:var(--lc-stroke);--bg:var(--lc-surface-alt)}
body.lc-page-gobernanza .shell{max-width:1520px}
body.lc-page-gobernanza .panel{box-shadow:var(--lc-elev)}
body.lc-page-gobernanza .brand h1{letter-spacing:-.04em;text-wrap:balance}
body.lc-page-gobernanza :is(.tab,.btn){border-radius:var(--lc-r-sm)}
body.lc-page-gobernanza :is(td,th){vertical-align:middle}
body.lc-page-gobernanza .tabs{overflow-x:auto;scrollbar-width:thin}
/* Usuarios: alinear tonos y contraste, mantener estructura y responsive existentes */
body.lc-page-usuarios{--primary:#205bd4;--primary-dark:#1646b4;--bg:var(--lc-surface-alt);--card:var(--lc-surface);--line:var(--lc-stroke);--text:var(--lc-ink);--muted:var(--lc-subtle)}
body.lc-page-usuarios .panel{box-shadow:var(--lc-elev)}
body.lc-page-usuarios .panel-head h1{letter-spacing:-.035em}
body.lc-page-usuarios .table-responsive{overscroll-behavior-x:contain}
/* Login: superficie legible, contraste y controles cómodos */
body.lc-page-login{position:relative;background-color:var(--lc-brand-900)}
body.lc-page-login::before{content:'';position:fixed;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(5,18,39,.56),rgba(13,48,94,.35))}
body.lc-page-login .login-container{position:relative;isolation:isolate;background:rgba(9,24,47,.93);border:1px solid rgba(255,255,255,.19);border-radius:24px;box-shadow:0 24px 65px rgba(0,0,0,.27);padding:clamp(24px,4vw,38px)}
body.lc-page-login .login-container h1{font-size:clamp(1.55rem,3vw,2rem);letter-spacing:-.035em}
body.lc-page-login .input-group input{min-height:50px;background:#132b4b;border:1px solid rgba(255,255,255,.22);border-radius:11px}
body.lc-page-login .input-group label{color:#d0dbee}
body.lc-page-login .login-container button{min-height:50px;border-radius:11px;background:#2563eb;font-weight:700}
body.lc-page-login .login-container button:hover{background:#1d4ed8}
@media(max-width:767px){body.lc-page-home .section-title{text-wrap:pretty}body.lc-page-gobernanza .shell{padding:14px}body.lc-page-usuarios .wrap{padding:12px}body.lc-page-login{padding:14px}body.lc-page-login .login-container{width:100%}}
@media(prefers-reduced-motion:reduce){body.lc-design-v4 *,body.lc-design-v4 *::before,body.lc-design-v4 *::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}


/* LC Design v5: refinamiento progresivo, no modifica lógica PHP ni controles de permisos. */
:root{
 --lc-space-1:.375rem;--lc-space-2:.75rem;--lc-space-3:1rem;
 --lc-space-4:1.5rem;--lc-space-5:2rem;--lc-space-6:3rem;
 --lc-brand-950:#081326;--lc-brand-900:#0b1934;--lc-brand-800:#102a52;
 --lc-brand-500:#1c55c7;--lc-brand-400:#2563eb;
 --lc-stroke:#d6e1ed;--lc-subtle:#4a6078;--lc-focus:#ffbf47;
 --lc-elev:0 5px 20px rgba(15,37,73,.075);
 --lc-elev-hover:0 12px 32px rgba(15,37,73,.14);
}
html{scroll-behavior:smooth}
body.lc-design-v4{overflow-wrap:break-word}
body.lc-design-v4 :is(h1,h2,h3){text-wrap:balance;line-height:1.15}
body.lc-design-v4 :is(p,li){line-height:1.65}
body.lc-design-v4 :is(img,video,canvas,svg){max-width:100%}
body.lc-design-v4 img{height:auto}
body.lc-design-v4 :is(a,button,.btn){-webkit-tap-highlight-color:transparent}
body.lc-design-v4 a:not(.btn):focus-visible{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
body.lc-design-v4 :is(button,input,select,textarea):disabled{cursor:not-allowed;opacity:.65}
body.lc-design-v4 :is(input,select,textarea):not([type=checkbox]):not([type=radio]):focus-visible{
 outline:3px solid var(--lc-focus)!important;outline-offset:2px!important
}
body.lc-design-v4 :is(.panel,.card,.service-card,.project-card,.feature-card,.stat-card,.metric-card){
 transition:box-shadow .2s ease,border-color .2s ease;
}
@media(hover:hover) and (pointer:fine){
 body.lc-design-v4 :is(.service-card,.project-card,.feature-card):hover{box-shadow:var(--lc-elev-hover)}
}
/* Public site */
body.lc-page-home{--lc-primary:#1c55c7;--lc-primary-2:#1646b4}
body.lc-page-home :is(.section-title,h1){letter-spacing:-.037em}
body.lc-page-home :is(.section-subtitle,.hero p){max-width:68ch}
body.lc-page-home :is(.service-card,.project-card,.feature-card){border-color:var(--lc-stroke)}
body.lc-page-home :is(.btn,.btn-main,.btn-primary){font-weight:650}
/* Private dashboard and governance */
body.lc-page-dashboard :is(.panel,.stat-card,.metric-card),
body.lc-page-gobernanza .panel,body.lc-page-usuarios .panel{
 border-color:var(--lc-stroke);box-shadow:var(--lc-elev)
}
body.lc-page-dashboard :is(.topbar,.main-panel) h1,
body.lc-page-gobernanza :is(.brand,.panel) h1,
body.lc-page-usuarios .panel-head h1{letter-spacing:-.035em}
body.lc-page-dashboard :is(table,.table),
body.lc-page-gobernanza :is(table,.table),
body.lc-page-usuarios :is(table,.table){font-variant-numeric:tabular-nums}
body.lc-page-dashboard :is(th,td),
body.lc-page-gobernanza :is(th,td),
body.lc-page-usuarios :is(th,td){line-height:1.5}
body.lc-page-dashboard :is(th,td),
body.lc-page-gobernanza :is(th,td),
body.lc-page-usuarios :is(th,td){border-color:var(--lc-stroke)}
body.lc-page-gobernanza .tabs{scrollbar-gutter:stable}
body.lc-page-login .login-container{max-width:min(100%,500px)}
body.lc-page-login .input-group input{width:100%}
/* Prefer legibility over animations on constrained screens. */
@media(max-width:767px){
 body.lc-design-v4 :is(h1){font-size:clamp(1.65rem,7vw,2.5rem)}
 body.lc-design-v4 :is(.btn,button,[type=submit],select){min-height:44px}
 body.lc-page-gobernanza :is(.tab,.btn),
 body.lc-page-usuarios :is(.btn,button){min-height:44px}
 body.lc-page-dashboard :is(.topbar,.main-panel){min-width:0}
 body.lc-page-dashboard :is(.panel,.stat-card,.metric-card){min-width:0}
 body.lc-page-gobernanza .shell{max-width:100%;padding-inline:12px}
 body.lc-page-login .login-container{margin-inline:auto}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(forced-colors:active){
 body.lc-design-v4 :is(button,a,input,select,textarea):focus-visible{outline:2px solid Highlight!important}
}


/* V6: reparación del error visual de V5 y refinamiento progresivo.
   Sólo portada; no modifica lógica PHP, autenticación ni Gobernanza. */
body.lc-page-home .home-grid{align-items:stretch;row-gap:1.4rem}
body.lc-page-home .home-grid > [class*="col-"]{display:flex;min-width:0;margin-bottom:0!important}
body.lc-page-home .home-grid .solution-card{display:flex;flex-direction:column;width:100%;height:100%;min-width:0;overflow:hidden;border:1px solid var(--lc-stroke)!important;box-shadow:0 5px 18px rgba(11,25,52,.065)!important;transform:none;transition:border-color .18s ease,box-shadow .18s ease!important}
/* La regla global de V5 "img{height:auto}" rompía la geometría de las tarjetas. */
body.lc-page-home .home-grid .card-media{aspect-ratio:16/10;width:100%;flex:0 0 auto;overflow:hidden;background:#eaf0f8}
body.lc-page-home .home-grid .card-media .card-img-top{display:block;width:100%;height:100%!important;object-fit:cover;object-position:center;transform:none!important;transition:none!important}
/* Deshacer la excepción de las dos primeras tarjetas para una grilla uniforme. */
@media(min-width:1200px){body.lc-page-home .home-grid > .col-sm-12:nth-child(1),body.lc-page-home .home-grid > .col-sm-12:nth-child(2){flex:0 0 auto;width:33.33333333%}}
body.lc-page-home .home-grid .card-body{flex:1 1 auto;min-height:0;display:flex!important;flex-direction:column;justify-content:space-between!important;gap:1.25rem;padding:clamp(1.15rem,2vw,1.65rem)}
body.lc-page-home .home-grid .card-title{font-size:clamp(1.05rem,1.2vw,1.24rem)!important;line-height:1.3;overflow-wrap:normal;word-break:normal;hyphens:auto}
body.lc-page-home .home-grid .card-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden;line-height:1.6;max-width:58ch}
body.lc-page-home .home-grid .solution-link{margin-top:auto;align-self:flex-start;font-weight:700;text-decoration-thickness:1px;text-underline-offset:4px}
body.lc-page-home .home-grid .solution-card:focus-visible{outline:3px solid #d48b05!important;outline-offset:3px!important}
@media(hover:hover) and (pointer:fine){body.lc-page-home .home-grid .solution-card:hover{border-color:#99b8e8!important;box-shadow:0 9px 25px rgba(11,25,52,.10)!important}}
@media(max-width:767px){body.lc-page-home .home-grid{row-gap:1rem}body.lc-page-home .home-grid .card-media{aspect-ratio:16/9}body.lc-page-home .home-grid .card-body{padding:1.15rem}body.lc-page-home .home-grid .card-text{-webkit-line-clamp:3;line-clamp:3}}
@media(prefers-reduced-motion:reduce){body.lc-page-home .home-grid *{transition:none!important;animation:none!important}}

/* V9: bajar trabajo de composicion y pintura en moviles; desktop intacto */
@media (max-width: 767px) {
  body.lc-page-home .home-grid .solution-card,
  body.lc-page-home .home-grid .solution-card:hover {
    box-shadow: 0 2px 9px rgba(11,25,52,.055)!important;
    transform:none!important;
  }
  body.lc-page-home .home-grid .card-media .card-img-top {
    filter:none!important; transform:none!important;
  }
}

