/*
 * NEXA Design System v1.0 — PRO01
 * Capa visual sobre estilos legacy V7/V8/V9/V10.
 * No modifica lógica funcional ni el modelo de datos.
 */
:root{
    --nexa-navy-950:#06101f;
    --nexa-navy-900:#08172d;
    --nexa-navy-850:#0c1c35;
    --nexa-navy-800:#102344;
    --nexa-navy-700:#17345f;
    --nexa-blue-600:#2563eb;
    --nexa-blue-500:#2f6df6;
    --nexa-cyan-500:#22d3ee;
    --nexa-teal-500:#14b8a6;
    --nexa-green-500:#22c55e;
    --nexa-amber-500:#f2b84b;
    --nexa-red-500:#ef4444;
    --nexa-white:#ffffff;
    --nexa-cloud:#f7f9fc;
    --nexa-ink:#eaf0fb;
    --nexa-muted:#9fb0c9;
    --nexa-line:rgba(159,176,201,.18);
    --nexa-line-strong:rgba(159,176,201,.28);
    --nexa-shadow:0 22px 60px rgba(0,7,22,.28);
    --nexa-shadow-soft:0 12px 34px rgba(0,7,22,.18);
    --nexa-radius-sm:10px;
    --nexa-radius-md:14px;
    --nexa-radius-lg:20px;
    --nexa-radius-xl:26px;

    /* Aliases legacy */
    --bg:var(--nexa-navy-950);
    --panel:var(--nexa-navy-800);
    --panel2:var(--nexa-navy-900);
    --line:var(--nexa-line);
    --text:var(--nexa-ink);
    --soft:var(--nexa-muted);
    --indigo:var(--nexa-blue-500);
    --indigo2:var(--nexa-cyan-500);
    --violet:var(--nexa-blue-500);
    --violet2:var(--nexa-cyan-500);
    --gold:var(--nexa-amber-500);
    --green:#55ddb1;
    --red:#ff9d9d;

    --mp-bg:var(--nexa-navy-950);
    --mp-panel:var(--nexa-navy-800);
    --mp-panel-2:var(--nexa-navy-900);
    --mp-line:var(--nexa-line);
    --mp-text:var(--nexa-ink);
    --mp-soft:var(--nexa-muted);
    --mp-violet:var(--nexa-blue-500);
    --mp-violet-2:var(--nexa-cyan-500);
    --mp-gold:var(--nexa-amber-500);
    --mp-green:#55ddb1;
    --mp-danger:#ff9d9d;
    --mp-cyan:var(--nexa-cyan-500);
}

