/*
 * LEGASIST · Sistema visual profesional unificado · 2026-09-28
 * Capa final de UI/UX. Mantiene la lógica existente y unifica tipografía,
 * paleta, jerarquía, formularios, tarjetas, dashboards y responsividad.
 */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800;900&display=swap');

:root,
html[data-theme="light"]{
  color-scheme:light!important;
  --lg-blue-950:#062754;
  --lg-blue-900:#08346f;
  --lg-blue-800:#0a438f;
  --lg-blue-700:#0c55b4;
  --lg-blue-600:#1769d2;
  --lg-blue-500:#2c7de0;
  --lg-blue-400:#5c9bea;
  --lg-blue-300:#91bdf2;
  --lg-blue-200:#c7def8;
  --lg-blue-100:#e6f1fd;
  --lg-blue-050:#f4f8fe;
  --lg-white:#ffffff;
  --lg-ink:#0a2a50;
  --lg-text:#24435f;
  --lg-muted:#617a94;
  --lg-border:#d4e3f3;
  --lg-border-strong:#b9d1eb;
  --lg-shadow-sm:0 8px 22px rgba(7,52,111,.07);
  --lg-shadow-md:0 16px 42px rgba(7,52,111,.10);
  --lg-shadow-lg:0 28px 72px rgba(7,52,111,.14);
  --lg-radius-sm:10px;
  --lg-radius-md:14px;
  --lg-radius-lg:18px;
  --lg-radius-xl:24px;

  /* Variables heredadas por los estilos anteriores */
  --bg:var(--lg-blue-050)!important;
  --bg-2:#edf5fd!important;
  --surface:var(--lg-white)!important;
  --surface-soft:#f8fbff!important;
  --surface-blue:var(--lg-blue-100)!important;
  --primary:var(--lg-blue-800)!important;
  --primary-2:var(--lg-blue-700)!important;
  --primary-3:var(--lg-blue-500)!important;
  --navy:var(--lg-blue-950)!important;
  --text:var(--lg-text)!important;
  --muted:var(--lg-muted)!important;
  --muted-2:#7890a9!important;
  --border:var(--lg-border)!important;
  --border-strong:var(--lg-border-strong)!important;
  --success:var(--lg-blue-700)!important;
  --success-soft:var(--lg-blue-100)!important;
  --warning:var(--lg-blue-800)!important;
  --danger:var(--lg-blue-900)!important;
  --shadow-sm:var(--lg-shadow-sm)!important;
  --shadow-md:var(--lg-shadow-md)!important;
  --shadow-lg:var(--lg-shadow-lg)!important;
  --radius-md:var(--lg-radius-md)!important;
  --radius-lg:var(--lg-radius-lg)!important;
  --radius-xl:var(--lg-radius-xl)!important;

  --dash-bg:var(--lg-blue-050)!important;
  --dash-surface:var(--lg-white)!important;
  --dash-surface-2:#f8fbff!important;
  --dash-text:var(--lg-ink)!important;
  --dash-muted:var(--lg-muted)!important;
  --dash-line:var(--lg-border)!important;
  --dash-primary:var(--lg-blue-800)!important;
  --dash-primary-2:var(--lg-blue-950)!important;
  --dash-royal:var(--lg-blue-600)!important;
  --dash-success:var(--lg-blue-700)!important;
  --dash-warning:var(--lg-blue-800)!important;
  --dash-danger:var(--lg-blue-900)!important;
  --dash-soft:var(--lg-blue-100)!important;
  --dash-green-soft:var(--lg-blue-100)!important;
  --dash-shadow:var(--lg-shadow-md)!important;
  --dash-sidebar:var(--lg-blue-950)!important;
  --dash-sidebar-2:var(--lg-blue-800)!important;

  --law-ink:var(--lg-blue-950)!important;
  --law-panel:var(--lg-white)!important;
  --law-panel-soft:#f8fbff!important;
  --law-line:var(--lg-border)!important;
  --law-line-strong:var(--lg-border-strong)!important;
  --law-blue:var(--lg-blue-800)!important;
  --law-blue-2:var(--lg-blue-700)!important;
  --law-blue-3:var(--lg-blue-500)!important;
  --law-muted:var(--lg-muted)!important;
  --law-success:var(--lg-blue-700)!important;
  --law-success-soft:var(--lg-blue-100)!important;
  --law-danger:var(--lg-blue-900)!important;
  --law-shadow:var(--lg-shadow-md)!important;
}

