@import url('https://fonts.googleapis.com/css2?family=Public+Sans:wght@400;500;600;700;800&display=swap');

:root{
  --ink:#14233a!important;
  --muted:#68758a!important;
  --line:#e1e6ec!important;
  --paper:#f7f8fa!important;
  --white:#fff!important;
  --green:#142f52!important;
  --navy:#0b1b2b!important;
  --blue:#244a78!important;
  --gold:#c7a35a!important;
  --gold-deep:#9d7534!important;
  --serif:'Public Sans',Arial,sans-serif!important;
  --sans:'Public Sans',Arial,sans-serif!important;
}

html{color-scheme:light}
body,input,select,textarea,button{font-family:var(--sans)!important}
body{background:#f7f8fa!important;color:var(--ink)!important}

.brand-mark,.brand>span:first-child{
  width:43px!important;height:43px!important;flex:0 0 43px!important;
  border:0!important;border-radius:13px!important;
  background:url('/static/marca.svg') center/contain no-repeat!important;
  color:transparent!important;font-size:0!important;
  box-shadow:0 9px 24px #050f1d42!important;
}
.brand strong{font-family:var(--sans)!important;font-weight:800!important;letter-spacing:2.4px!important}
.brand small{font-family:var(--sans)!important;letter-spacing:1.5px!important;color:#91a1b6!important}

.sidebar{background:linear-gradient(165deg,#122b49 0%,#0b1b2b 72%,#071321 100%)!important;border-right:1px solid #243c58!important}
.sidebar .nav-label{color:#70839b!important}
.nav-item{border-radius:12px!important;color:#aebbc9!important;transition:background .2s,transform .2s!important}
.nav-item:hover{background:#ffffff0d!important;color:#fff!important;transform:translateX(3px)}
.nav-item.active{background:linear-gradient(90deg,#244a78,#1b3b62)!important;color:#fff!important;box-shadow:inset 3px 0 var(--gold),0 9px 24px #040d1940!important}
.sidebar-footer{border-color:#2b4058!important}.avatar{background:#d8bd7c!important;color:#172b45!important}

.topbar{background:#fffffff0!important;border-color:var(--line)!important;backdrop-filter:blur(16px)!important}
.content{padding-top:42px!important}
h1,h2,h3,.intro h1,.panel h2,.dialog-heading h2,.writing-heading h1,.calendar-heading h1,.finance-heading h1,.clients-heading h1,.directory-heading h1,.consult-copy h1,.document-hero h1,.document-body h2{
  font-family:'Public Sans',Arial,sans-serif!important;font-weight:700!important;letter-spacing:-.02em!important;line-height:1.12!important;color:var(--ink)!important;
}
.eyebrow{color:var(--gold-deep)!important;font-family:var(--sans)!important;font-weight:800!important;letter-spacing:1.8px!important}

.panel,.stats article,.form-card,.context-card,.tips-card,.client-row,.client-search-panel,.finance-table,.calendar-workspace,.detail-panel,.case-card,.order-summary,.payment-panel,.consult-card,.lawyer-grid article,.directory-heading aside,.document-shell{
  background:#fff!important;border-color:var(--line)!important;border-radius:18px!important;box-shadow:0 14px 38px #10233b0d!important;overflow:hidden;
}
.stats article,.case-card,.client-row,.lawyer-grid article{transition:transform .2s,box-shadow .2s,border-color .2s!important}
.stats article:hover,.case-card:hover,.client-row:hover,.lawyer-grid article:hover{transform:translateY(-2px);border-color:#c7d1df!important;box-shadow:0 20px 44px #10233b16!important}

.primary,.pay-button,.publish,.packs a,.consult-card button,.result>a,.choose-plan{
  border-radius:11px!important;background:linear-gradient(135deg,#244a78,#142f52)!important;color:#fff!important;box-shadow:0 9px 22px #102f5228!important;
}
.primary:hover,.pay-button:hover{background:linear-gradient(135deg,#2c578a,#193a62)!important}
.secondary,.lawyer-grid button{border-radius:10px!important;background:#fff!important;border-color:#d5dde7!important;color:#233b5b!important}
.text-button,a:not(.nav-item):not(.brand){color:#87672e}
.matter,.status,.plan-title>span,.verified{border-radius:999px!important}

dialog{border-radius:20px!important}dialog::backdrop{background:#071421b8!important}.dialog-heading{padding-top:26px!important}.dialog-actions{background:#fbfcfd!important;border-color:var(--line)!important}
input,select,textarea{border-radius:10px!important;background:#fff!important;border-color:#d8e0e9!important;padding:12px 13px!important;color:var(--ink)!important}
input:focus,select:focus,textarea:focus{border-color:#6684aa!important;box-shadow:0 0 0 4px #244a7815!important}

.client-search-panel,.agenda-date{background:linear-gradient(135deg,#1b3b62,#102841)!important;color:#fff!important}
.day-number.today>span:first-child{background:#244a78!important}.calendar-day.selected{box-shadow:inset 0 0 0 2px #416b9d!important;background:#f3f6fa!important}
.draft-notice,.legal-notice,.sandbox-note{border-left-color:var(--gold)!important;background:#fff9ed!important}

/* Portada de acceso: azul marino, dorado y texto blanco de alta legibilidad. */
.login-intro{
  background:linear-gradient(155deg,#142f52 0%,#0b1b2b 68%,#071321 100%)!important;
  color:#fff!important;
}
.login-intro h1{color:#fff!important}
.login-intro div>p:last-child{color:#f4f7fb!important}
.login-intro>small{color:#d6dfeb!important}
.login-intro .eyebrow{color:#d5b56e!important}
.login-intro .brand{color:#fff!important}
.login-intro .brand small{color:#b8c7d9!important}

/* Identidad de los módulos públicos y de contratación. */
body>header:not(.topbar),.public-header,.checkout-header{
  background:linear-gradient(135deg,#142f52,#0b1b2b)!important;
  border-color:#29415d!important;color:#fff!important;
}
body>header .brand,body>header .public-brand,body>header nav a{color:#fff!important}
body>header .brand small{color:#b8c7d9!important}
.consult-copy aside,.directory-disclaimer{background:#edf2f7!important;border-left-color:#244a78!important}
.method.active{border-color:#244a78!important;background:#f2f5f9!important}
.public-footer{background:#0b1b2b!important;color:#aebdd0!important}
.public-footer a{color:#fff!important}

/*
 * Protección de contraste: la regla tipográfica global colorea los títulos
 * con --ink. Los encabezados que viven sobre superficies oscuras necesitan
 * una excepción explícita para conservar una relación de contraste legible.
 */
.generation-limit-heading h2,
.inconsistency-heading h3,
.facts-dialog-guide h3,
.client-search-panel h2,
.help-dialog-heading h2,
.next-action h3{
  color:#fff!important;
}
.generation-limit-heading p,
.inconsistency-heading p,
.facts-dialog-guide>p,
.help-dialog-heading p{
  color:#f0ca74!important;
}
.help-dialog-heading span,
.client-search-panel p,
.next-action p{
  color:#dce6f1!important;
}

@media(max-width:760px){.panel,.stats article,.form-card,.context-card,.case-card,.document-shell{border-radius:14px!important}}