html{color-scheme:dark;scroll-behavior:smooth}
body:not(.v8-public-home){
    background:
        radial-gradient(circle at 12% -5%,rgba(47,109,246,.18),transparent 32rem),
        radial-gradient(circle at 94% 8%,rgba(34,211,238,.09),transparent 29rem),
        linear-gradient(180deg,var(--nexa-navy-950),#08162b 58%,#071225);
    color:var(--nexa-ink);
}
body:not(.v8-public-home)::before{
    position:fixed;
    inset:0;
    z-index:-1;
    pointer-events:none;
    content:"";
    background-image:
        linear-gradient(rgba(255,255,255,.015) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px);
    background-size:48px 48px;
    mask-image:linear-gradient(to bottom,rgba(0,0,0,.7),transparent 76%);
}
body:not(.v8-public-home) .shell{width:min(1220px,calc(100% - 30px))}
body:not(.v8-public-home) a{text-underline-offset:3px}

body:not(.v8-public-home) .card,
body:not(.v8-public-home) .section,
body:not(.v8-public-home) .v8-profile-hero,
body:not(.v8-public-home) .v7-access-card,
body:not(.v8-public-home) .v7-community-card{
    border-color:var(--nexa-line);
    background:linear-gradient(145deg,rgba(16,35,68,.96),rgba(8,23,45,.95));
    box-shadow:var(--nexa-shadow-soft);
}

body:not(.v8-public-home) .mp-app-tools,
body:not(.v8-public-home) .topbar,
body:not(.v8-public-home) .top{
    position:relative;
    border:1px solid var(--nexa-line);
    background:rgba(6,16,31,.82);
    box-shadow:0 12px 32px rgba(0,8,24,.20);
    backdrop-filter:blur(18px);
}
body:not(.v8-public-home) .mp-app-tools::after,
body:not(.v8-public-home) .topbar::after,
body:not(.v8-public-home) .top::after{
    position:absolute;
    inset:auto 18px -1px;
    height:1px;
    content:"";
    background:linear-gradient(90deg,transparent,rgba(47,109,246,.55),rgba(34,211,238,.45),transparent);
}

body:not(.v8-public-home) .v8-brand{min-width:130px}
body:not(.v8-public-home) .v8-brand img,
body:not(.v8-public-home) .v9-login-brand img{filter:drop-shadow(0 8px 18px rgba(0,0,0,.18))}

body:not(.v8-public-home) .mp-app-tools-right{gap:6px}
body:not(.v8-public-home) .mp-app-tools-right > a{
    display:inline-flex;
    min-height:38px;
    align-items:center;
    gap:6px;
    padding:8px 10px;
    border:1px solid transparent;
    border-radius:10px;
    color:#c9d6e9;
    font-size:13px;
    font-weight:650;
    text-decoration:none;
    transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
body:not(.v8-public-home) .mp-app-tools-right > a:hover{
    border-color:var(--nexa-line);
    background:rgba(47,109,246,.10);
    color:#fff;
    transform:translateY(-1px);
}
body:not(.v8-public-home) .mp-app-tools-right > a[aria-current="page"]{
    border-color:rgba(47,109,246,.36);
    background:linear-gradient(135deg,rgba(47,109,246,.17),rgba(34,211,238,.07));
    color:#fff;
}

body:not(.v8-public-home) .mp-btn,
body:not(.v8-public-home) .btn,
body:not(.v8-public-home) button.btn{
    border-radius:12px;
    box-shadow:none;
    transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease;
}
body:not(.v8-public-home) .mp-btn-primary,
body:not(.v8-public-home) .btn:not(.btn-secondary):not(.secondary):not(.danger){
    background:linear-gradient(135deg,var(--nexa-blue-500),#2588ef 58%,#20b8d8);
    box-shadow:0 10px 24px rgba(47,109,246,.19);
}
body:not(.v8-public-home) .mp-btn-primary:hover,
body:not(.v8-public-home) .btn:not(.btn-secondary):not(.secondary):not(.danger):hover{
    transform:translateY(-1px);
    box-shadow:0 13px 30px rgba(47,109,246,.26);
}
body:not(.v8-public-home) .mp-btn-secondary,
body:not(.v8-public-home) .btn-secondary,
body:not(.v8-public-home) .btn.secondary{
    border:1px solid var(--nexa-line-strong);
    background:rgba(255,255,255,.035);
    color:#dbe6f5;
}
body:not(.v8-public-home) .mp-btn-secondary:hover,
body:not(.v8-public-home) .btn-secondary:hover,
body:not(.v8-public-home) .btn.secondary:hover{
    border-color:rgba(47,109,246,.38);
    background:rgba(47,109,246,.09);
}

body:not(.v8-public-home) input,
body:not(.v8-public-home) select,
body:not(.v8-public-home) textarea{
    border-color:var(--nexa-line);
    border-radius:12px;
    background:rgba(4,15,31,.72);
    color:var(--nexa-ink);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
body:not(.v8-public-home) input:focus,
body:not(.v8-public-home) select:focus,
body:not(.v8-public-home) textarea:focus{
    border-color:rgba(47,109,246,.72);
    box-shadow:0 0 0 3px rgba(47,109,246,.14);
}

body:not(.v8-public-home) .mp-eyebrow,
body:not(.v8-public-home) .kicker,
body:not(.v8-public-home) .eyebrow{
    color:var(--nexa-amber-500);
    letter-spacing:.11em;
}
body:not(.v8-public-home) h1{letter-spacing:-.035em}
body:not(.v8-public-home) h2,
body:not(.v8-public-home) h3{letter-spacing:-.018em}
body:not(.v8-public-home) .lead,
body:not(.v8-public-home) .help{color:var(--nexa-muted)}

body:not(.v8-public-home) .tk-kpis{gap:13px}
body:not(.v8-public-home) .tk-kpi,
body:not(.v8-public-home) .metric,
body:not(.v8-public-home) .v9-stat{
    position:relative;
    overflow:hidden;
    border-color:var(--nexa-line);
    background:linear-gradient(145deg,rgba(19,43,78,.92),rgba(8,24,47,.95));
    box-shadow:0 12px 30px rgba(0,8,24,.16);
}
body:not(.v8-public-home) .tk-kpi::before,
body:not(.v8-public-home) .metric::before,
body:not(.v8-public-home) .v9-stat::before{
    position:absolute;
    inset:0 auto 0 0;
    width:3px;
    border-radius:99px;
    content:"";
    background:var(--nexa-blue-500);
}
body:not(.v8-public-home) .tk-kpi:nth-child(2)::before,
body:not(.v8-public-home) .metrics > .metric:nth-child(2)::before,
body:not(.v8-public-home) .v9-stat:nth-child(2)::before{background:var(--nexa-cyan-500)}
body:not(.v8-public-home) .tk-kpi:nth-child(3)::before,
body:not(.v8-public-home) .metrics > .metric:nth-child(3)::before,
body:not(.v8-public-home) .v9-stat:nth-child(3)::before{background:var(--nexa-amber-500)}
body:not(.v8-public-home) .tk-kpi:nth-child(4)::before,
body:not(.v8-public-home) .metrics > .metric:nth-child(4)::before,
body:not(.v8-public-home) .v9-stat:nth-child(4)::before{background:var(--nexa-teal-500)}
body:not(.v8-public-home) .tk-kpi strong,
body:not(.v8-public-home) .metric strong,
body:not(.v8-public-home) .v9-stat strong{
    color:#fff;
    font-variant-numeric:tabular-nums;
}
body:not(.v8-public-home) .tk-kpi small{color:#8fdcf0}

body:not(.v8-public-home) table{
    overflow:hidden;
    border:1px solid var(--nexa-line);
    border-radius:14px;
}
body:not(.v8-public-home) th{
    background:rgba(47,109,246,.055);
    color:#aebed4;
}
body:not(.v8-public-home) td{color:#e6edf8}
body:not(.v8-public-home) tbody tr{transition:background .14s ease}
body:not(.v8-public-home) tbody tr:hover{background:rgba(47,109,246,.045)}

body:not(.v8-public-home) .pill,
body:not(.v8-public-home) .tk-chip{
    border:1px solid rgba(242,184,75,.16);
    background:rgba(242,184,75,.09);
}
body:not(.v8-public-home) .alert.success,
body:not(.v8-public-home) .success{
    border-color:rgba(34,197,94,.22);
    background:rgba(34,197,94,.07);
}
body:not(.v8-public-home) .alert.error,
body:not(.v8-public-home) .error{
    border-color:rgba(239,68,68,.24);
    background:rgba(239,68,68,.08);
}
body:not(.v8-public-home) .notice{
    border-color:rgba(34,211,238,.18);
    background:linear-gradient(135deg,rgba(34,211,238,.06),rgba(47,109,246,.055));
}

body:not(.v8-public-home) .v8-profile-hero{
    position:relative;
    overflow:hidden;
}
body:not(.v8-public-home) .v8-profile-hero::after{
    position:absolute;
    right:-80px;
    top:-110px;
    width:280px;
    height:280px;
    border-radius:50%;
    content:"";
    background:radial-gradient(circle,rgba(34,211,238,.13),transparent 68%);
    pointer-events:none;
}
body:not(.v8-public-home) .v8-avatar{
    border:2px solid rgba(47,109,246,.38);
    box-shadow:0 0 0 6px rgba(47,109,246,.07),0 12px 30px rgba(0,0,0,.25);
}

body:not(.v8-public-home) .v7-appointment,
body:not(.v8-public-home) .tk-card,
body:not(.v8-public-home) .v9-directory-card,
body:not(.v8-public-home) .v9-consultant-mini,
body:not(.v8-public-home) .portal-card{
    border-color:var(--nexa-line);
    background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(47,109,246,.018));
    transition:transform .15s ease,border-color .15s ease,background .15s ease;
}
body:not(.v8-public-home) .v7-appointment:hover,
body:not(.v8-public-home) .tk-card:hover,
body:not(.v8-public-home) .v9-directory-card:hover,
body:not(.v8-public-home) .v9-consultant-mini:hover,
body:not(.v8-public-home) .portal-card:hover{
    border-color:rgba(47,109,246,.33);
    background:linear-gradient(145deg,rgba(47,109,246,.07),rgba(34,211,238,.025));
}

body:not(.v8-public-home) .v9-command-deck a{
    position:relative;
    overflow:hidden;
    border-color:var(--nexa-line);
    background:rgba(255,255,255,.025);
}
body:not(.v8-public-home) .v9-command-deck a::before{
    position:absolute;
    left:0;top:0;bottom:0;
    width:3px;
    content:"";
    background:linear-gradient(var(--nexa-blue-500),var(--nexa-cyan-500));
}
body:not(.v8-public-home) .v9-command-deck a:hover{
    border-color:rgba(47,109,246,.34);
    background:rgba(47,109,246,.07);
}

body:not(.v8-public-home) .mp-live-clock{
    padding:7px 9px;
    border:1px solid var(--nexa-line);
    border-radius:999px;
    background:rgba(255,255,255,.025);
}
body:not(.v8-public-home) .mp-clock-dot{
    background:#55ddb1;
    box-shadow:0 0 12px rgba(85,221,177,.7);
}

.v9-login-brand{margin-bottom:18px}
.v9-login-brand img{
    display:block;
    width:min(210px,72%);
    height:auto;
    margin:0 auto 8px;
}

@media(max-width:900px){
    body:not(.v8-public-home) .mp-app-tools{align-items:flex-start}
    body:not(.v8-public-home) .mp-app-tools-right{
        width:100%;
        flex-wrap:nowrap;
        overflow-x:auto;
        padding-bottom:4px;
        scrollbar-width:thin;
    }
    body:not(.v8-public-home) .mp-app-tools-right > a{flex:0 0 auto}
}
@media(max-width:620px){
    body:not(.v8-public-home) .shell{width:min(100% - 16px,1220px)}
    body:not(.v8-public-home) .card,
    body:not(.v8-public-home) .section,
    body:not(.v8-public-home) .v8-profile-hero{border-radius:17px}
    body:not(.v8-public-home) .mp-app-tools{border-radius:15px;padding:11px}
    body:not(.v8-public-home) .mp-app-tools-right > a{
        min-height:36px;
        padding:7px 9px;
        font-size:12px;
    }
}
@media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    body:not(.v8-public-home) *,
    body:not(.v8-public-home) *::before,
    body:not(.v8-public-home) *::after{
        transition:none!important;
        animation-duration:.001ms!important;
    }
}