html{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
  scroll-behavior:smooth;
  background:var(--lg-blue-050)!important;
  -webkit-text-size-adjust:100%;
}
body,
body.dashboard-body,
body.flow-lawyer,
body.lawyer-register-premium,
html[data-theme="royal-dark"] body,
html[data-theme="royal-dark"] body.dashboard-body,
html[data-theme="royal-dark"] body.flow-lawyer{
  width:100%;
  max-width:100%;
  min-width:0;
  min-height:100vh;
  margin:0;
  overflow-x:hidden!important;
  color:var(--lg-text)!important;
  background:linear-gradient(180deg,#ffffff 0%,var(--lg-blue-050) 42%,#edf5fd 100%)!important;
}

html,body,button,input,select,textarea,optgroup,option,
body *,body *::before,body *::after{
  font-family:"Montserrat","Segoe UI",Arial,sans-serif!important;
}
code,pre,kbd,samp,code *,pre *{font-family:"Cascadia Code","Consolas",monospace!important}

*,*::before,*::after{box-sizing:border-box}
img,svg,video,canvas,iframe{max-width:100%}
svg{overflow:visible}
a{color:var(--lg-blue-800)}
::selection{background:var(--lg-blue-200);color:var(--lg-blue-950)}

/* Estructura y lectura */
.container,.law-container{
  width:min(1180px,calc(100% - 40px))!important;
  margin-inline:auto!important;
}
main,section,article,aside,header,footer,nav,form,fieldset,div{min-width:0}
h1,h2,h3,h4,h5,h6{color:var(--lg-blue-950)!important;font-weight:800!important;letter-spacing:-.025em!important}
h1{font-size:clamp(2rem,4.2vw,3.75rem)!important;line-height:1.06!important}
h2{font-size:clamp(1.45rem,2.6vw,2.35rem)!important;line-height:1.13!important}
h3{font-size:1.08rem!important;line-height:1.3!important}
p,li,small,.field-help{color:var(--lg-muted);line-height:1.6}

/* Barra superior pública */
.topbar,.nav,.law-topbar,
html[data-theme="royal-dark"] .topbar,
html[data-theme="royal-dark"] .nav,
html[data-theme="royal-dark"] .law-topbar{
  background:rgba(255,255,255,.96)!important;
  border-bottom:1px solid var(--lg-border)!important;
  box-shadow:0 7px 24px rgba(7,52,111,.05)!important;
  backdrop-filter:blur(14px);
}
.topbar,.law-topbar{position:sticky!important;top:0;z-index:1000}
.nav-inner,.topbar__inner,.law-topbar__inner{min-height:72px!important;gap:18px!important}
.brand,.nav-logo,.law-brand,.dash-brand,.tool-brand{letter-spacing:0!important;text-transform:none!important}
.brand-logo-img,.law-brand__logo,.law-brand img.brand-logo-img{
  width:auto!important;
  height:44px!important;
  max-width:210px!important;
  object-fit:contain!important;
}
.nav-links a,.nav a:not(.button):not(.nav-logo),.law-nav a:not(.law-btn){
  min-height:40px!important;
  padding:0 12px!important;
  border-radius:10px!important;
  color:var(--lg-blue-900)!important;
  font-size:.84rem!important;
  font-weight:700!important;
}
.nav-links a:hover,.nav a:not(.button):not(.nav-logo):hover,.law-nav a:not(.law-btn):hover{
  background:var(--lg-blue-100)!important;
  color:var(--lg-blue-950)!important;
}

/* Botones */
.button,.btn,.btn-nav,.btn-nav-out,.btn-login,.btn-abogado,.btn-hero-primary,.btn-hero-secondary,
.btn-plan,.btn-enviar,.dash-btn,.law-btn,.google-btn,.payment-tab,
button[type="submit"],input[type="submit"]{
  min-height:44px;
  border-radius:12px!important;
  border:1px solid var(--lg-border-strong)!important;
  background:#fff!important;
  color:var(--lg-blue-800)!important;
  font-size:.86rem!important;
  font-weight:750!important;
  letter-spacing:0!important;
  box-shadow:none!important;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease!important;
}
.button:hover,.btn:hover,.dash-btn:hover,.law-btn:hover,.google-btn:hover,button[type="submit"]:hover{
  transform:translateY(-1px)!important;
  border-color:var(--lg-blue-400)!important;
  box-shadow:var(--lg-shadow-sm)!important;
}
.button.primary,.btn.primary,.btn-nav,.btn-abogado,.btn-hero-primary,.btn-plan.primary,.btn-enviar,
.dash-btn.primary,.law-btn--primary,.law-btn.primary,button[type="submit"].primary,
.submit,.profile-save,.btn-primary{
  background:linear-gradient(135deg,var(--lg-blue-800),var(--lg-blue-600))!important;
  color:#fff!important;
  border-color:transparent!important;
}
.button.ghost,.btn.ghost,.btn-nav-out,.btn-login,.btn-hero-secondary,.law-btn--ghost{
  background:#fff!important;color:var(--lg-blue-800)!important;border-color:var(--lg-border-strong)!important;
}
.button.success,.dash-btn.success{background:var(--lg-blue-700)!important;color:#fff!important;border-color:transparent!important}
.button:focus-visible,.btn:focus-visible,.dash-btn:focus-visible,.law-btn:focus-visible,
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid rgba(44,125,224,.22)!important;
  outline-offset:2px!important;
}

/* Formularios */
input:not([type="checkbox"]):not([type="radio"]),select,textarea,
.inp,.field-group input,.field-group select,.field-group textarea,
.search-mini,.code{
  width:100%;
  min-height:46px!important;
  border:1px solid var(--lg-border-strong)!important;
  border-radius:12px!important;
  background:#fff!important;
  color:var(--lg-ink)!important;
  box-shadow:inset 0 1px 0 rgba(7,52,111,.02)!important;
  font-size:.9rem!important;
}
textarea{min-height:112px!important;resize:vertical}
input::placeholder,textarea::placeholder{color:#89a0b7!important;opacity:1}
input:focus,select:focus,textarea:focus,.inp:focus{
  border-color:var(--lg-blue-500)!important;
  box-shadow:0 0 0 4px rgba(44,125,224,.10)!important;
  outline:none!important;
}
label,.field-group label{color:var(--lg-blue-950)!important;font-size:.82rem!important;font-weight:750!important}
input[type="checkbox"],input[type="radio"]{accent-color:var(--lg-blue-700)}
.required{display:none!important}
.terms-box,.declaration,.profile-choice,.notice-soft,.notice,.hint,.account{
  border-radius:12px!important;
  border:1px solid var(--lg-border)!important;
  background:var(--lg-blue-050)!important;
  color:var(--lg-text)!important;
}

/* Superficies / tarjetas */
.card,.role-card,.info-card,.tool-card,.plan-card,.gar-card,.faq-item,.privacidad-block,.contacto-info,.paso,
.visual-card,.dir-preview,.panel,.stat-card,.quick-card,.list-item,.form-panel,.plans-panel,.payment-panel,.order-panel,
.law-card,.plan-mini,.law-preview,.profile-choice,.credit-box,.choose-plan,.register-card,.registration-intro,
.twofa-card,.support-card,.search-card,.result-card,.agenda-card,.sheet-card,.spreadsheet-card{
  border:1px solid var(--lg-border)!important;
  border-radius:var(--lg-radius-lg)!important;
  background:#fff!important;
  box-shadow:var(--lg-shadow-sm)!important;
}
.card:hover,.role-card:hover,.info-card:hover,.tool-card:hover,.plan-card:hover,.quick-card:hover,.result-card:hover{
  border-color:var(--lg-blue-300)!important;
  box-shadow:var(--lg-shadow-md)!important;
}
.icon-box,.role-icon,.tool-icon,.paso-num,.info-card__num,.gar-icon,.stat-icon,.qicon,.list-avatar,
.vector-dashboard-icon,.shield{
  background:var(--lg-blue-100)!important;
  color:var(--lg-blue-800)!important;
  border:1px solid var(--lg-blue-200)!important;
  border-radius:12px!important;
}
.badge,.pill,.chip,.dpb,.dpc,.role-label,.profile-badge,.kicker,.hero-badge,.sec-tag,.step-tag{
  border-radius:999px!important;
  border:1px solid var(--lg-blue-200)!important;
  background:var(--lg-blue-100)!important;
  color:var(--lg-blue-800)!important;
  box-shadow:none!important;
}
.pill.green,.pill.warn,.success-state{background:var(--lg-blue-100)!important;color:var(--lg-blue-800)!important;border-color:var(--lg-blue-200)!important}

/* Hero público */
.hero{padding:clamp(34px,5vw,64px) 0!important}
.hero-card,.hero__panel{
  border-radius:var(--lg-radius-xl)!important;
  border:1px solid var(--lg-border)!important;
  background:linear-gradient(145deg,#fff 0%,#f8fbff 62%,var(--lg-blue-100) 100%)!important;
  box-shadow:var(--lg-shadow-lg)!important;
}
.hero-card::before,.hero__panel::before,.hero-card::after,.hero__panel::after{
  background:rgba(44,125,224,.09)!important;
}
.hero-media,.visual-card{
  border-radius:var(--lg-radius-lg)!important;
  background:linear-gradient(145deg,#fff,var(--lg-blue-100))!important;
  border:1px solid var(--lg-border)!important;
}
.hero-media::before,.visual-card::before{content:none!important}

/* Registro de usuario */
.registration-page .split-registration{
  display:grid!important;
  grid-template-columns:minmax(0,.9fr) minmax(500px,1.1fr)!important;
  gap:28px!important;
  align-items:stretch!important;
}
.registration-page .registration-intro{
  padding:clamp(24px,4vw,40px)!important;
  background:linear-gradient(145deg,var(--lg-blue-950),var(--lg-blue-700))!important;
  color:#fff!important;
  overflow:hidden!important;
}
.registration-page .registration-intro h1,
.registration-page .registration-intro h2,
.registration-page .registration-intro b{color:#fff!important}
.registration-page .registration-intro p{color:rgba(255,255,255,.82)!important}
.registration-page .mini-benefit{border-top:1px solid rgba(255,255,255,.16)!important;padding:15px 0!important}
.registration-page .mini-benefit .check{
  background:rgba(255,255,255,.12)!important;color:#fff!important;border:1px solid rgba(255,255,255,.22)!important
}
.registration-page .register-visual{
  margin-top:24px!important;
  border:1px solid rgba(255,255,255,.16)!important;
  border-radius:16px!important;
  background:rgba(255,255,255,.06)!important;
  color:#fff!important;
}
.registration-page .register-card{padding:clamp(24px,4vw,38px)!important}
.registration-page .form-grid{gap:15px!important}
.registration-page .form-actions{margin-top:20px!important}

/* Flujo profesional / registro abogado */
body.flow-lawyer,body.lawyer-register-premium{background:linear-gradient(180deg,#fff,var(--lg-blue-050))!important}
body.lawyer-register-premium .law-topbar,
body.lawyer-register-premium .stepper,
body.lawyer-register-premium .law-footer,
body.lawyer-register-premium .flow-footer{
  background:rgba(255,255,255,.97)!important;
  border-color:var(--lg-border)!important;
}
body.lawyer-register-premium .law-nav a:not(.law-btn),body.lawyer-register-premium .law-brand{color:var(--lg-blue-900)!important}
.funnel-head,body.lawyer-register-premium .funnel-head{
  padding:34px 0!important;
  background:linear-gradient(180deg,#fff,var(--lg-blue-050))!important;
  border-color:var(--lg-border)!important;
}
.funnel-head h1{font-size:clamp(2rem,4vw,3.7rem)!important}
.funnel-layout{
  grid-template-columns:minmax(290px,.68fr) minmax(0,1.32fr)!important;
  gap:24px!important;
  align-items:start!important;
}
body.lawyer-register-premium .register-banner{
  min-height:170px!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid var(--lg-border)!important;
  border-radius:18px!important;
  background:
    radial-gradient(circle at 20% 20%,rgba(255,255,255,.18),transparent 20%),
    linear-gradient(135deg,var(--lg-blue-950),var(--lg-blue-600))!important;
  box-shadow:var(--lg-shadow-md)!important;
}
body.lawyer-register-premium .register-banner span{
  color:#fff!important;
  font-size:clamp(1.9rem,5vw,3.8rem)!important;
  font-weight:800!important;
  letter-spacing:.055em!important;
  text-shadow:none!important;
}
body.lawyer-register-premium .lawyer-register-note{
  border:1px solid var(--lg-border)!important;
  border-radius:14px!important;
  background:var(--lg-blue-050)!important;
  color:var(--lg-text)!important;
}
body.lawyer-register-premium .form-panel,
body.lawyer-register-premium .form-section,
body.lawyer-register-premium .profile-choice{
  border-color:var(--lg-border)!important;
  background:#fff!important;
  box-shadow:var(--lg-shadow-sm)!important;
}

/* Dashboard */
body.dashboard-body{background:var(--lg-blue-050)!important}
.dash-layout{grid-template-columns:276px minmax(0,1fr)!important}
.dash-sidebar,
html[data-theme="royal-dark"] .dash-sidebar{
  padding:20px!important;
  background:linear-gradient(180deg,var(--lg-blue-950),var(--lg-blue-800))!important;
  color:#fff!important;
  box-shadow:none!important;
}
.dash-sidebar .dash-brand{padding:2px 4px 10px!important}
.dash-sidebar .brand-logo-img{filter:brightness(0) invert(1);max-width:175px!important;height:40px!important}
.dash-profile{
  padding:16px!important;
  border:1px solid rgba(255,255,255,.16)!important;
  border-radius:16px!important;
  background:rgba(255,255,255,.08)!important;
}
.dash-profile h3,.dash-sidebar h3,.dash-sidebar b{color:#fff!important}
.dash-profile p,.sidebar-foot{color:rgba(255,255,255,.75)!important}
.dash-menu{gap:5px!important}
.dash-menu a{
  min-height:44px!important;
  padding:10px 12px!important;
  border-radius:10px!important;
  color:rgba(255,255,255,.80)!important;
  font-size:.84rem!important;
  font-weight:650!important;
}
.dash-menu a:hover,.dash-menu a.active{
  background:rgba(255,255,255,.12)!important;
  color:#fff!important;
}
.sidebar-foot{border-radius:12px!important;border-color:rgba(255,255,255,.14)!important;background:rgba(255,255,255,.06)!important}
.dash-main{padding:24px!important}
.dash-topbar,
html[data-theme="royal-dark"] .dash-topbar{
  min-height:72px!important;
  height:auto!important;
  padding:14px 18px!important;
  margin-bottom:20px!important;
  border:1px solid var(--lg-border)!important;
  border-radius:16px!important;
  background:rgba(255,255,255,.96)!important;
  box-shadow:var(--lg-shadow-sm)!important;
}
.top-title h1{font-size:1.2rem!important}
.top-title p{font-size:.83rem!important;color:var(--lg-muted)!important}
.hero-panel{gap:18px!important;margin-bottom:18px!important}
.welcome-card{
  min-height:280px!important;
  padding:30px!important;
  border-radius:20px!important;
  border:1px solid rgba(255,255,255,.15)!important;
  background:linear-gradient(135deg,var(--lg-blue-950),var(--lg-blue-700) 66%,var(--lg-blue-600))!important;
  box-shadow:var(--lg-shadow-md)!important;
}
.welcome-card::after{background:rgba(255,255,255,.08)!important}
.welcome-card h2,.welcome-card p,.welcome-card .kicker{color:#fff!important}
.welcome-card p{color:rgba(255,255,255,.84)!important}
.welcome-card .kicker{background:rgba(255,255,255,.12)!important;border-color:rgba(255,255,255,.20)!important}
.welcome-actions .dash-btn{background:rgba(255,255,255,.10)!important;color:#fff!important;border-color:rgba(255,255,255,.22)!important}
.welcome-actions .dash-btn.primary{background:#fff!important;color:var(--lg-blue-900)!important}
.image-card,.vector-dashboard-card{
  min-height:280px!important;
  border-radius:20px!important;
  border:1px solid var(--lg-border)!important;
  background:linear-gradient(145deg,#fff,var(--lg-blue-100))!important;
  box-shadow:var(--lg-shadow-sm)!important;
  color:var(--lg-blue-900)!important;
}
.vector-dashboard-card b{color:var(--lg-blue-950)!important}
.vector-dashboard-card span{color:var(--lg-muted)!important}
.stats-grid{gap:14px!important;margin-bottom:18px!important}
.stat-card{padding:18px!important;border-radius:16px!important}
.stat-card strong{color:var(--lg-blue-950)!important;font-size:1.72rem!important}
.panel{border-radius:18px!important;box-shadow:var(--lg-shadow-sm)!important}
.panel-head{padding:20px 20px 0!important}
.panel-body{padding:18px 20px 20px!important}
.quick-card{border-radius:14px!important;padding:16px!important}
.list-item{border-radius:14px!important}

/* Tablas */
.table-wrap,.table-responsive,.legasist-auto-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:separate!important;border-spacing:0!important;color:var(--lg-text)!important}
th{
  background:var(--lg-blue-050)!important;
  color:var(--lg-blue-950)!important;
  font-size:.75rem!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  letter-spacing:.025em!important;
}
th,td{padding:12px 13px!important;border-bottom:1px solid var(--lg-border)!important;vertical-align:middle!important}
td{font-size:.84rem!important;background:#fff!important}
tbody tr:hover td{background:#f8fbff!important}

/* Agenda / herramientas / chat */
.tool-layout,.agenda-shell,.calendar-shell,.chat-layout,.expediente-layout{max-width:100%!important}
.tool-sidebar{background:linear-gradient(180deg,var(--lg-blue-950),var(--lg-blue-800))!important;color:#fff!important}
.chat-bubble,.message-bubble,.event-card,.source-card,.note-card,.scan-card{
  border-color:var(--lg-border)!important;
  border-radius:14px!important;
  box-shadow:none!important;
}

/* SVG e iconos: consistentes y sin apariencia de fotografía */
svg.register-vector{color:currentColor}
.lg-icon,.dash-menu svg,.qicon svg,.stat-icon svg,.vector-dashboard-icon svg,.law-btn svg,.dash-btn svg{
  width:1.15em!important;height:1.15em!important;stroke-width:1.8!important
}

/* El modo oscuro ahora tiene control accesible y respeta las preferencias del usuario. */

/* Footer */
footer,.law-footer,.flow-footer{
  background:#fff!important;
  border-color:var(--lg-border)!important;
  color:var(--lg-muted)!important;
}

/* Responsividad y UI móvil */
@media (max-width:1180px){
  .dash-layout{display:block!important;grid-template-columns:1fr!important}
  .dash-main{width:100%!important;max-width:100%!important;margin:0!important;padding:16px!important}
  .dash-sidebar{width:min(286px,88vw)!important}
  .dash-topbar{position:sticky!important;top:8px!important;z-index:5000!important}
  .hero-panel,.dash-grid,.calendar-shell,.agenda-shell,.chat-layout,.expediente-layout{grid-template-columns:1fr!important}
}
@media (max-width:1020px){
  .registration-page .split-registration,.funnel-layout,.visual-split,.dir-grid,.payment-layout,.plans-layout,.contact-layout,.support-layout{
    grid-template-columns:1fr!important;
  }
  .registration-page .registration-intro{min-height:auto!important}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (max-width:760px){
  .container,.law-container{width:min(100% - 24px,1180px)!important}
  .topbar__inner,.nav-inner,.law-topbar__inner{padding:10px 0!important;gap:10px!important}
  .brand-logo-img,.law-brand__logo,.law-brand img.brand-logo-img{height:39px!important;max-width:180px!important}
  .nav-links,.law-nav{gap:5px!important}
  .hero{padding:28px 0!important}
  .hero-card,.hero__panel,.register-card,.registration-intro,.form-panel,.plans-panel,.payment-panel,.order-panel{padding:20px!important;border-radius:16px!important}
  .grid-2,.grid-3,.grid-4,.pasos,.plans-grid,.garantias,.pricing-grid,.plan-grid,.features-grid,.steps-grid,.benefits-grid,.footer-grid{
    grid-template-columns:1fr!important;
  }
  .form-grid,.fields-grid,.user-account-grid{grid-template-columns:1fr!important}
  .field,.field--half,.field--third,.field-group,.field-group.full{grid-column:1/-1!important;width:100%!important}
  .hero-actions,.hero-btns,.cta-btns,.form-actions,.law-actions{width:100%!important}
  .hero-actions>*,.hero-btns>*,.cta-btns>*,.form-actions>button,.law-actions>*{width:100%!important}
  .dash-main{padding:10px!important}
  .dash-topbar{padding:11px 12px!important;border-radius:14px!important}
  .top-actions{width:100%!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .top-actions>*{width:100%!important}
  .stats-grid,.quick-grid{grid-template-columns:1fr!important}
  .welcome-card{padding:22px!important;min-height:240px!important}
  .panel-head,.panel-body{padding-left:15px!important;padding-right:15px!important}
  th,td{padding:10px!important;font-size:.78rem!important}
}
@media (max-width:480px){
  .container,.law-container{width:min(100% - 18px,1180px)!important}
  .nav-links,.law-nav{overflow-x:auto!important;flex-wrap:nowrap!important;scrollbar-width:none}
  .nav-links::-webkit-scrollbar,.law-nav::-webkit-scrollbar{display:none}
  h1{font-size:clamp(1.78rem,10vw,2.45rem)!important}
  h2{font-size:1.45rem!important}
  .top-actions{grid-template-columns:1fr!important}
  .registration-page .register-card,.registration-page .registration-intro{padding:17px!important}
  .dash-sidebar{width:min(270px,92vw)!important}
  .dash-main{padding:8px!important}
  .panel-head,.panel-body{padding-left:13px!important;padding-right:13px!important}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}

/* Ajustes de componentes especiales dentro de la misma paleta */
body.lawyer-register-premium .register-banner{
  grid-template-columns:auto 1fr!important;
  gap:18px!important;
  padding:28px!important;
  justify-items:start!important;
}
body.lawyer-register-premium .register-banner__icon{
  width:64px;height:64px;display:grid;place-items:center;
  border:1px solid rgba(255,255,255,.24);border-radius:16px;
  background:rgba(255,255,255,.10);color:#fff;
}
body.lawyer-register-premium .register-banner__icon svg{width:34px!important;height:34px!important}
.choose-plan.corporate .plan-price{color:var(--lg-blue-800)!important}
.choose-plan.corporate .plan-trial,.plan-mini .plan-trial{background:var(--lg-blue-100)!important;color:var(--lg-blue-800)!important}
.legal-pending,.login-warning.show,.calendar-notice,.calendar-notice.error{
  background:var(--lg-blue-100)!important;
  border-color:var(--lg-blue-200)!important;
  color:var(--lg-blue-900)!important;
}
@media(max-width:760px){
  body.lawyer-register-premium .register-banner{grid-template-columns:1fr!important;text-align:center!important;justify-items:center!important;padding:22px!important}
}

/* LEGASIST OCT 2026: tema oscuro sobrio, azul marino + blanco roto; conserva jerarquía de tarjetas */
html[data-theme="royal-dark"]{
  color-scheme:dark!important;
  --lg-blue-950:#edf4ff; --lg-blue-900:#dbeaff; --lg-blue-800:#c1d9ff;
  --lg-blue-700:#91baf3; --lg-blue-600:#367fdb; --lg-blue-500:#5799e6;
  --lg-blue-300:#3a6088; --lg-blue-200:#294766; --lg-blue-100:#192d46;
  --lg-blue-050:#101d2d; --lg-white:#182a3e; --lg-ink:#e7effa;
  --lg-text:#d2e0f1; --lg-muted:#b3c3d7; --lg-border:#30465e;
  --lg-border-strong:#42607f;
  --bg:#101d2d!important; --bg-2:#13243a!important;
  --surface:#182a3e!important; --surface-soft:#1d324b!important;
  --text:#d2e0f1!important; --muted:#b3c3d7!important;
  --navy:#edf4ff!important; --primary:#91baf3!important;
  --border:#30465e!important; --border-strong:#42607f!important;
  --law-panel:#182a3e!important; --law-panel-soft:#1d324b!important;
  --law-ink:#e7effa!important; --law-muted:#b3c3d7!important;
  --dash-bg:#101d2d!important; --dash-surface:#182a3e!important;
  --dash-text:#e7effa!important; --dash-muted:#b3c3d7!important;
  --dash-line:#30465e!important;
}
html[data-theme="royal-dark"],html[data-theme="royal-dark"] body,
html[data-theme="royal-dark"] body.dashboard-body,
html[data-theme="royal-dark"] body.flow-lawyer,
html[data-theme="royal-dark"] body.lawyer-register-premium{
  background:#101d2d!important;color:#d2e0f1!important;
}
html[data-theme="royal-dark"] .topbar,
html[data-theme="royal-dark"] .nav,
html[data-theme="royal-dark"] .law-topbar,
html[data-theme="royal-dark"] .dash-topbar,
html[data-theme="royal-dark"] footer,
html[data-theme="royal-dark"] .law-footer,
html[data-theme="royal-dark"] .flow-footer{
  background:#15273a!important;border-color:#30465e!important;color:#d2e0f1!important;
}
html[data-theme="royal-dark"] .card,
html[data-theme="royal-dark"] .role-card,
html[data-theme="royal-dark"] .info-card,
html[data-theme="royal-dark"] .tool-card,
html[data-theme="royal-dark"] .plan-card,
html[data-theme="royal-dark"] .panel,
html[data-theme="royal-dark"] .form-panel,
html[data-theme="royal-dark"] .plans-panel,
html[data-theme="royal-dark"] .payment-panel,
html[data-theme="royal-dark"] .order-panel,
html[data-theme="royal-dark"] .register-card,
html[data-theme="royal-dark"] .registration-intro:not(.registration-intro--blue),
html[data-theme="royal-dark"] .profile-choice,
html[data-theme="royal-dark"] .bill-card,
html[data-theme="royal-dark"] .card-box,
html[data-theme="royal-dark"] .receipt,
html[data-theme="royal-dark"] .receipt-body,
html[data-theme="royal-dark"] .receipt-item,
html[data-theme="royal-dark"] .manual-payment-card,
html[data-theme="royal-dark"] .payment-method-note,
html[data-theme="royal-dark"] .openpay-trust,
html[data-theme="royal-dark"] .free-banner,
html[data-theme="royal-dark"] .declaration,
html[data-theme="royal-dark"] .terms-box{
  background:#182a3e!important;color:#d2e0f1!important;border-color:#30465e!important;
  box-shadow:0 12px 32px rgba(0,0,0,.13)!important;
}
html[data-theme="royal-dark"] h1,
html[data-theme="royal-dark"] h2,
html[data-theme="royal-dark"] h3,
html[data-theme="royal-dark"] label,
html[data-theme="royal-dark"] .bill-kv b,
html[data-theme="royal-dark"] .receipt-item strong,
html[data-theme="royal-dark"] .manual-payment-card h3,
html[data-theme="royal-dark"] .profile-choice strong{
  color:#e7effa!important;
}
html[data-theme="royal-dark"] p,
html[data-theme="royal-dark"] small,
html[data-theme="royal-dark"] .field-help,
html[data-theme="royal-dark"] .bill-kv span,
html[data-theme="royal-dark"] .manual-payment-card p,
html[data-theme="royal-dark"] .history-row span{
  color:#b3c3d7!important;
}
html[data-theme="royal-dark"] input:not([type="checkbox"]):not([type="radio"]),
html[data-theme="royal-dark"] select,
html[data-theme="royal-dark"] textarea,
html[data-theme="royal-dark"] .inp{
  background:#122237!important;color:#f1f6ff!important;border-color:#42607f!important;
}
html[data-theme="royal-dark"] input::placeholder,
html[data-theme="royal-dark"] textarea::placeholder{color:#9fb3ca!important;opacity:1!important}
html[data-theme="royal-dark"] .nav-links a,
html[data-theme="royal-dark"] .law-nav a:not(.law-btn),
html[data-theme="royal-dark"] a:not(.button):not(.btn):not(.dash-btn):not(.law-btn){color:#aacaff!important}
html[data-theme="royal-dark"] .button.ghost,
html[data-theme="royal-dark"] .law-btn--ghost,
html[data-theme="royal-dark"] .dash-btn:not(.primary),
html[data-theme="royal-dark"] .payment-brand,
html[data-theme="royal-dark"] .payment-tab,
html[data-theme="royal-dark"] .button:not(.primary){
  background:#1e354f!important;color:#deebff!important;border-color:#42607f!important;
}
html[data-theme="royal-dark"] .button.primary,
html[data-theme="royal-dark"] .law-btn--primary,
html[data-theme="royal-dark"] .dash-btn.primary,
html[data-theme="royal-dark"] button[type="submit"].primary{
  background:#245eab!important;color:#fff!important;border-color:#3974be!important;
}
html[data-theme="royal-dark"] .bill-kv,
html[data-theme="royal-dark"] .history-row,
html[data-theme="royal-dark"] .manual-link,
html[data-theme="royal-dark"] td{
  border-color:#30465e!important;
}
html[data-theme="royal-dark"] td{background:#182a3e!important;color:#d2e0f1!important}
html[data-theme="royal-dark"] tbody tr:hover td{background:#213a56!important}
/* No recolorear banners de marca que requieren blanco sobre azul sólido. */
html[data-theme="royal-dark"] .receipt-head,
html[data-theme="royal-dark"] .register-banner,
html[data-theme="royal-dark"] .funnel-side--formal{background-color:#143968!important}
html[data-theme="royal-dark"] .receipt-head h1,
html[data-theme="royal-dark"] .register-banner span,
html[data-theme="royal-dark"] .welcome-card h2{color:#fff!important}
html[data-theme="royal-dark"] .legasist-theme-toggle,
.legasist-theme-toggle{display:grid!important;position:fixed!important;right:20px!important;bottom:18px!important;z-index:9997!important;width:46px!important;height:46px!important;font-size:24px!important}
html[data-theme="royal-dark"] .legasist-theme-toggle{background:#263b56!important;color:#e7effa!important;border:1px solid #47688e!important}
body.lawyer-register-premium .register-banner{grid-template-columns:1fr!important}
