/* Garza Nova · Impulso. Identidad compartida de las pantallas públicas y privadas. */
:root{--nova-forest:#143d32;--nova-deep:#102f27;--nova-jade:#6aab91;--nova-white:#fafbf8;--nova-soft:#eaf2ec;--nova-muted:#52685e;--nova-line:#d7e2da;--navy:var(--nova-forest);--navy2:var(--nova-deep);--navy-deep:var(--nova-deep);--teal:#28634d;--teal-soft:var(--nova-soft);--teal-light:#d3e8db;--green:#28634d;--cream:var(--nova-white);--crema:var(--nova-white);--paper:var(--nova-white);--papel:#fff;--ink:#183c30;--texto:#183c30;--muted:var(--nova-muted);--texto2:var(--nova-muted);--line:var(--nova-line);--linea:var(--nova-line);--linea2:#edf2ed;--verde:#28634d;--verde2:var(--nova-soft);font-family:"Segoe UI Variable","Segoe UI",system-ui,-apple-system,sans-serif;text-rendering:optimizeLegibility}
body{font-family:"Segoe UI Variable","Segoe UI",system-ui,-apple-system,sans-serif;background:var(--nova-white)}
button,a,input,select,textarea{touch-action:manipulation}
:is(button,a,input,select,textarea,[tabindex]):focus-visible{outline:3px solid #33775b;outline-offset:4px}
:is(#sidebar,.intro,.site-header) :is(button,a):focus-visible{outline-color:#a9dcc3}
.business-logo{display:block;object-fit:contain;flex-shrink:0;background:#fff;border:1px solid var(--nova-line);border-radius:15px;padding:8px}
#sidebar .brand{gap:12px;margin-bottom:25px;font-size:13px;letter-spacing:1.1px;color:#fff}
#sidebar .business-logo{width:64px;height:64px;padding:8px}
#sidebar .brand small{font-size:10px;letter-spacing:0;line-height:1.5;color:#c3ddce;font-weight:400}
#sidebar{background:var(--nova-forest)}
#navigation a.active{background:#285341;box-shadow:inset 2px 0 var(--nova-jade)}
.nav-caption{color:#b3cebd}
.mobile-brand{display:none}
.login-shell .brand .business-logo{width:82px;height:82px;padding:10px;border-radius:20px}
.login-shell .brand small{display:block;font-size:11px;letter-spacing:0;font-weight:400;color:#c3ddce;margin-top:7px}
.login-shell .intro{background:var(--nova-forest)}
.login-shell .intro p,.login-shell .features{color:#cee0d5}
.login-shell .access button{background:var(--nova-forest)}
@media (hover:hover) and (pointer:fine){.login-shell .access button:hover:not(:disabled){background:#22543f}}
.header-inner .business-logo,.top>.business-logo{width:60px;height:60px;padding:8px}
.header-inner .brand strong{font-size:18px;letter-spacing:2px}
.header-inner .brand small{font-size:11px;letter-spacing:.02em;text-transform:none;color:#c3ddce}
.top>.brand b,.top .brand b{letter-spacing:.07em;text-transform:uppercase;font-size:15px;font-weight:700}
.top>.brand small{letter-spacing:0;font-size:11px;color:var(--nova-muted)}
.top .brand-mark:has(img),.loading .brand-mark:has(img){display:grid;place-items:center;width:58px;height:58px;flex-shrink:0;background:#fff;border:1px solid var(--nova-line);border-radius:15px;padding:7px;overflow:hidden;box-shadow:none}
.top .brand-mark img,.loading .brand-mark img{display:block;width:100%;height:100%;object-fit:contain}
.member-card:after{content:"";width:160px;height:165px;background:url('/brand/logo') center/contain no-repeat;filter:brightness(0) invert(1);opacity:.09}
.member-card{background:linear-gradient(120deg,#143d32,#235b45);border-color:#41745c}
.btn.primary,button.pri,button.gbtn{background:var(--nova-forest);border-color:var(--nova-forest);color:#fff}
@media (hover:hover) and (pointer:fine){.btn.primary:hover:not(:disabled),button.pri:hover:not(:disabled),button.gbtn:hover:not(:disabled){background:#22543f;border-color:#22543f}}
.hub-welcome,.workspace .hero{background:var(--nova-forest);border-color:#2e5a44}
.hub-welcome h1 em{color:#bcdfcc}
.hub-welcome .btn.primary{background:#f3f7ee;color:var(--nova-forest);border-color:#f3f7ee}
@media (hover:hover) and (pointer:fine){.hub-welcome .btn.primary:hover{background:#fff;border-color:#fff}}
.hub-art-caption{color:#c3ddce;letter-spacing:2.2px;font-size:9px}
.hub-feature.jade,.metric.accent{background:var(--nova-soft);border-color:var(--nova-line)}
.commerce .installment-hero{background:var(--nova-forest)}
.topbar{background:var(--nova-white)}
.pro-app .pro-nav{background:#fff}
header .marca{padding:5px;background:#fff;border-color:var(--nova-line);border-radius:12px}
header .marca img{object-fit:contain}
.commerce-footer,.footer-brand{letter-spacing:.025em}
@media(max-width:1150px){#sidebar .brand{gap:9px;font-size:11px;letter-spacing:.8px}#sidebar .business-logo{width:58px;height:58px}#sidebar .brand small{font-size:9px}}
@media(max-width:760px){.mobile-brand{display:flex;align-items:center;flex-shrink:0}.mobile-brand img{display:block;width:36px;height:36px;object-fit:contain;background:#fff;border:1px solid var(--nova-line);border-radius:9px;padding:4px}.topbar{gap:8px}.topbar .breadcrumb{flex:1;min-width:0}.topbar .top-actions{flex-shrink:0}.topbar #menu{min-width:32px;padding:3px}.top>.business-logo,.header-inner .business-logo{width:48px;height:48px;padding:6px}.top .brand-mark:has(img){width:48px;height:48px;padding:6px}.login-shell .brand .business-logo{width:68px;height:68px}.header-inner .brand strong{font-size:15px;letter-spacing:1.4px}.header-inner .brand small{font-size:10px}#sidebar .brand{font-size:13px}.top>.brand b,.top .brand b{font-size:13px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media print{.mobile-brand{display:none!important}}

/* Portada: el acento jade acompaña la marca sin cambiar colores de estados financieros. */
body:has(.site-header) .hero{background:radial-gradient(ellipse at 85% 30%,#285344 0,transparent 60%),var(--nova-forest)}
.map-grid>div{background:#143d32b3}

/* Cuenta personal: contraste explícito sobre el fondo claro compartido. */
.account-page>.top{color:var(--nova-forest);padding-bottom:20px;border-bottom:1px solid var(--nova-line)}
.account-page .portal-link{color:#285b44}
@media (hover:hover) and (pointer:fine){.account-page .portal-link:hover{color:#143d32}}
.account-page h1{font-family:inherit;font-weight:650;letter-spacing:-.025em}
.account-page h1:focus{outline:none}
.top .brand b{font-family:inherit}
.top>.brand small{text-transform:none}
body.commerce{--navy:var(--nova-forest);--ink:#183c30;background:var(--nova-white)}

/* Encabezado único (revisión del 11-nov-2026): el nombre «Garza Nova» se escribe igual que en la portada (Newsreader, sin mayúsculas forzadas) en el catálogo público y en Mi cuenta. */
body:is(.account-page,.commerce) header.top .brand b{font:500 1.4rem/1.1 'Newsreader',Georgia,serif;letter-spacing:-.01em;text-transform:none;color:#153f30}
body:is(.account-page,.commerce) header.top .brand small{font-size:.72rem;letter-spacing:.04em;text-transform:none;color:#5c6e66}
@media(max-width:760px){body:is(.account-page,.commerce) header.top .brand b{font-size:1.2rem}}