:root {
    --graphite: #2F2D2E;
    --gold: #C4A764;
    --gold-deep: #AC8630;
    --beige: #F6F2EA;
    --warm-white: #FCFBF9;
    --secondary: #66615E;
    --gold-line: #D8C9A5;
    --border: #E7E1D8;
    --shadow: 0 18px 50px rgba(47,45,46,.09);
    --danger: #A63D40;
    --success: #3F725A;
}

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    min-height: 100%;
}

body {
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;
    color: var(--graphite);
    background: var(--warm-white);
}

button,
input {
    font: inherit;
}

.login-page {
    min-height: 100vh;
    background:
        linear-gradient(
            135deg,
            var(--graphite) 0,
            #3d393b 38%,
            var(--beige) 38%,
            var(--warm-white) 100%
        );
}

.login-shell {
    min-height: 100vh;
    max-width: 1280px;
    margin: auto;
    padding: 48px;
    display: grid;
    grid-template-columns: 1fr 440px;
    gap: 80px;
    align-items: center;
}

.login-brand {
    color: var(--warm-white);
    display: flex;
    align-items: center;
    gap: 28px;
}

.brand-mark {
    width: 94px;
    height: 94px;
    border: 1px solid var(--gold);
    color: var(--gold);
    display: grid;
    place-items: center;
    font-family: Georgia, serif;
    font-size: 54px;
    line-height: 1;
}

.brand-mark.small {
    width: 42px;
    height: 42px;
    font-size: 25px;
}

.login-brand h1 {
    margin: 4px 0 8px;
    font-family: Georgia, serif;
    font-size: clamp(54px, 8vw, 100px);
    font-weight: 400;
    letter-spacing: .1em;
}

.eyebrow {
    margin: 0 0 8px;
    color: var(--gold-deep);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.login-brand .eyebrow {
    color: var(--gold);
}

.brand-subtitle {
    max-width: 440px;
    margin: 0;
    color: #d8d2cf;
    font-size: 17px;
}

.login-card {
    width: 100%;
    background: rgba(252,251,249,.98);
    border: 1px solid rgba(216,201,165,.7);
    box-shadow: var(--shadow);
    padding: 42px;
}

.login-card-header h2 {
    margin: 0 0 8px;
    font-size: 30px;
    font-weight: 650;
}

.login-card-header p:not(.eyebrow) {
    margin: 0 0 30px;
    color: var(--secondary);
}

.auth-form {
    display: grid;
    gap: 10px;
}

.auth-form label {
    margin-top: 8px;
    font-size: 13px;
    font-weight: 700;
}

.auth-form input {
    width: 100%;
    min-height: 48px;
    padding: 0 14px;
    color: var(--graphite);
    background: white;
    border: 1px solid #d8d2ca;
    outline: none;
    transition: .18s ease;
}

.auth-form input:focus {
    border-color: var(--gold-deep);
    box-shadow: 0 0 0 3px rgba(196,167,100,.14);
}

.button {
    min-height: 42px;
    padding: 0 18px;
    border: 0;
    cursor: pointer;
    font-weight: 750;
}

.button-primary {
    margin-top: 18px;
    min-height: 50px;
    background: var(--graphite);
    color: white;
}

.button-primary:hover {
    background: #1f1d1e;
}

.button-secondary {
    background: transparent;
    color: var(--graphite);
    border: 1px solid var(--gold-line);
}

.alert {
    padding: 13px 15px;
    margin-bottom: 18px;
    font-size: 13px;
}

.alert-error {
    color: #7c292d;
    background: #fff1f1;
    border: 1px solid #e5b5b7;
}

.login-footer {
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid var(--border);
    color: var(--secondary);
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
}

/* APP */

.app-page {
    min-height: 100vh;
    background: var(--beige);
}

.app-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 260px 1fr;
}

.sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    display: flex;
    flex-direction: column;
    padding: 26px 20px;
    color: white;
    background: var(--graphite);
}

.sidebar-brand {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-bottom: 28px;
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.sidebar-brand strong {
    display: block;
    letter-spacing: .12em;
}

.sidebar-brand span {
    display: block;
    margin-top: 2px;
    color: #aaa3a0;
    font-size: 11px;
}

.sidebar-nav {
    display: grid;
    gap: 5px;
    margin-top: 26px;
}

.nav-section {
    margin: 18px 12px 8px;
    color: #817b78;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .18em;
}

.nav-item {
    min-height: 42px;
    padding: 0 13px;
    display: flex;
    align-items: center;
    gap: 10px;
    color: #d7d2cf;
    text-decoration: none;
    font-size: 13px;
}

.nav-item.active {
    color: white;
    background: rgba(196,167,100,.12);
    border-left: 2px solid var(--gold);
}

.nav-item.disabled {
    color: #716c69;
}

.nav-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--gold);
}

.sidebar-footer {
    margin-top: auto;
    padding: 18px 12px 0;
    border-top: 1px solid rgba(255,255,255,.08);
    display: flex;
    justify-content: space-between;
    color: #8f8986;
    font-size: 10px;
}

.sidebar-footer strong {
    color: #76b58f;
}

.main-area {
    min-width: 0;
}

.topbar {
    min-height: 92px;
    padding: 20px 32px;
    background: var(--warm-white);
    border-bottom: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.topbar h1 {
    margin: 0;
    font-size: 24px;
}

.topbar-user {
    display: flex;
    align-items: center;
    gap: 20px;
}

.user-info {
    text-align: right;
}

.user-info strong,
.user-info span {
    display: block;
}

.user-info strong {
    font-size: 13px;
}

.user-info span {
    margin-top: 2px;
    color: var(--secondary);
    font-size: 11px;
}

.content {
    padding: 32px;
}

.welcome-panel {
    min-height: 180px;
    padding: 32px;
    background: var(--warm-white);
    border: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
}

.welcome-panel h2 {
    margin: 4px 0 10px;
    font-size: 30px;
}

.welcome-panel p:not(.eyebrow) {
    max-width: 650px;
    margin: 0;
    color: var(--secondary);
}

.status-badge,
.status-ok {
    padding: 9px 13px;
    color: var(--success);
    background: #edf7f1;
    border: 1px solid #c9e1d2;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: .1em;
}

.metric-grid {
    margin-top: 22px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.metric-card {
    min-height: 150px;
    padding: 22px;
    background: var(--warm-white);
    border: 1px solid var(--border);
}

.metric-label {
    display: block;
    color: var(--secondary);
    font-size: 12px;
}

.metric-card strong {
    display: block;
    margin: 12px 0 8px;
    font-size: 36px;
    font-weight: 550;
}

.metric-card small {
    color: #9a938f;
}

.panel {
    margin-top: 22px;
    padding: 26px;
    background: var(--warm-white);
    border: 1px solid var(--border);
}

.panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 22px;
}

.panel-header h3 {
    margin: 0;
    font-size: 20px;
}

.system-list {
    border-top: 1px solid var(--border);
}

.system-list > div {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--border);
    font-size: 13px;
}

.system-list span {
    color: var(--secondary);
}

.system-list strong {
    color: var(--success);
    font-size: 12px;
}

@media (max-width: 980px) {
    .login-shell {
        padding: 28px;
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .login-page {
        background: var(--beige);
    }

    .login-brand {
        color: var(--graphite);
    }

    .login-brand .eyebrow {
        color: var(--gold-deep);
    }

    .login-brand .brand-subtitle {
        color: var(--secondary);
    }

    .app-shell {
        grid-template-columns: 1fr;
    }

    .sidebar {
        position: static;
        height: auto;
    }

    .metric-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 620px) {
    .login-shell,
    .content,
    .topbar {
        padding: 20px;
    }

    .login-card {
        padding: 28px 22px;
    }

    .metric-grid {
        grid-template-columns: 1fr;
    }

    .topbar,
    .welcome-panel {
        align-items: flex-start;
        flex-direction: column;
    }

    .topbar-user {
        width: 100%;
        justify-content: space-between;
    }

    .user-info {
        text-align: left;
    }
}

/* CLIENTES / ENTIDADES */

.module-toolbar,
.entity-heading,
.form-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}

.module-toolbar {
    margin-bottom: 22px;
}

.search-form {
    display: flex;
    width: min(640px, 100%);
    gap: 10px;
}

.search-form input {
    flex: 1;
    min-height: 44px;
    padding: 0 14px;
    background: white;
    border: 1px solid var(--border);
    outline: none;
}

.button-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.counter-badge {
    padding: 7px 10px;
    color: var(--secondary);
    background: var(--beige);
    font-size: 11px;
}

.table-wrap {
    width: 100%;
    overflow-x: auto;
}

.data-table {
    width: 100%;
    border-collapse: collapse;
}

.data-table th,
.data-table td {
    padding: 14px 12px;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: middle;
}

.data-table th {
    color: var(--secondary);
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.data-table td {
    font-size: 13px;
}

.data-table td strong,
.data-table td small {
    display: block;
}

.data-table td small {
    margin-top: 3px;
    color: var(--secondary);
}

.table-action {
    text-align: right !important;
}

.table-action a {
    color: var(--gold-deep);
    font-weight: 700;
    text-decoration: none;
}

.mono {
    font-family:
        "SFMono-Regular",
        Consolas,
        "Liberation Mono",
        monospace;
}

.status-pill {
    display: inline-block;
    padding: 5px 8px;
    background: #edf7f1;
    color: var(--success);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}

.empty-state {
    padding: 50px 20px;
    color: var(--secondary);
    text-align: center;
}

.entity-form {
    display: grid;
    gap: 22px;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.form-grid > div {
    display: grid;
    gap: 7px;
}

.field-wide {
    grid-column: 1 / -1;
}

.form-grid label {
    font-size: 12px;
    font-weight: 700;
}

.form-grid input,
.form-grid select,
.form-grid textarea {
    width: 100%;
    padding: 12px 13px;
    color: var(--graphite);
    background: white;
    border: 1px solid #d8d2ca;
    outline: none;
    font: inherit;
}

.form-grid input,
.form-grid select {
    min-height: 46px;
}

.form-grid input:focus,
.form-grid select:focus,
.form-grid textarea:focus {
    border-color: var(--gold-deep);
    box-shadow: 0 0 0 3px rgba(196,167,100,.12);
}

.uppercase {
    text-transform: uppercase;
}

.form-actions {
    justify-content: flex-end;
    padding-bottom: 20px;
}

.entity-heading {
    margin-bottom: 22px;
}

.entity-heading h2 {
    margin: 3px 0 6px;
    font-size: 30px;
}

.entity-heading p:not(.eyebrow) {
    margin: 0;
    color: var(--secondary);
}

.detail-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 22px;
}

.detail-list {
    margin: 0;
}

.detail-list > div {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 16px;
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
}

.detail-list dt {
    color: var(--secondary);
    font-size: 12px;
}

.detail-list dd {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
}

.muted {
    color: var(--secondary);
}

.preserve-lines {
    white-space: pre-line;
}

@media (max-width: 760px) {
    .module-toolbar,
    .entity-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .search-form {
        width: 100%;
    }

    .form-grid,
    .detail-grid {
        grid-template-columns: 1fr;
    }

    .field-wide {
        grid-column: auto;
    }
}

.compact-form {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid var(--border);
    display: grid;
    grid-template-columns: 150px 1fr 1.5fr auto auto;
    gap: 10px;
    align-items: center;
}

.compact-form input,
.compact-form select {
    min-height: 42px;
    padding: 0 11px;
    border: 1px solid var(--border);
    background: white;
}

.check-label {
    display: inline-flex !important;
    grid-template-columns: none !important;
    align-items: center;
    gap: 8px;
    font-size: 12px;
}

.check-label input {
    width: auto !important;
    min-height: auto !important;
}

.inline-form {
    margin-top: 24px;
    padding-top: 22px;
    border-top: 1px solid var(--border);
}

.address-card {
    padding: 14px 0;
    border-bottom: 1px solid var(--border);
}

.address-card p {
    margin: 5px 0 0;
}

@media (max-width: 900px) {
    .compact-form {
        grid-template-columns: 1fr;
    }
}

.entity-actions {
    display: flex;
    gap: 12px;
    align-items: center;
}

.section-link {
    color: var(--gold-deep);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.section-link:hover {
    text-decoration: underline;
}

.inline-primary {
    margin-left: 8px;
    padding: 3px 6px;
    color: var(--success);
    background: #edf7f1;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
}

.address-list {
    display: grid;
    gap: 0;
}

.address-card {
    padding: 16px 0;
    border-bottom: 1px solid var(--border);
}

.address-card:first-child {
    padding-top: 0;
}

.address-card-heading {
    display: flex;
    align-items: center;
    gap: 10px;
}

.address-card p {
    margin: 6px 0 0;
}

.address-reference {
    font-size: 12px;
    font-style: italic;
}

@media (max-width: 700px) {
    .entity-actions {
        width: 100%;
        align-items: stretch;
        flex-direction: column;
    }

    .panel-header {
        align-items: flex-start;
        gap: 12px;
    }
}

.alert-success {
    color: #275c43;
    background: #edf7f1;
    border: 1px solid #c9e1d2;
}

.item-list {
    border-top: 1px solid var(--border);
}

.item-row {
    min-height: 52px;
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.item-main {
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 13px;
}

.item-main > span:first-child {
    min-width: 130px;
    color: var(--secondary);
}

.row-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
}

.row-actions a,
.row-actions button {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--gold-deep);
    font: inherit;
    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

.row-actions button {
    color: #995053;
}

.row-actions form {
    margin: 0;
}

.audit-list {
    border-top: 1px solid var(--border);
}

.audit-row {
    min-height: 58px;
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.audit-row strong,
.audit-row span {
    display: block;
}

.audit-row strong {
    font-size: 13px;
}

.audit-row span {
    margin-top: 3px;
    color: var(--secondary);
    font-size: 11px;
}

.audit-row time {
    color: var(--secondary);
    font-size: 11px;
    white-space: nowrap;
}

/* =========================================================
   EXPEDIENTES
   ========================================================= */

.case-header {
    margin-bottom: 18px;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
}

.case-header h2 {
    margin: 3px 0 8px;
}

.case-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    color: var(--secondary);
    font-size: 12px;
}

.case-meta strong {
    color: var(--text);
}

.case-tabs {
    margin: 0 0 24px;
    border-bottom: 1px solid var(--border);
    display: flex;
    gap: 2px;
    overflow-x: auto;
    scrollbar-width: thin;
}

.case-tab {
    padding: 12px 13px;
    border-bottom: 2px solid transparent;
    color: var(--secondary);
    font-size: 11px;
    font-weight: 800;
    text-decoration: none;
    white-space: nowrap;
}

.case-tab:hover {
    color: var(--text);
}

.case-tab.active {
    border-bottom-color: var(--gold-deep);
    color: var(--gold-deep);
}

.case-summary-grid {
    display: grid;
    grid-template-columns: 1.35fr 1fr 0.8fr;
    gap: 18px;
}

.radication-summary {
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
}

.radication-summary strong,
.radication-summary span {
    display: block;
}

.radication-summary span {
    margin-top: 5px;
    color: var(--secondary);
    font-size: 11px;
}

.metric-stack {
    display: grid;
    gap: 0;
}

.metric-stack > div {
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
}

.metric-stack strong,
.metric-stack span {
    display: block;
}

.metric-stack strong {
    font-size: 22px;
}

.metric-stack span {
    margin-top: 3px;
    color: var(--secondary);
    font-size: 11px;
}

.timeline-list {
    border-top: 1px solid var(--border);
}

.timeline-row {
    padding: 18px 0;
    border-bottom: 1px solid var(--border);
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 22px;
}

.timeline-row time {
    color: var(--secondary);
    font-family: monospace;
    font-size: 12px;
}

.timeline-row strong {
    font-size: 13px;
}

.timeline-row p {
    margin: 6px 0 0;
    color: var(--secondary);
    font-size: 12px;
}

.case-placeholder {
    min-height: 220px;
    display: grid;
    place-items: center;
    text-align: center;
}

.case-placeholder > div {
    max-width: 520px;
}

.empty-state.compact {
    padding: 18px 0;
}

@media (max-width: 1100px) {
    .case-summary-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 760px) {
    .case-header {
        flex-direction: column;
    }

    .case-summary-grid {
        grid-template-columns: 1fr;
    }

    .timeline-row {
        grid-template-columns: 1fr;
        gap: 6px;
    }
}

/* Acuerdos: documento aún no vinculado */
.status-pill.status-pill-unmatched {
    background: #fdecec;
    color: #b42318;
}

/* Estrategia: mantener CTA principal en una sola línea */
.strategy-new-button {
    white-space: nowrap;
}


/* ============================================================
   BLACK 2050 · FASE VISUAL 1
   Shell global / Sidebar / Topbar / Microinteracciones
   ============================================================ */

body.black2050 {
    --b2050-black: #090c11;
    --b2050-black-2: #0f141c;
    --b2050-black-3: #151b24;
    --b2050-panel: #111722;

    --b2050-gold: #c9a95d;
    --b2050-gold-bright: #e2c778;
    --b2050-gold-soft: rgba(201, 169, 93, .16);

    --b2050-ivory: #f7f4ed;
    --b2050-white: #fffefa;

    --b2050-text: #20242b;
    --b2050-muted: #77756f;

    --b2050-green: #70e0a0;
    --b2050-blue: #7bc7ff;

    --b2050-border:
        rgba(201, 169, 93, .22);

    background:
        radial-gradient(
            circle at 85% 4%,
            rgba(201, 169, 93, .08),
            transparent 22%
        ),
        var(--b2050-ivory);
}


body.black2050 .app-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns:
        280px minmax(0, 1fr);
}


/* SIDEBAR */

body.black2050 .sidebar {
    position: sticky;
    top: 0;
    z-index: 30;

    width: auto;
    height: 100vh;

    padding: 0;

    color: #f6f3ea;

    background:
        radial-gradient(
            circle at 0 0,
            rgba(201,169,93,.12),
            transparent 28%
        ),
        linear-gradient(
            180deg,
            #0b0f15 0%,
            #0d1219 52%,
            #080b10 100%
        );

    border-right:
        1px solid rgba(201,169,93,.18);

    box-shadow:
        14px 0 44px rgba(0,0,0,.16);

    overflow: hidden;
}


body.black2050 .sidebar::before {
    content: "";
    position: absolute;
    inset: 0;

    pointer-events: none;

    background-image:
        linear-gradient(
            rgba(255,255,255,.018) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255,255,255,.018) 1px,
            transparent 1px
        );

    background-size: 32px 32px;

    mask-image:
        linear-gradient(
            to bottom,
            rgba(0,0,0,.48),
            transparent 65%
        );
}


body.black2050 .sidebar-brand,
body.black2050 .sidebar-nav,
body.black2050 .sidebar-footer {
    position: relative;
    z-index: 1;
}


body.black2050 .sidebar-brand {
    padding: 24px 20px 18px;

    border-bottom:
        1px solid rgba(255,255,255,.055);
}


body.black2050 .brand-core {
    display: flex;
    align-items: center;
    gap: 14px;

    color: inherit;
    text-decoration: none;
}


body.black2050 .brand-mark.small {
    width: 46px;
    height: 46px;

    flex: 0 0 auto;

    border:
        1px solid var(--b2050-gold);

    color:
        var(--b2050-gold-bright);

    background:
        linear-gradient(
            145deg,
            rgba(201,169,93,.12),
            rgba(255,255,255,.01)
        );

    box-shadow:
        inset 0 0 22px
        rgba(201,169,93,.045);

    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease;
}


body.black2050 .brand-core:hover
.brand-mark.small {
    transform:
        translateY(-2px)
        rotate(2deg);

    border-color:
        var(--b2050-gold-bright);

    box-shadow:
        0 8px 24px rgba(0,0,0,.22),
        inset 0 0 22px rgba(201,169,93,.08);
}


body.black2050 .brand-copy {
    min-width: 0;
}


body.black2050 .brand-copy strong {
    display: block;

    color: #fff;

    font-size: 15px;
    letter-spacing: .18em;
}


body.black2050 .brand-copy span {
    display: block;

    margin-top: 4px;

    color: #7f8793;

    font-size: 8px;
    letter-spacing: .13em;

    white-space: nowrap;
}


body.black2050 .core-line {
    height: 1px;

    margin-top: 18px;

    background:
        rgba(255,255,255,.045);
}


body.black2050 .core-line span {
    display: block;

    width: 34%;
    height: 1px;

    background:
        linear-gradient(
            90deg,
            var(--b2050-gold),
            transparent
        );
}


/* NAVIGATION */

body.black2050 .sidebar-nav {
    display: flex;
    flex-direction: column;

    gap: 5px;

    padding:
        18px 14px 20px;

    margin: 0;

    overflow-y: auto;
}


body.black2050 .nav-section {
    display: block;

    margin:
        17px 10px 8px;

    color: #647081;

    font-size: 9px;
    font-weight: 800;

    letter-spacing: .19em;
}


body.black2050 .nav-item {
    position: relative;

    min-height: 48px;

    display: grid;
    grid-template-columns:
        28px minmax(0, 1fr) auto;

    align-items: center;

    gap: 10px;

    padding:
        0 12px;

    color: #d6dce5;

    background:
        transparent;

    border:
        1px solid transparent;

    border-radius: 9px;

    text-decoration: none;

    cursor: pointer;

    transition:
        transform .16s ease,
        color .16s ease,
        background .16s ease,
        border-color .16s ease,
        box-shadow .16s ease;
}


body.black2050 a.nav-item:hover {
    transform:
        translateX(4px);

    color: #fff;

    background:
        linear-gradient(
            90deg,
            rgba(201,169,93,.12),
            rgba(255,255,255,.025)
        );

    border-color:
        rgba(201,169,93,.18);

    box-shadow:
        inset 3px 0 0
        rgba(201,169,93,.58);
}


body.black2050 .nav-item.active {
    color: #fff;

    background:
        linear-gradient(
            90deg,
            rgba(201,169,93,.20),
            rgba(201,169,93,.055)
        );

    border-color:
        rgba(201,169,93,.36);

    box-shadow:
        inset 3px 0 0
        var(--b2050-gold),
        0 10px 28px rgba(0,0,0,.12);
}


body.black2050 .nav-item.active::before {
    content: "";

    position: absolute;
    left: -15px;

    width: 3px;
    height: 22px;

    border-radius: 0 3px 3px 0;

    background:
        var(--b2050-gold-bright);

    box-shadow:
        0 0 15px
        rgba(226,199,120,.38);
}


body.black2050 .nav-icon {
    width: 25px;
    height: 25px;

    display: grid;
    place-items: center;

    color:
        var(--b2050-gold);
}


body.black2050 .nav-icon svg {
    width: 20px;
    height: 20px;

    fill: none;

    stroke: currentColor;
    stroke-width: 1.6;

    stroke-linecap: round;
    stroke-linejoin: round;

    transition:
        transform .16s ease;
}


body.black2050 a.nav-item:hover
.nav-icon svg {
    transform:
        scale(1.08);
}


body.black2050 .nav-label {
    font-size: 13px;
    font-weight: 650;
}


body.black2050 .nav-signal {
    width: 6px;
    height: 6px;

    border-radius: 50%;

    background:
        rgba(255,255,255,.15);

    transition:
        background .16s ease,
        box-shadow .16s ease;
}


body.black2050 .nav-item.active
.nav-signal {
    background:
        var(--b2050-gold-bright);

    box-shadow:
        0 0 10px
        rgba(226,199,120,.65);
}


body.black2050 .nav-item.disabled {
    color: #59616d;

    cursor: default;

    opacity: .78;
}


body.black2050 .nav-lock {
    color: #59616d;

    font-size: 7px;
    font-weight: 800;

    letter-spacing: .08em;
}


/* SIDEBAR FOOTER */

body.black2050 .sidebar-footer {
    margin-top: auto;

    padding:
        16px 16px 18px;

    border-top:
        1px solid rgba(255,255,255,.055);
}


body.black2050 .core-status {
    display: flex;
    align-items: center;

    gap: 10px;

    padding:
        12px 12px;

    background:
        rgba(255,255,255,.025);

    border:
        1px solid rgba(255,255,255,.065);

    border-radius: 10px;
}


body.black2050 .core-status-dot,
body.black2050 .system-dot {
    width: 8px;
    height: 8px;

    flex: 0 0 auto;

    border-radius: 50%;

    background:
        var(--b2050-green);

    box-shadow:
        0 0 0 4px rgba(112,224,160,.08),
        0 0 14px rgba(112,224,160,.40);
}


body.black2050 .core-status strong {
    display: block;

    color: #eef2f6;

    font-size: 10px;

    letter-spacing: .08em;
}


body.black2050 .core-status span:not(
    .core-status-dot
) {
    display: block;

    margin-top: 2px;

    color: #697482;

    font-size: 8px;

    letter-spacing: .10em;
}


body.black2050 .core-version {
    margin-top: 9px;

    color: #454d58;

    font-size: 7px;

    text-align: center;

    letter-spacing: .12em;
}


/* MAIN AREA */

body.black2050 .main-area {
    min-width: 0;

    background:
        linear-gradient(
            180deg,
            #f9f7f2 0,
            #f5f1e9 100%
        );
}


/* TOPBAR */

body.black2050 .topbar {
    position: sticky;
    top: 0;
    z-index: 25;

    min-height: 82px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 24px;

    padding:
        13px 26px;

    color: #fff;

    background:
        linear-gradient(
            90deg,
            #0f151e,
            #111925
        );

    border-bottom:
        1px solid rgba(201,169,93,.20);

    box-shadow:
        0 12px 32px rgba(10,14,20,.11);
}


body.black2050 .topbar::after {
    content: "";

    position: absolute;

    left: 26px;
    right: 26px;
    bottom: 0;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            rgba(201,169,93,.78),
            transparent 42%
        );

    pointer-events: none;
}


body.black2050 .topbar-command {
    min-width: 0;
}


body.black2050 .command-kicker {
    margin-bottom: 3px;

    color:
        var(--b2050-gold);

    font-size: 8px;
    font-weight: 800;

    letter-spacing: .18em;
}


body.black2050 .command-title {
    color: #fff;

    font-size: 18px;
    font-weight: 750;
}


body.black2050 .command-subtitle {
    max-width: 720px;

    margin-top: 2px;

    color: #7e8997;

    font-size: 10px;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


body.black2050 .topbar-system {
    display: flex;
    align-items: center;

    gap: 10px;

    flex: 0 0 auto;
}


body.black2050 .system-chip {
    min-height: 34px;

    display: flex;
    align-items: center;

    gap: 8px;

    padding:
        0 12px;

    color: #aeb6c0;

    background:
        rgba(0,0,0,.22);

    border:
        1px solid rgba(255,255,255,.07);

    border-radius: 18px;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: .08em;
}


body.black2050 .topbar-user-card {
    min-height: 48px;

    display: flex;
    align-items: center;

    gap: 10px;

    padding:
        6px 12px 6px 7px;

    background:
        rgba(255,255,255,.035);

    border:
        1px solid rgba(255,255,255,.075);

    border-radius: 10px;

    transition:
        transform .16s ease,
        border-color .16s ease,
        background .16s ease;
}


body.black2050 .topbar-user-card:hover {
    transform:
        translateY(-1px);

    background:
        rgba(255,255,255,.052);

    border-color:
        rgba(201,169,93,.24);
}


body.black2050 .user-avatar {
    width: 34px;
    height: 34px;

    display: grid;
    place-items: center;

    border:
        1px solid rgba(201,169,93,.40);

    border-radius: 8px;

    color:
        var(--b2050-gold-bright);

    background:
        rgba(201,169,93,.07);

    font-size: 11px;
    font-weight: 800;
}


body.black2050 .topbar-user
.user-info,
body.black2050 .topbar-user-card
.user-info {
    text-align: left;
}


body.black2050 .topbar-user-card
.user-info strong {
    display: block;

    color: #fff;

    font-size: 10px;
}


body.black2050 .topbar-user-card
.user-info span {
    display: block;

    margin-top: 2px;

    color: #778290;

    font-size: 8px;
}


body.black2050 .logout-form {
    margin: 0;
}


body.black2050 .logout-button {
    width: 42px;
    height: 42px;

    display: grid;
    place-items: center;

    padding: 0;

    color: #8a95a2;

    background:
        rgba(255,255,255,.025);

    border:
        1px solid rgba(255,255,255,.10);

    border-radius: 9px;

    cursor: pointer;

    transition:
        transform .16s ease,
        color .16s ease,
        background .16s ease,
        border-color .16s ease;
}


body.black2050 .logout-button:hover {
    transform:
        translateY(-2px);

    color: #fff;

    background:
        rgba(201,169,93,.10);

    border-color:
        rgba(201,169,93,.42);
}


body.black2050 .logout-button svg {
    width: 18px;
    height: 18px;

    fill: none;

    stroke: currentColor;
    stroke-width: 1.6;

    stroke-linecap: round;
    stroke-linejoin: round;
}


/* CONTENT */

body.black2050 .content {
    padding:
        24px 28px 36px;

    min-width: 0;
}


/* GLOBAL MICROINTERACTIONS */

body.black2050 .button {
    transition:
        transform .16s ease,
        box-shadow .16s ease,
        background .16s ease,
        border-color .16s ease,
        color .16s ease;
}


body.black2050 .button:hover {
    transform:
        translateY(-2px);
}


body.black2050 .button-primary {
    background:
        linear-gradient(
            135deg,
            #11151b,
            #222831
        );

    box-shadow:
        0 8px 20px rgba(16,19,24,.11);
}


body.black2050 .button-primary:hover {
    background:
        linear-gradient(
            135deg,
            #191e25,
            #292f38
        );

    box-shadow:
        0 12px 26px rgba(16,19,24,.16);
}


body.black2050 .button-secondary:hover {
    border-color:
        var(--b2050-gold);

    color:
        #171b21;

    background:
        rgba(201,169,93,.065);
}


body.black2050 .panel {
    box-shadow:
        0 10px 30px rgba(25,27,30,.035);

    transition:
        box-shadow .18s ease,
        border-color .18s ease;
}


body.black2050 .panel:hover {
    border-color:
        rgba(201,169,93,.24);

    box-shadow:
        0 14px 34px rgba(25,27,30,.055);
}


/* CASE TABS */

body.black2050 .case-tabs {
    scrollbar-width: thin;
    scrollbar-color:
        rgba(201,169,93,.45)
        rgba(0,0,0,.04);
}


body.black2050 .case-tab {
    position: relative;

    transition:
        transform .15s ease,
        color .15s ease,
        background .15s ease;
}


body.black2050 .case-tab:hover {
    transform:
        translateY(-2px);

    color:
        #171a20;
}


body.black2050 .case-tab.active {
    color:
        #171a20;
}


body.black2050 .case-tab.active::after {
    box-shadow:
        0 0 12px
        rgba(201,169,93,.25);
}


/* RESPONSIVE */

@media (max-width: 1050px) {

    body.black2050 .app-shell {
        grid-template-columns:
            232px minmax(0, 1fr);
    }

    body.black2050 .brand-copy span {
        display: none;
    }

    body.black2050 .system-chip {
        display: none;
    }
}


@media (max-width: 780px) {

    body.black2050 .app-shell {
        display: block;
    }

    body.black2050 .sidebar {
        position: relative;

        width: 100%;
        height: auto;
    }

    body.black2050 .sidebar-nav {
        display: grid;

        grid-template-columns:
            repeat(2, minmax(0,1fr));
    }

    body.black2050 .nav-section {
        grid-column: 1 / -1;
    }

    body.black2050 .sidebar-footer {
        display: none;
    }

    body.black2050 .topbar {
        position: relative;

        align-items: flex-start;
        flex-direction: column;
    }

    body.black2050 .topbar-system {
        width: 100%;

        justify-content:
            space-between;
    }

    body.black2050 .content {
        padding: 18px;
    }
}

/* ============================================================
   BLACK 2050 · LOGIN
   ============================================================ */

body.black2050-login {
    --login-black: #070a0f;
    --login-black-2: #0c1118;
    --login-black-3: #121923;

    --login-gold: #c9a95d;
    --login-gold-bright: #e5ca7e;

    --login-green: #71e5a3;

    min-height: 100vh;

    color: #eef1f4;

    background:
        radial-gradient(
            circle at 18% 20%,
            rgba(201,169,93,.09),
            transparent 28%
        ),
        radial-gradient(
            circle at 85% 80%,
            rgba(60,86,120,.12),
            transparent 28%
        ),
        #070a0f;

    overflow-x: hidden;
}


body.black2050-login::before {
    content: "";

    position: fixed;
    inset: 0;

    pointer-events: none;

    background:
        linear-gradient(
            115deg,
            transparent 0 48%,
            rgba(201,169,93,.025) 48% 48.15%,
            transparent 48.15% 100%
        );
}


.login2050-shell {
    position: relative;

    z-index: 1;

    min-height: 100vh;

    display: grid;

    grid-template-columns:
        minmax(0, 1.18fr)
        minmax(410px, .82fr);
}


/* IDENTIDAD */

.login2050-identity {
    position: relative;

    min-height: 100vh;

    display: flex;
    flex-direction: column;

    padding:
        34px 46px 28px;

    overflow: hidden;

    border-right:
        1px solid rgba(201,169,93,.17);

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.012),
            rgba(0,0,0,.08)
        );
}


.login2050-grid {
    position: absolute;
    inset: 0;

    pointer-events: none;

    opacity: .44;

    background-image:
        linear-gradient(
            rgba(255,255,255,.022) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255,255,255,.022) 1px,
            transparent 1px
        );

    background-size:
        42px 42px;

    mask-image:
        linear-gradient(
            to bottom right,
            rgba(0,0,0,.95),
            transparent 80%
        );
}


.login2050-brandline,
.login2050-core,
.login2050-status-grid,
.login2050-identity-footer {
    position: relative;
    z-index: 2;
}


.login2050-brandline {
    display: flex;
    align-items: center;

    gap: 13px;
}


.login2050-mini-mark {
    width: 42px;
    height: 42px;

    display: grid;
    place-items: center;

    color:
        var(--login-gold-bright);

    border:
        1px solid var(--login-gold);

    font-family:
        Georgia,
        serif;

    font-size: 23px;

    background:
        rgba(201,169,93,.035);

    box-shadow:
        inset 0 0 18px
        rgba(201,169,93,.05);
}


.login2050-brandline strong {
    display: block;

    color: #fff;

    font-size: 12px;
    letter-spacing: .17em;
}


.login2050-brandline span {
    display: block;

    margin-top: 3px;

    color: #65707d;

    font-size: 7px;

    letter-spacing: .17em;
}


.login2050-core {
    flex: 1;

    display: flex;
    align-items: center;

    gap: clamp(
        28px,
        5vw,
        70px
    );

    padding:
        40px 3vw;
}


.login2050-core-frame {
    position: relative;

    width:
        clamp(180px, 20vw, 290px);

    aspect-ratio: 1;

    flex: 0 0 auto;

    display: grid;
    place-items: center;

    border:
        1px solid rgba(201,169,93,.38);

    transform:
        rotate(45deg);

    background:
        linear-gradient(
            145deg,
            rgba(201,169,93,.035),
            rgba(255,255,255,.01)
        );

    box-shadow:
        0 0 70px rgba(201,169,93,.04),
        inset 0 0 50px rgba(201,169,93,.025);

    overflow: hidden;
}


.login2050-core-frame::before,
.login2050-core-frame::after {
    content: "";

    position: absolute;

    background:
        rgba(201,169,93,.22);
}


.login2050-core-frame::before {
    width: 56%;
    height: 1px;
}


.login2050-core-frame::after {
    width: 1px;
    height: 56%;
}


.login2050-core-frame-inner {
    width: 68%;
    height: 68%;

    display: grid;
    place-items: center;

    border:
        1px solid rgba(201,169,93,.30);

    background:
        rgba(6,8,12,.58);
}


.login2050-monogram {
    transform:
        rotate(-45deg);

    color:
        var(--login-gold-bright);

    font-family:
        Georgia,
        serif;

    font-size:
        clamp(76px, 9vw, 130px);

    line-height: 1;

    text-shadow:
        0 0 42px
        rgba(201,169,93,.12);
}


.login2050-scan {
    position: absolute;

    left: -20%;
    top: -10%;

    width: 140%;
    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(229,202,126,.85),
            transparent
        );

    box-shadow:
        0 0 18px
        rgba(229,202,126,.26);

    animation:
        black2050Scan
        5.8s ease-in-out
        infinite;
}


@keyframes black2050Scan {

    0%,
    15% {
        transform:
            translateY(0);
        opacity: 0;
    }

    25% {
        opacity: .65;
    }

    70% {
        opacity: .55;
    }

    85%,
    100% {
        transform:
            translateY(310px);
        opacity: 0;
    }
}


.login2050-core-copy {
    max-width: 560px;
}


.login2050-kicker {
    margin:
        0 0 10px;

    color:
        var(--login-gold);

    font-size: 9px;
    font-weight: 800;

    letter-spacing: .19em;
}


.login2050-core-copy h1 {
    margin: 0;

    color: #f7f4eb;

    font-family:
        Georgia,
        serif;

    font-size:
        clamp(60px, 8vw, 118px);

    font-weight: 400;

    line-height: .92;

    letter-spacing: .09em;
}


.login2050-subtitle {
    max-width: 500px;

    margin:
        22px 0 0;

    color: #8d96a2;

    font-size: 15px;

    line-height: 1.75;
}


.login2050-status-grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap: 10px;

    margin-top: 20px;
}


.login2050-status {
    min-height: 66px;

    display: flex;
    align-items: center;

    gap: 11px;

    padding:
        12px 14px;

    background:
        rgba(255,255,255,.018);

    border:
        1px solid rgba(255,255,255,.055);

    transition:
        transform .18s ease,
        border-color .18s ease,
        background .18s ease;
}


.login2050-status:hover {
    transform:
        translateY(-2px);

    border-color:
        rgba(201,169,93,.20);

    background:
        rgba(201,169,93,.025);
}


.login2050-status-dot,
.login2050-security-dot {
    width: 7px;
    height: 7px;

    flex: 0 0 auto;

    border-radius: 50%;

    background:
        var(--login-green);

    box-shadow:
        0 0 0 4px
        rgba(113,229,163,.06),
        0 0 14px
        rgba(113,229,163,.36);
}


.login2050-status strong {
    display: block;

    color: #dfe5eb;

    font-size: 8px;

    letter-spacing: .11em;
}


.login2050-status span:not(
    .login2050-status-dot
) {
    display: block;

    margin-top: 4px;

    color: #626d79;

    font-size: 8px;
}


.login2050-identity-footer {
    display: flex;
    justify-content: space-between;

    gap: 20px;

    margin-top: 26px;

    color: #424b56;

    font-size: 7px;

    letter-spacing: .15em;
}


/* ACCESO */

.login2050-access {
    min-height: 100vh;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding:
        36px clamp(32px, 5vw, 78px);

    background:
        linear-gradient(
            180deg,
            #0d1219,
            #090d13
        );
}


.login2050-access-top {
    display: flex;
    align-items: center;

    gap: 9px;

    margin-bottom: 18px;

    color: #687483;

    font-size: 8px;
    font-weight: 800;

    letter-spacing: .15em;
}


.login2050-card {
    width: 100%;

    max-width: 500px;

    margin: auto;

    padding:
        clamp(28px, 4vw, 48px);

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.035),
            rgba(255,255,255,.012)
        );

    border:
        1px solid rgba(201,169,93,.20);

    box-shadow:
        0 34px 90px rgba(0,0,0,.30),
        inset 0 1px 0 rgba(255,255,255,.025);

    position: relative;
}


.login2050-card::before {
    content: "";

    position: absolute;

    top: -1px;
    left: 28px;

    width: 72px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--login-gold-bright),
            transparent
        );
}


.login2050-card-header h2 {
    margin: 0;

    color: #fff;

    font-size:
        clamp(27px, 3vw, 38px);

    line-height: 1.1;
}


.login2050-card-header p:not(
    .login2050-kicker
) {
    margin:
        13px 0 28px;

    color: #707b88;

    font-size: 13px;

    line-height: 1.6;
}


.login2050-form {
    display: grid;

    gap: 20px;
}


.login2050-field {
    display: grid;

    gap: 8px;
}


.login2050-field label {
    color:
        var(--login-gold);

    font-size: 8px;
    font-weight: 800;

    letter-spacing: .16em;
}


.login2050-input-wrap {
    min-height: 54px;

    display: grid;

    grid-template-columns:
        44px minmax(0, 1fr);

    align-items: center;

    background:
        rgba(0,0,0,.24);

    border:
        1px solid rgba(255,255,255,.09);

    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        background .18s ease;
}


.login2050-input-wrap:focus-within {
    border-color:
        rgba(201,169,93,.62);

    background:
        rgba(0,0,0,.34);

    box-shadow:
        0 0 0 3px
        rgba(201,169,93,.055),
        inset 0 0 26px
        rgba(201,169,93,.018);
}


.login2050-field-icon {
    display: grid;
    place-items: center;

    height: 100%;

    color: #596675;

    border-right:
        1px solid rgba(255,255,255,.055);
}


.login2050-field-icon svg,
.login2050-submit svg,
.login2050-security-icon svg {
    width: 18px;
    height: 18px;

    fill: none;

    stroke: currentColor;

    stroke-width: 1.5;

    stroke-linecap: round;
    stroke-linejoin: round;
}


.login2050-input-wrap input {
    width: 100%;

    height: 52px;

    padding:
        0 15px;

    color: #f1f3f5;

    background:
        transparent;

    border: 0;

    outline: 0;

    font-size: 13px;
}


.login2050-input-wrap input::placeholder {
    color: #454f5c;
}


.login2050-input-wrap input:-webkit-autofill,
.login2050-input-wrap input:-webkit-autofill:hover,
.login2050-input-wrap input:-webkit-autofill:focus {
    -webkit-text-fill-color:
        #f1f3f5;

    -webkit-box-shadow:
        0 0 0 1000px
        #0b1017 inset;

    transition:
        background-color 9999s ease-in-out 0s;
}


.login2050-submit {
    min-height: 56px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    margin-top: 7px;

    padding:
        0 20px;

    color: #0b0e12;

    background:
        linear-gradient(
            110deg,
            #bea054,
            #e2c878
        );

    border:
        1px solid #e6ce88;

    cursor: pointer;

    font-size: 12px;
    font-weight: 850;

    letter-spacing: .04em;

    box-shadow:
        0 10px 28px
        rgba(201,169,93,.09);

    transition:
        transform .17s ease,
        box-shadow .17s ease,
        filter .17s ease;
}


.login2050-submit:hover {
    transform:
        translateY(-3px);

    filter:
        brightness(1.045);

    box-shadow:
        0 17px 38px
        rgba(201,169,93,.16);
}


.login2050-submit svg {
    transition:
        transform .17s ease;
}


.login2050-submit:hover svg {
    transform:
        translateX(4px);
}


.login2050-security-note {
    display: flex;
    align-items: center;

    gap: 12px;

    margin-top: 28px;

    padding-top: 22px;

    border-top:
        1px solid rgba(255,255,255,.055);
}


.login2050-security-icon {
    width: 34px;
    height: 34px;

    flex: 0 0 auto;

    display: grid;
    place-items: center;

    color:
        var(--login-gold);

    background:
        rgba(201,169,93,.045);

    border:
        1px solid rgba(201,169,93,.16);
}


.login2050-security-note strong {
    display: block;

    color: #c9cfd6;

    font-size: 8px;

    letter-spacing: .11em;
}


.login2050-security-note span {
    display: block;

    margin-top: 4px;

    color: #59636f;

    font-size: 8px;

    line-height: 1.5;
}


.login2050-error {
    color: #ffb8b8;

    background:
        rgba(150,30,35,.12);

    border:
        1px solid rgba(210,73,78,.32);
}


.login2050-access-footer {
    width: 100%;

    max-width: 500px;

    display: flex;
    justify-content: space-between;

    gap: 20px;

    margin:
        18px auto 0;

    color: #3f4853;

    font-size: 7px;

    letter-spacing: .11em;
}


/* RESPONSIVE LOGIN */

@media (max-width: 980px) {

    .login2050-shell {
        grid-template-columns:
            1fr;
    }

    .login2050-identity {
        min-height: auto;

        padding-bottom: 34px;

        border-right: 0;

        border-bottom:
            1px solid rgba(201,169,93,.16);
    }

    .login2050-core {
        min-height: 430px;
    }

    .login2050-access {
        min-height: auto;

        padding-top: 60px;
        padding-bottom: 60px;
    }
}


@media (max-width: 680px) {

    .login2050-identity {
        padding:
            24px 20px;
    }

    .login2050-core {
        min-height: auto;

        flex-direction: column;

        text-align: center;

        padding:
            70px 0 45px;
    }

    .login2050-core-frame {
        width: 190px;
    }

    .login2050-subtitle {
        font-size: 13px;
    }

    .login2050-status-grid {
        grid-template-columns:
            1fr;
    }

    .login2050-identity-footer {
        flex-direction: column;

        text-align: center;
    }

    .login2050-access {
        padding:
            44px 20px;
    }

    .login2050-card {
        padding:
            30px 22px;
    }

    .login2050-access-footer {
        flex-direction: column;

        text-align: center;
    }
}


@media (
    prefers-reduced-motion: reduce
) {

    .login2050-scan {
        animation: none;
        display: none;
    }

    .login2050-submit,
    .login2050-status {
        transition: none;
    }
}

/* ============================================================
   FIN BLACK 2050 · LOGIN
   ============================================================ */


/* ============================================================
   BLACK 2050 · DASHBOARD COMMAND CENTER
   ============================================================ */

.command-hero {
    min-height: 142px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 30px;

    padding:
        26px 30px;

    margin-bottom: 18px;

    color: #eef1f4;

    background:
        radial-gradient(
            circle at 90% 10%,
            rgba(201,169,93,.13),
            transparent 28%
        ),
        linear-gradient(
            110deg,
            #0e141d,
            #121a25
        );

    border:
        1px solid rgba(201,169,93,.20);

    box-shadow:
        0 18px 42px rgba(13,17,23,.10);
}


.command-hero-kicker {
    margin-bottom: 6px;

    color:
        var(--b2050-gold);

    font-size: 9px;
    font-weight: 850;

    letter-spacing: .19em;
}


.command-hero h2 {
    margin: 0;

    color: #fff;

    font-size:
        clamp(28px, 3vw, 38px);

    line-height: 1.05;
}


.command-hero p {
    max-width: 690px;

    margin:
        10px 0 0;

    color: #85909d;

    font-size: 13px;
}


.command-session {
    min-width: 205px;

    display: flex;
    align-items: center;

    gap: 12px;

    padding:
        13px 16px;

    background:
        rgba(0,0,0,.20);

    border:
        1px solid rgba(255,255,255,.07);
}


.command-session-dot {
    width: 9px;
    height: 9px;

    border-radius: 50%;

    background:
        var(--b2050-green);

    box-shadow:
        0 0 0 5px rgba(112,224,160,.07),
        0 0 14px rgba(112,224,160,.35);
}


.command-session strong {
    display: block;

    color: #e8edf2;

    font-size: 9px;

    letter-spacing: .08em;
}


.command-session span:not(
    .command-session-dot
) {
    display: block;

    margin-top: 3px;

    color: #697584;

    font-size: 8px;
}


/* METRICS */

.command-metrics {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0,1fr));

    gap: 16px;

    margin-bottom: 18px;
}


.command-metric-card {
    position: relative;

    min-height: 166px;

    padding:
        20px 20px 17px;

    background:
        rgba(255,255,255,.82);

    border:
        1px solid rgba(201,169,93,.20);

    box-shadow:
        0 9px 26px rgba(24,25,28,.035);

    overflow: hidden;

    transition:
        transform .17s ease,
        border-color .17s ease,
        box-shadow .17s ease;
}


.command-metric-card::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 38%;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--b2050-gold),
            transparent
        );
}


.command-metric-card:hover {
    transform:
        translateY(-5px);

    border-color:
        rgba(201,169,93,.46);

    box-shadow:
        0 18px 38px rgba(24,25,28,.075);
}


.command-metric-card.attention::before {
    background:
        linear-gradient(
            90deg,
            #bc4a4e,
            transparent
        );
}


.command-metric-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 14px;
}


.command-metric-top > span {
    max-width: 135px;

    color: #62666c;

    font-size: 9px;
    font-weight: 850;

    letter-spacing: .11em;

    line-height: 1.45;
}


.command-metric-icon {
    width: 38px;
    height: 38px;

    display: grid;
    place-items: center;

    flex: 0 0 auto;

    color:
        var(--b2050-gold);

    background:
        rgba(201,169,93,.07);

    border:
        1px solid rgba(201,169,93,.17);
}


.command-metric-icon svg {
    width: 19px;
    height: 19px;

    fill: none;

    stroke: currentColor;
    stroke-width: 1.55;

    stroke-linecap: round;
    stroke-linejoin: round;
}


.command-metric-card > strong {
    display: block;

    margin-top: 13px;

    color: #171b22;

    font-size: 38px;

    line-height: 1;
}


.command-metric-card footer {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 10px;

    margin-top: 15px;

    color: #777b80;

    font-size: 8px;
}


.command-metric-card footer b {
    color: #3e775b;

    font-size: 7px;

    letter-spacing: .06em;
}


.command-metric-card.attention footer b {
    color: #b13b40;
}


/* MAIN PANELS */

.command-grid-main {
    display: grid;

    grid-template-columns:
        minmax(0, 1.55fr)
        minmax(310px, .75fr);

    gap: 18px;

    margin-bottom: 18px;
}


.command-grid-secondary {
    display: grid;

    grid-template-columns:
        minmax(0, 1.2fr)
        minmax(300px, .8fr);

    gap: 18px;
}


.command-panel {
    background:
        rgba(255,255,255,.80);

    border:
        1px solid rgba(201,169,93,.18);

    box-shadow:
        0 10px 30px rgba(24,25,28,.035);

    transition:
        border-color .17s ease,
        box-shadow .17s ease;
}


.command-panel:hover {
    border-color:
        rgba(201,169,93,.32);

    box-shadow:
        0 15px 38px rgba(24,25,28,.06);
}


.command-panel-header {
    min-height: 86px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 18px;

    padding:
        18px 20px;

    border-bottom:
        1px solid #e7e1d7;
}


.command-panel-header h3 {
    margin:
        2px 0 4px;

    font-size: 17px;
}


.command-panel-header > div > span {
    color: #82817d;

    font-size: 10px;
}


.command-link {
    color:
        var(--gold-deep);

    font-size: 9px;
    font-weight: 800;

    text-decoration: none;

    white-space: nowrap;

    transition:
        transform .15s ease,
        color .15s ease;
}


.command-link:hover {
    transform:
        translateX(3px);

    color: #84651e;
}


/* CASE LIST */

.command-case-list {
    padding: 4px 18px 14px;
}


.command-case {
    min-height: 78px;

    display: grid;

    grid-template-columns:
        100px minmax(0,1fr) 92px 24px;

    align-items: center;

    gap: 13px;

    padding:
        11px 6px;

    color: inherit;

    border-bottom:
        1px solid #ece7df;

    text-decoration: none;

    transition:
        transform .15s ease,
        background .15s ease,
        padding .15s ease;
}


.command-case:hover {
    transform:
        translateX(4px);

    padding-left: 10px;

    background:
        linear-gradient(
            90deg,
            rgba(201,169,93,.055),
            transparent
        );
}


.command-case-code {
    color:
        var(--gold-deep);

    font-size: 9px;
    font-weight: 850;

    letter-spacing: .08em;
}


.command-case-main strong {
    display: block;

    color: #2d3035;

    font-size: 11px;
}


.command-case-main span {
    display: block;

    margin-top: 5px;

    color: #85827e;

    font-size: 9px;
}


.command-case-status {
    text-align: right;
}


.command-case-status small {
    display: block;

    margin-top: 5px;

    color: #9a7950;

    font-size: 7px;
}


.command-case-arrow {
    color:
        var(--gold-deep);

    font-size: 17px;

    transition:
        transform .15s ease;
}


.command-case:hover
.command-case-arrow {
    transform:
        translateX(4px);
}


/* INTELLIGENCE */

.command-intel-list {
    padding:
        8px 18px 14px;
}


.command-intel-row {
    min-height: 76px;

    display: grid;

    grid-template-columns:
        9px minmax(0,1fr) auto;

    align-items: center;

    gap: 12px;

    border-bottom:
        1px solid #ece7df;
}


.command-intel-signal {
    width: 7px;
    height: 7px;

    border-radius: 50%;

    background:
        var(--b2050-green);

    box-shadow:
        0 0 10px
        rgba(112,224,160,.27);
}


.command-intel-signal.gold {
    background:
        var(--b2050-gold);

    box-shadow:
        0 0 10px
        rgba(201,169,93,.28);
}


.command-intel-row strong {
    display: block;

    color: #35383d;

    font-size: 10px;
}


.command-intel-row span:not(
    .command-intel-signal
) {
    display: block;

    margin-top: 4px;

    color: #8b8984;

    font-size: 8px;

    line-height: 1.45;
}


.command-intel-row b {
    color: #23272d;

    font-size: 22px;
}


/* SYSTEM */

.command-online {
    padding:
        6px 10px;

    color: #376e51;

    background:
        #edf7f1;

    border:
        1px solid #bcdac9;

    font-size: 8px;
    font-weight: 800;

    letter-spacing: .05em;
}


.command-system-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0,1fr));

    gap: 0;

    padding:
        8px 18px 18px;
}


.command-system-grid > div {
    min-height: 68px;

    display: flex;
    align-items: center;

    gap: 12px;

    padding:
        13px 8px;

    border-bottom:
        1px solid #eee8df;
}


.command-system-grid strong {
    display: block;

    color: #57595d;

    font-size: 9px;
}


.command-system-grid small {
    display: block;

    margin-top: 4px;

    color: #3d7a58;

    font-size: 7px;

    font-weight: 800;

    letter-spacing: .05em;
}


/* WATCH */

.command-watch-main {
    display: flex;
    align-items: center;

    gap: 22px;

    padding:
        25px 22px;
}


.command-watch-main > strong {
    min-width: 72px;

    color: #b13d42;

    font-size: 48px;

    line-height: 1;
}


.command-watch-main span {
    display: block;

    color: #494c51;

    font-size: 11px;

    font-weight: 700;
}


.command-watch-main small {
    display: block;

    margin-top: 7px;

    color: #8b8883;

    font-size: 9px;
}


.command-watch-action {
    min-height: 52px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 16px;

    padding:
        0 22px;

    color: #ece8de;

    background:
        linear-gradient(
            90deg,
            #151a21,
            #20262e
        );

    text-decoration: none;

    font-size: 10px;
    font-weight: 750;

    transition:
        background .16s ease,
        padding .16s ease;
}


.command-watch-action:hover {
    padding-left: 26px;

    background:
        linear-gradient(
            90deg,
            #1b2028,
            #282f38
        );
}


.command-empty {
    padding: 50px;

    color: #8b8883;

    text-align: center;
}


/* RESPONSIVE DASHBOARD */

@media (max-width: 1150px) {

    .command-metrics {
        grid-template-columns:
            repeat(2, minmax(0,1fr));
    }

    .command-grid-main,
    .command-grid-secondary {
        grid-template-columns: 1fr;
    }
}


@media (max-width: 720px) {

    .command-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .command-session {
        width: 100%;
    }

    .command-metrics {
        grid-template-columns: 1fr;
    }

    .command-case {
        grid-template-columns:
            1fr auto;
    }

    .command-case-code,
    .command-case-main {
        grid-column: 1;
    }

    .command-case-status,
    .command-case-arrow {
        grid-column: 2;
    }

    .command-system-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   FIN BLACK 2050 · DASHBOARD
   ============================================================ */


/* ============================================================
   BLACK 2050 · CASO MAESTRO / COMMAND HEADER
   ============================================================ */

body.black2050 .case-command-header {
    position: relative;

    margin-bottom: 14px;

    color: #f3f1e9;

    background:
        radial-gradient(
            circle at 92% 14%,
            rgba(201,169,93,.12),
            transparent 25%
        ),
        linear-gradient(
            110deg,
            #101620,
            #151d28
        );

    border:
        1px solid rgba(201,169,93,.20);

    box-shadow:
        0 16px 42px
        rgba(12,16,22,.10);

    overflow: hidden;
}


body.black2050
.case-command-header::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 160px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--b2050-gold-bright),
            transparent
        );
}


body.black2050
.case-command-main {
    padding:
        23px 26px 0;
}


body.black2050
.case-command-kicker {
    display: flex;
    align-items: center;

    gap: 9px;

    margin-bottom: 10px;

    color:
        var(--b2050-gold);

    font-size: 8px;
    font-weight: 850;

    letter-spacing: .18em;
}


body.black2050
.case-command-line {
    width: 24px;
    height: 1px;

    background:
        var(--b2050-gold);
}


body.black2050
.case-command-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 28px;
}


body.black2050
.case-command-title-row h2 {
    max-width: 830px;

    margin: 0;

    color: #fff;

    font-size:
        clamp(23px, 2.5vw, 34px);

    line-height: 1.12;
}


body.black2050
.case-command-identifiers {
    display: flex;
    flex-wrap: wrap;

    gap: 7px;

    margin-top: 15px;
}


body.black2050
.case-chip {
    min-height: 27px;

    display: inline-flex;
    align-items: center;

    gap: 6px;

    padding:
        0 9px;

    color: #aab3bd;

    background:
        rgba(255,255,255,.025);

    border:
        1px solid rgba(255,255,255,.08);

    font-size: 7px;
    font-weight: 800;

    letter-spacing: .07em;
}


body.black2050
.case-chip-gold {
    color:
        var(--b2050-gold-bright);

    background:
        rgba(201,169,93,.065);

    border-color:
        rgba(201,169,93,.28);
}


body.black2050
.case-chip-success {
    color: #8ee3b1;

    border-color:
        rgba(112,224,160,.20);
}


body.black2050
.case-chip-priority {
    color: #efbd83;

    border-color:
        rgba(216,144,77,.24);
}


body.black2050
.case-chip-online {
    color: #8de2b0;
}


body.black2050
.case-chip-muted {
    color: #737c88;
}


body.black2050
.case-chip-dot {
    width: 6px;
    height: 6px;

    border-radius: 50%;

    background:
        currentColor;

    box-shadow:
        0 0 10px currentColor;
}


body.black2050
.case-command-actions {
    display: flex;

    gap: 10px;

    flex: 0 0 auto;
}


body.black2050
.case-command-actions .button {
    margin-top: 0;

    min-height: 44px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 15px;
}


body.black2050
.case-command-actions
.button-primary {
    color: #12161c;

    background:
        linear-gradient(
            110deg,
            #c3a557,
            #e0c478
        );

    border:
        1px solid #dfc77f;
}


body.black2050
.case-command-actions
.button-primary:hover {
    background:
        linear-gradient(
            110deg,
            #cfb15f,
            #ead083
        );
}


body.black2050
.case-action-arrow {
    font-size: 15px;

    transition:
        transform .15s ease;
}


body.black2050
.case-command-actions
.button-primary:hover
.case-action-arrow {
    transform:
        translateY(-3px);
}


/* META RAIL */

body.black2050
.case-command-meta {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0,1fr));

    margin-top: 22px;

    border-top:
        1px solid rgba(255,255,255,.06);
}


body.black2050
.case-command-meta > div {
    min-height: 64px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding:
        10px 18px 10px 0;

    border-right:
        1px solid rgba(255,255,255,.05);
}


body.black2050
.case-command-meta > div:not(
    :first-child
) {
    padding-left: 18px;
}


body.black2050
.case-command-meta > div:last-child {
    border-right: 0;
}


body.black2050
.case-command-meta span {
    color: #697482;

    font-size: 7px;
    font-weight: 800;

    letter-spacing: .14em;
}


body.black2050
.case-command-meta strong {
    margin-top: 5px;

    color: #d8dde3;

    font-size: 10px;
    font-weight: 650;

    overflow: hidden;

    text-overflow: ellipsis;

    white-space: nowrap;
}


body.black2050
.case-command-meta
.case-priority-value {
    color:
        var(--b2050-gold-bright);
}


/* COMMAND TABS */

body.black2050
.case-command-tabs {
    position: relative;

    display: flex;

    gap: 4px;

    margin:
        0 0 20px;

    padding:
        7px;

    background:
        rgba(13,18,25,.96);

    border:
        1px solid rgba(201,169,93,.14);

    overflow-x: auto;

    box-shadow:
        0 10px 26px rgba(12,16,22,.055);
}


body.black2050
.case-command-tabs
.case-tab {
    position: relative;

    min-height: 48px;

    display: grid;

    grid-template-columns:
        auto auto auto;

    align-items: center;

    gap: 8px;

    padding:
        0 11px;

    color: #788391;

    background:
        transparent;

    border:
        1px solid transparent;

    text-decoration: none;

    transition:
        transform .15s ease,
        color .15s ease,
        background .15s ease,
        border-color .15s ease;
}


body.black2050
.case-command-tabs
.case-tab::after {
    display: none;
}


body.black2050
.case-tab-code {
    color: #4f5966;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace;

    font-size: 7px;

    letter-spacing: .06em;

    transition:
        color .15s ease;
}


body.black2050
.case-tab-label {
    font-size: 9px;
    font-weight: 750;

    white-space: nowrap;
}


body.black2050
.case-tab-signal {
    width: 5px;
    height: 5px;

    border-radius: 50%;

    background:
        rgba(255,255,255,.10);
}


body.black2050
.case-command-tabs
.case-tab:hover {
    transform:
        translateY(-2px);

    color: #e8ebef;

    background:
        rgba(255,255,255,.025);

    border-color:
        rgba(201,169,93,.13);
}


body.black2050
.case-command-tabs
.case-tab:hover
.case-tab-code {
    color:
        var(--b2050-gold);
}


body.black2050
.case-command-tabs
.case-tab.active {
    color: #fff;

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.17),
            rgba(201,169,93,.05)
        );

    border-color:
        rgba(201,169,93,.34);

    box-shadow:
        inset 0 -2px 0
        var(--b2050-gold);
}


body.black2050
.case-command-tabs
.case-tab.active
.case-tab-code {
    color:
        var(--b2050-gold-bright);
}


body.black2050
.case-command-tabs
.case-tab.active
.case-tab-signal {
    background:
        var(--b2050-gold-bright);

    box-shadow:
        0 0 10px
        rgba(226,199,120,.55);
}


/* RESPONSIVE CASE COMMAND */

@media (max-width: 1050px) {

    body.black2050
    .case-command-title-row {
        flex-direction: column;
    }

    body.black2050
    .case-command-actions {
        width: 100%;
    }

    body.black2050
    .case-command-meta {
        grid-template-columns:
            repeat(2, minmax(0,1fr));
    }
}


@media (max-width: 680px) {

    body.black2050
    .case-command-main {
        padding:
            19px 18px 0;
    }

    body.black2050
    .case-command-actions {
        flex-direction: column;
    }

    body.black2050
    .case-command-actions
    .button {
        width: 100%;
    }

    body.black2050
    .case-command-meta {
        grid-template-columns: 1fr;
    }

    body.black2050
    .case-command-meta > div,
    body.black2050
    .case-command-meta > div:not(
        :first-child
    ) {
        padding-left: 0;

        border-right: 0;

        border-bottom:
            1px solid rgba(255,255,255,.05);
    }
}

/* ============================================================
   FIN BLACK 2050 · CASO MAESTRO
   ============================================================ */

/* Caso Maestro: acción secundaria sobre cabecera táctica */
body.black2050
.case-command-actions
.button-secondary {
    color: #d9dde2;

    background:
        rgba(255,255,255,.025);

    border-color:
        rgba(201,169,93,.34);
}

body.black2050
.case-command-actions
.button-secondary:hover {
    color: #fff;

    background:
        rgba(201,169,93,.09);

    border-color:
        rgba(226,199,120,.60);
}


/* ============================================================
   BLACK 2050 · REPOSITORIO DOCUMENTAL
   ============================================================ */

body.black2050 .document-command {
    margin-bottom: 18px;

    background:
        linear-gradient(
            110deg,
            #101620,
            #171f29
        );

    border:
        1px solid rgba(201,169,93,.18);

    box-shadow:
        0 14px 34px rgba(14,17,22,.08);
}


body.black2050 .document-command-header {
    min-height: 110px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 24px;

    padding:
        22px 26px;

    border-bottom:
        1px solid rgba(255,255,255,.055);
}


body.black2050
.document-command-header h3 {
    margin: 2px 0 6px;

    color: #fff;

    font-size: 21px;
}


body.black2050
.document-command-header p:not(.eyebrow) {
    margin: 0;

    color: #788492;

    font-size: 10px;
}


body.black2050
.document-command-upload {
    margin-top: 0;

    white-space: nowrap;

    color: #11151a;

    background:
        linear-gradient(
            110deg,
            #c4a75b,
            #e1c77d
        );
}


body.black2050
.document-command-metrics {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0,1fr));
}


body.black2050
.document-command-metrics article {
    min-height: 94px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding:
        15px 25px;

    border-right:
        1px solid rgba(255,255,255,.055);
}


body.black2050
.document-command-metrics article:last-child {
    border-right: 0;
}


body.black2050
.document-command-metrics span {
    color: #66717e;

    font-size: 7px;
    font-weight: 800;

    letter-spacing: .14em;
}


body.black2050
.document-command-metrics strong {
    margin-top: 5px;

    color: #f4f2eb;

    font-size: 27px;

    line-height: 1;
}


body.black2050
.document-command-metrics small {
    margin-top: 6px;

    color: #59636e;

    font-size: 8px;
}


body.black2050
.document-command-metrics
.document-metric-pending strong {
    color: #d7af60;
}


/* VAULT */

body.black2050 .document-vault {
    background:
        rgba(255,255,255,.82);

    border:
        1px solid rgba(201,169,93,.18);

    box-shadow:
        0 11px 32px rgba(24,25,28,.04);
}


body.black2050
.document-vault-heading {
    min-height: 82px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    padding:
        18px 24px;

    border-bottom:
        1px solid #e6dfd5;
}


body.black2050
.document-vault-heading h3 {
    margin: 2px 0 0;

    font-size: 18px;
}


body.black2050
.document-vault-count {
    color: #8a6c29;

    font-size: 8px;
    font-weight: 800;

    letter-spacing: .10em;
}


body.black2050
.document-vault-list {
    padding:
        8px 18px 18px;
}


body.black2050
.document-vault-card {
    position: relative;

    min-height: 150px;

    display: grid;

    grid-template-columns:
        118px minmax(0,1fr) 96px;

    gap: 18px;

    align-items: stretch;

    margin-top: 10px;

    background:
        #fff;

    border:
        1px solid #e7e0d6;

    transition:
        transform .17s ease,
        border-color .17s ease,
        box-shadow .17s ease;
}


body.black2050
.document-vault-card:hover {
    transform:
        translateY(-3px);

    border-color:
        rgba(201,169,93,.48);

    box-shadow:
        0 14px 32px rgba(28,29,31,.07);
}


body.black2050
.document-vault-card::before {
    content: "";

    position: absolute;

    top: -1px;
    left: -1px;

    width: 82px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--b2050-gold),
            transparent
        );
}


body.black2050
.document-vault-type {
    display: flex;
    flex-direction: column;
    justify-content: center;

    padding:
        18px;

    background:
        linear-gradient(
            180deg,
            rgba(201,169,93,.07),
            rgba(201,169,93,.018)
        );

    border-right:
        1px solid #ece6dd;
}


body.black2050
.document-vault-type span {
    color: #826620;

    font-size: 8px;
    font-weight: 850;

    letter-spacing: .08em;
}


body.black2050
.document-vault-type time {
    margin-top: 8px;

    color: #696d72;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace;

    font-size: 9px;
}


body.black2050
.document-vault-main {
    min-width: 0;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding:
        17px 0;
}


body.black2050
.document-index {
    color: #b08c38;

    font-size: 7px;
    font-weight: 850;

    letter-spacing: .10em;
}


body.black2050
.document-vault-title h4 {
    margin:
        5px 0 4px;

    color: #262a30;

    font-size: 13px;
}


body.black2050
.document-vault-title p {
    margin: 0;

    color: #8a8782;

    font-size: 9px;
}


body.black2050
.document-vault-data {
    display: grid;

    grid-template-columns:
        1.1fr .8fr .8fr 1.45fr;

    gap: 18px;

    margin-top: 18px;

    padding-top: 14px;

    border-top:
        1px solid #ece7df;
}


body.black2050
.document-vault-data > div {
    min-width: 0;
}


body.black2050
.document-data-label {
    display: block;

    margin-bottom: 6px;

    color: #99948b;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .14em;
}


body.black2050
.document-vault-data code {
    display: block;

    color: #555b62;

    font-size: 8px;

    overflow: hidden;
    text-overflow: ellipsis;
}


body.black2050
.document-vault-data strong {
    display: block;

    color: #4e5358;

    font-size: 9px;
}


body.black2050
.document-vault-data small {
    display: block;

    margin-top: 5px;

    color: #99958e;

    font-size: 7px;

    line-height: 1.35;
}


body.black2050
.document-integrity-ok,
body.black2050
.document-state-ok {
    color: #377654 !important;
}


body.black2050
.document-state-pending {
    color: #af8222 !important;
}


body.black2050
.document-state-alert {
    color: #b33d42 !important;
}


body.black2050
.document-vault-actions {
    display: flex;
    align-items: stretch;

    border-left:
        1px solid #ece6dd;
}


body.black2050
.document-open-action {
    width: 100%;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 10px;

    color: #30343a;

    text-decoration: none;

    font-size: 10px;
    font-weight: 800;

    transition:
        color .16s ease,
        background .16s ease;
}


body.black2050
.document-open-action span {
    color:
        var(--gold-deep);

    font-size: 17px;

    transition:
        transform .16s ease;
}


body.black2050
.document-open-action:hover {
    color: #11151a;

    background:
        rgba(201,169,93,.065);
}


body.black2050
.document-open-action:hover span {
    transform:
        translateX(4px);
}


@media (max-width: 1100px) {

    body.black2050
    .document-command-metrics {
        grid-template-columns:
            repeat(2, minmax(0,1fr));
    }

    body.black2050
    .document-vault-data {
        grid-template-columns:
            repeat(2, minmax(0,1fr));
    }
}


@media (max-width: 760px) {

    body.black2050
    .document-command-header {
        align-items: flex-start;
        flex-direction: column;
    }

    body.black2050
    .document-command-upload {
        width: 100%;
    }

    body.black2050
    .document-command-metrics {
        grid-template-columns: 1fr;
    }

    body.black2050
    .document-vault-card {
        grid-template-columns: 1fr;
    }

    body.black2050
    .document-vault-type,
    body.black2050
    .document-vault-actions {
        border: 0;
    }

    body.black2050
    .document-vault-main {
        padding:
            0 18px 18px;
    }

    body.black2050
    .document-vault-data {
        grid-template-columns: 1fr;
    }

    body.black2050
    .document-open-action {
        min-height: 54px;

        flex-direction: row;

        border-top:
            1px solid #ece6dd;
    }
}

/* ============================================================
   FIN BLACK 2050 · REPOSITORIO DOCUMENTAL
   ============================================================ */

/* ============================================================
   BLACK 2050 · MÉTRICAS DOCUMENTALES ILUMINADAS
   ============================================================ */

body.black2050
.document-command-metrics article {
    position: relative;

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.075),
            rgba(201,169,93,.018)
        );

    border-top:
        1px solid rgba(201,169,93,.22);

    border-right:
        1px solid rgba(201,169,93,.14);

    box-shadow:
        inset 0 0 24px rgba(201,169,93,.025);

    transition:
        transform .16s ease,
        background .16s ease,
        border-color .16s ease,
        box-shadow .16s ease;
}


body.black2050
.document-command-metrics article::before {
    content: "";

    position: absolute;

    top: -1px;
    left: 24px;

    width: 46px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--b2050-gold-bright),
            transparent
        );

    box-shadow:
        0 0 12px rgba(226,199,120,.22);
}


body.black2050
.document-command-metrics article:hover {
    transform:
        translateY(-3px);

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.13),
            rgba(201,169,93,.035)
        );

    border-color:
        rgba(226,199,120,.35);

    box-shadow:
        inset 0 0 30px rgba(201,169,93,.045),
        0 10px 24px rgba(0,0,0,.10);
}


body.black2050
.document-command-metrics article strong {
    color:
        #fff7df;

    text-shadow:
        0 0 16px rgba(226,199,120,.16);
}


body.black2050
.document-command-metrics article span {
    color:
        #a9976f;
}


body.black2050
.document-command-metrics article small {
    color:
        #77818d;
}


/* Pendiente de extracción: señal ámbar específica */

body.black2050
.document-command-metrics
.document-metric-pending {
    background:
        linear-gradient(
            135deg,
            rgba(188,139,42,.10),
            rgba(188,139,42,.022)
        );

    border-top-color:
        rgba(214,163,55,.36);
}


body.black2050
.document-command-metrics
.document-metric-pending::before {
    background:
        linear-gradient(
            90deg,
            #e0ad45,
            transparent
        );

    box-shadow:
        0 0 13px rgba(224,173,69,.28);
}


body.black2050
.document-command-metrics
.document-metric-pending strong {
    color:
        #e5b552;

    text-shadow:
        0 0 15px rgba(224,173,69,.22);
}

/* ============================================================
   BLACK 2050 · MÉTRICAS DOCUMENTALES ILUMINADAS
   ============================================================ */

body.black2050
.document-command-metrics article {
    position: relative;

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.075),
            rgba(201,169,93,.018)
        );

    border-top:
        1px solid rgba(201,169,93,.22);

    border-right:
        1px solid rgba(201,169,93,.14);

    box-shadow:
        inset 0 0 24px rgba(201,169,93,.025);

    transition:
        transform .16s ease,
        background .16s ease,
        border-color .16s ease,
        box-shadow .16s ease;
}


body.black2050
.document-command-metrics article::before {
    content: "";

    position: absolute;

    top: -1px;
    left: 24px;

    width: 46px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--b2050-gold-bright),
            transparent
        );

    box-shadow:
        0 0 12px rgba(226,199,120,.22);
}


body.black2050
.document-command-metrics article:hover {
    transform:
        translateY(-3px);

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.13),
            rgba(201,169,93,.035)
        );

    border-color:
        rgba(226,199,120,.35);

    box-shadow:
        inset 0 0 30px rgba(201,169,93,.045),
        0 10px 24px rgba(0,0,0,.10);
}


body.black2050
.document-command-metrics article strong {
    color:
        #fff7df;

    text-shadow:
        0 0 16px rgba(226,199,120,.16);
}


body.black2050
.document-command-metrics article span {
    color:
        #a9976f;
}


body.black2050
.document-command-metrics article small {
    color:
        #77818d;
}


/* Pendiente de extracción: señal ámbar específica */

body.black2050
.document-command-metrics
.document-metric-pending {
    background:
        linear-gradient(
            135deg,
            rgba(188,139,42,.10),
            rgba(188,139,42,.022)
        );

    border-top-color:
        rgba(214,163,55,.36);
}


body.black2050
.document-command-metrics
.document-metric-pending::before {
    background:
        linear-gradient(
            90deg,
            #e0ad45,
            transparent
        );

    box-shadow:
        0 0 13px rgba(224,173,69,.28);
}


body.black2050
.document-command-metrics
.document-metric-pending strong {
    color:
        #e5b552;

    text-shadow:
        0 0 15px rgba(224,173,69,.22);
}


/* ============================================================
   BLACK 2050 · CONSOLA DE ACUERDOS
   ============================================================ */

body.black2050 .agreement-command {
    margin-bottom: 18px;

    color: #eef1f4;

    background:
        radial-gradient(
            circle at 92% 10%,
            rgba(201,169,93,.10),
            transparent 24%
        ),
        linear-gradient(
            110deg,
            #101620,
            #171f29
        );

    border:
        1px solid rgba(201,169,93,.18);

    box-shadow:
        0 14px 34px rgba(14,17,22,.08);
}


body.black2050
.agreement-command-header {
    min-height: 108px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 24px;

    padding:
        22px 26px;

    border-bottom:
        1px solid rgba(255,255,255,.055);
}


body.black2050
.agreement-command-header h3 {
    margin: 2px 0 6px;

    color: #fff;

    font-size: 21px;
}


body.black2050
.agreement-command-header
p:not(.eyebrow) {
    margin: 0;

    color: #788492;

    font-size: 10px;
}


body.black2050
.agreement-command-action {
    margin-top: 0;

    color: #101419;

    background:
        linear-gradient(
            110deg,
            #c4a75b,
            #e1c77d
        );

    white-space: nowrap;
}


/* METRICS */

body.black2050
.agreement-command-metrics {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0,1fr));
}


body.black2050
.agreement-command-metrics article {
    position: relative;

    min-height: 94px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding:
        15px 25px;

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.075),
            rgba(201,169,93,.018)
        );

    border-top:
        1px solid rgba(201,169,93,.22);

    border-right:
        1px solid rgba(201,169,93,.14);

    transition:
        transform .16s ease,
        background .16s ease,
        box-shadow .16s ease;
}


body.black2050
.agreement-command-metrics article::before {
    content: "";

    position: absolute;

    top: -1px;
    left: 24px;

    width: 46px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--b2050-gold-bright),
            transparent
        );
}


body.black2050
.agreement-command-metrics article:hover {
    transform:
        translateY(-3px);

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.13),
            rgba(201,169,93,.035)
        );

    box-shadow:
        0 10px 24px rgba(0,0,0,.10);
}


body.black2050
.agreement-command-metrics span {
    color: #a9976f;

    font-size: 7px;
    font-weight: 850;

    letter-spacing: .14em;
}


body.black2050
.agreement-command-metrics strong {
    margin-top: 5px;

    color: #fff7df;

    font-size: 27px;

    line-height: 1;
}


body.black2050
.agreement-command-metrics small {
    margin-top: 6px;

    color: #77818d;

    font-size: 8px;
}


/* UNMATCHED */

body.black2050
.agreement-command-metrics
.agreement-metric-alert {
    background:
        linear-gradient(
            135deg,
            rgba(178,58,63,.12),
            rgba(178,58,63,.022)
        );

    border-top-color:
        rgba(214,72,77,.40);
}


body.black2050
.agreement-command-metrics
.agreement-metric-alert::before {
    background:
        linear-gradient(
            90deg,
            #df5a5f,
            transparent
        );
}


body.black2050
.agreement-command-metrics
.agreement-metric-alert strong {
    color: #ef6b70;
}


/* PROBABLE */

body.black2050
.agreement-command-metrics
.agreement-metric-probable {
    background:
        linear-gradient(
            135deg,
            rgba(188,139,42,.10),
            rgba(188,139,42,.022)
        );
}


body.black2050
.agreement-command-metrics
.agreement-metric-probable strong {
    color: #e5b552;
}


/* CONFIRMED */

body.black2050
.agreement-command-metrics
.agreement-metric-ok {
    background:
        linear-gradient(
            135deg,
            rgba(55,118,84,.11),
            rgba(55,118,84,.022)
        );

    border-top-color:
        rgba(84,179,126,.30);
}


body.black2050
.agreement-command-metrics
.agreement-metric-ok::before {
    background:
        linear-gradient(
            90deg,
            #62d493,
            transparent
        );
}


body.black2050
.agreement-command-metrics
.agreement-metric-ok strong {
    color: #6dde9c;
}


/* CONSOLE */

body.black2050
.agreement-console {
    background:
        rgba(255,255,255,.82);

    border:
        1px solid rgba(201,169,93,.18);

    box-shadow:
        0 11px 32px rgba(24,25,28,.04);
}


body.black2050
.agreement-console-heading {
    min-height: 88px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    padding:
        18px 24px;

    border-bottom:
        1px solid #e6dfd5;
}


body.black2050
.agreement-console-heading h3 {
    margin: 2px 0 4px;

    font-size: 18px;
}


body.black2050
.agreement-console-heading p:not(.eyebrow) {
    margin: 0;

    color: #918c84;

    font-size: 8px;
}


body.black2050
.agreement-console-count {
    color: #8a6c29;

    font-size: 8px;
    font-weight: 850;

    letter-spacing: .10em;
}


body.black2050
.agreement-list {
    padding:
        8px 18px 18px;
}


/* AGREEMENT CARD */

body.black2050
.agreement-card {
    position: relative;

    min-height: 136px;

    display: grid;

    grid-template-columns:
        112px minmax(0,1fr) 150px;

    margin-top: 10px;

    background: #fff;

    border:
        1px solid #e7e0d6;

    transition:
        transform .16s ease,
        border-color .16s ease,
        box-shadow .16s ease;
}


body.black2050
.agreement-card:hover {
    transform:
        translateY(-2px);

    border-color:
        rgba(201,169,93,.42);

    box-shadow:
        0 12px 30px rgba(25,27,30,.065);
}


body.black2050
.agreement-card::before {
    content: "";

    position: absolute;

    top: -1px;
    left: -1px;

    width: 70px;
    height: 2px;
}


/* COLOR SIGNAL */

body.black2050
.agreement-card.agreement-match-unmatched::before {
    background:
        linear-gradient(
            90deg,
            #d94c51,
            transparent
        );
}


body.black2050
.agreement-card.agreement-match-probable::before {
    background:
        linear-gradient(
            90deg,
            #d7a73e,
            transparent
        );
}


body.black2050
.agreement-card.agreement-match-confirmed::before {
    background:
        linear-gradient(
            90deg,
            #55c986,
            transparent
        );
}


/* DATE */

body.black2050
.agreement-date {
    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 18px;

    background:
        linear-gradient(
            180deg,
            rgba(201,169,93,.06),
            rgba(201,169,93,.015)
        );

    border-right:
        1px solid #ece6dd;
}


body.black2050
.agreement-date span {
    color: #a08c61;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .13em;
}


body.black2050
.agreement-date strong {
    margin-top: 7px;

    color: #383c42;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace;

    font-size: 10px;
}


body.black2050
.agreement-date small {
    margin-top: 8px;

    color: #aaa59d;

    font-size: 7px;
}


/* MAIN */

body.black2050
.agreement-main {
    min-width: 0;

    padding:
        17px 20px;
}


body.black2050
.agreement-main-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 20px;
}


body.black2050
.agreement-promoter {
    color: #95731f;

    font-size: 7px;
    font-weight: 850;

    letter-spacing: .08em;
}


body.black2050
.agreement-main h4 {
    margin:
        5px 0 0;

    color: #292d32;

    font-size: 12px;

    line-height: 1.4;
}


/* BADGES */

body.black2050
.agreement-match-badge {
    min-height: 27px;

    display: inline-flex;
    align-items: center;

    gap: 6px;

    padding:
        0 9px;

    flex: 0 0 auto;

    font-size: 7px;
    font-weight: 850;

    letter-spacing: .06em;
}


body.black2050
.agreement-match-badge span {
    width: 6px;
    height: 6px;

    border-radius: 50%;

    background: currentColor;

    box-shadow:
        0 0 9px currentColor;
}


body.black2050
.agreement-match-badge.agreement-match-unmatched {
    color: #b62d33;

    background: #fff0f0;

    border:
        1px solid #f0c7c9;
}


body.black2050
.agreement-match-badge.agreement-match-probable {
    color: #ad7c17;

    background: #fff8e7;

    border:
        1px solid #ead8a8;
}


body.black2050
.agreement-match-badge.agreement-match-confirmed {
    color: #347754;

    background: #edf8f1;

    border:
        1px solid #c5dfd0;
}


/* METADATA */

body.black2050
.agreement-metadata {
    display: grid;

    grid-template-columns:
        1fr .9fr 1fr;

    gap: 18px;

    margin-top: 15px;

    padding-top: 13px;

    border-top:
        1px solid #ece7df;
}


body.black2050
.agreement-metadata span {
    display: block;

    color: #aaa49b;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .13em;
}


body.black2050
.agreement-metadata strong {
    display: block;

    margin-top: 5px;

    color: #666970;

    font-size: 8px;
}


body.black2050
.agreement-metadata
.agreement-match-unmatched {
    color: #b63238;
}


body.black2050
.agreement-metadata
.agreement-match-probable {
    color: #aa7a17;
}


body.black2050
.agreement-metadata
.agreement-match-confirmed {
    color: #347754;
}


/* LINKED DOCUMENTS */

body.black2050
.agreement-documents {
    margin-top: 14px;

    padding-top: 12px;

    border-top:
        1px solid #ece7df;
}


body.black2050
.agreement-documents-label {
    display: block;

    margin-bottom: 7px;

    color: #9c958b;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .13em;
}


body.black2050
.agreement-document-link {
    min-height: 35px;

    display: grid;

    grid-template-columns:
        30px minmax(0,1fr) auto;

    align-items: center;

    gap: 8px;

    padding:
        0 10px;

    color: #555a60;

    background: #f7f5ef;

    border:
        1px solid #e6dfd5;

    text-decoration: none;

    transition:
        background .15s ease,
        transform .15s ease;
}


body.black2050
.agreement-document-link:hover {
    transform:
        translateX(3px);

    background:
        rgba(201,169,93,.08);
}


body.black2050
.agreement-document-link > span {
    color: #a9822e;

    font-size: 6px;
    font-weight: 850;
}


body.black2050
.agreement-document-link strong {
    font-size: 8px;
}


body.black2050
.agreement-document-link b {
    color:
        var(--gold-deep);
}


/* ACTION */

body.black2050
.agreement-actions {
    display: flex;
    align-items: stretch;

    border-left:
        1px solid #ece6dd;
}


body.black2050
.agreement-match-action {
    width: 100%;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 9px;

    padding: 15px;

    color: #30343a;

    text-align: center;

    text-decoration: none;

    font-size: 9px;
    font-weight: 800;

    transition:
        color .15s ease,
        background .15s ease;
}


body.black2050
.agreement-match-action b {
    color:
        var(--gold-deep);

    font-size: 16px;

    transition:
        transform .15s ease;
}


body.black2050
.agreement-match-action:hover {
    color: #11151a;

    background:
        rgba(201,169,93,.065);
}


body.black2050
.agreement-match-action:hover b {
    transform:
        translateX(4px);
}


/* RESPONSIVE */

@media (max-width: 1050px) {

    body.black2050
    .agreement-command-metrics {
        grid-template-columns:
            repeat(2, minmax(0,1fr));
    }

    body.black2050
    .agreement-metadata {
        grid-template-columns:
            1fr 1fr;
    }
}


@media (max-width: 760px) {

    body.black2050
    .agreement-command-header {
        align-items: flex-start;
        flex-direction: column;
    }

    body.black2050
    .agreement-command-action {
        width: 100%;
    }

    body.black2050
    .agreement-command-metrics {
        grid-template-columns: 1fr;
    }

    body.black2050
    .agreement-card {
        grid-template-columns: 1fr;
    }

    body.black2050
    .agreement-date,
    body.black2050
    .agreement-actions {
        border: 0;
    }

    body.black2050
    .agreement-main-top {
        flex-direction: column;
    }

    body.black2050
    .agreement-metadata {
        grid-template-columns: 1fr;
    }

    body.black2050
    .agreement-match-action {
        min-height: 54px;

        flex-direction: row;

        border-top:
            1px solid #ece6dd;
    }
}

/* ============================================================
   FIN BLACK 2050 · CONSOLA DE ACUERDOS
   ============================================================ */


/* ============================================================
   BLACK 2050 · MARCOS TÁCTICOS CASO MAESTRO
   ============================================================ */


/* CLIENTE / AUTORIDAD / JURISDICCIÓN / PRIORIDAD */

body.black2050
.case-command-meta {
    position: relative;

    margin-top: 20px;
    margin-bottom: 18px;

    padding:
        0 10px;

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.055),
            rgba(255,255,255,.012)
        );

    border:
        1px solid rgba(201,169,93,.26);

    box-shadow:
        inset 0 0 28px rgba(201,169,93,.022),
        0 8px 24px rgba(0,0,0,.08);
}


body.black2050
.case-command-meta::before {
    content: "";

    position: absolute;

    top: -1px;
    left: 18px;

    width: 72px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--b2050-gold-bright),
            transparent
        );

    box-shadow:
        0 0 12px rgba(226,199,120,.20);
}


body.black2050
.case-command-meta::after {
    content: "";

    position: absolute;

    right: -1px;
    bottom: -1px;

    width: 42px;
    height: 1px;

    background:
        linear-gradient(
            270deg,
            var(--b2050-gold),
            transparent
        );
}


body.black2050
.case-command-meta > div {
    min-height: 66px;
}


body.black2050
.case-command-meta > div:hover {
    background:
        rgba(201,169,93,.035);
}


/* BARRA DE MÓDULOS DEL CASO */

body.black2050
.case-command-tabs {
    position: relative;

    margin-bottom: 20px;

    border:
        1px solid rgba(201,169,93,.30);

    background:
        linear-gradient(
            110deg,
            #10161f,
            #151c25
        );

    box-shadow:
        inset 0 0 30px rgba(201,169,93,.018),
        0 10px 28px rgba(0,0,0,.08);
}


body.black2050
.case-command-tabs::before {
    content: "";

    position: absolute;

    top: -1px;
    left: 18px;

    width: 84px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--b2050-gold-bright),
            transparent
        );

    box-shadow:
        0 0 12px rgba(226,199,120,.20);
}


body.black2050
.case-command-tabs::after {
    content: "";

    position: absolute;

    right: 18px;
    bottom: -1px;

    width: 84px;
    height: 1px;

    background:
        linear-gradient(
            270deg,
            rgba(201,169,93,.70),
            transparent
        );
}


/* Más presencia en cada módulo */

body.black2050
.case-command-tabs
.case-tab {
    border-left:
        1px solid rgba(255,255,255,.025);

    border-right:
        1px solid rgba(255,255,255,.025);
}


body.black2050
.case-command-tabs
.case-tab:hover {
    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.085),
            rgba(201,169,93,.018)
        );
}


body.black2050
.case-command-tabs
.case-tab.active {
    box-shadow:
        inset 0 -2px 0 var(--b2050-gold-bright),
        inset 0 0 20px rgba(201,169,93,.055),
        0 0 18px rgba(201,169,93,.045);
}


/* ============================================================
   FIN MARCOS TÁCTICOS CASO MAESTRO
   ============================================================ */


/* ============================================================
   BLACK 2050 · INSTRUMENTOS TÁCTICOS INDIVIDUALES
   ============================================================ */


/* ------------------------------------------------------------
   META DEL CASO:
   CLIENTE / AUTORIDAD / JURISDICCIÓN / PRIORIDAD
   ------------------------------------------------------------ */

body.black2050
.case-command-meta {
    gap: 7px;

    padding:
        8px;

    border:
        1px solid rgba(201,169,93,.26);

    background:
        rgba(5,8,12,.18);
}


body.black2050
.case-command-meta > div,
body.black2050
.case-command-meta > div:not(:first-child) {
    position: relative;

    min-height: 62px;

    padding:
        11px 14px;

    border:
        1px solid rgba(201,169,93,.20);

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.055),
            rgba(255,255,255,.012)
        );

    box-shadow:
        inset 0 0 18px
        rgba(201,169,93,.015);

    transition:
        transform .15s ease,
        border-color .15s ease,
        background .15s ease,
        box-shadow .15s ease;
}


body.black2050
.case-command-meta > div::before {
    content: "";

    position: absolute;

    top: -1px;
    left: 11px;

    width: 30px;
    height: 1px;

    background:
        linear-gradient(
            90deg,
            rgba(226,199,120,.90),
            transparent
        );
}


body.black2050
.case-command-meta > div:hover {
    transform:
        translateY(-2px);

    border-color:
        rgba(226,199,120,.46);

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.095),
            rgba(201,169,93,.018)
        );

    box-shadow:
        inset 0 0 22px
        rgba(201,169,93,.025),
        0 7px 18px
        rgba(0,0,0,.10);
}


/* Quitamos divisores heredados porque ahora
   cada bloque tiene su propio marco */

body.black2050
.case-command-meta > div {
    border-right:
        1px solid rgba(201,169,93,.20);
}



/* ------------------------------------------------------------
   MÓDULOS DEL CASO:
   TODOS QUEDAN ENMARCADOS
   ------------------------------------------------------------ */

body.black2050
.case-command-tabs {
    gap: 6px;

    padding:
        7px 8px;
}


body.black2050
.case-command-tabs
.case-tab {
    min-height: 44px;

    padding:
        0 10px;

    border:
        1px solid rgba(201,169,93,.13);

    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,.018),
            rgba(201,169,93,.012)
        );

    box-shadow:
        inset 0 0 12px
        rgba(201,169,93,.008);
}


body.black2050
.case-command-tabs
.case-tab:hover {
    border-color:
        rgba(226,199,120,.38);

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.105),
            rgba(201,169,93,.025)
        );

    box-shadow:
        inset 0 0 18px
        rgba(201,169,93,.025);

    transform:
        translateY(-2px);
}


/* Código de cada módulo un poco más visible */

body.black2050
.case-command-tabs
.case-tab-code {
    color:
        #776d59;
}


body.black2050
.case-command-tabs
.case-tab-label {
    color:
        #9ba4ae;
}


body.black2050
.case-command-tabs
.case-tab:hover
.case-tab-label {
    color:
        #eef1f4;
}


/* Módulo activo: claramente superior al resto */

body.black2050
.case-command-tabs
.case-tab.active {
    border-color:
        rgba(226,199,120,.62);

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.19),
            rgba(201,169,93,.055)
        );

    box-shadow:
        inset 0 -2px 0
            var(--b2050-gold-bright),
        inset 0 0 22px
            rgba(201,169,93,.055),
        0 0 16px
            rgba(201,169,93,.055);
}


body.black2050
.case-command-tabs
.case-tab.active
.case-tab-label {
    color: #fff;
}


/* ============================================================
   FIN INSTRUMENTOS TÁCTICOS INDIVIDUALES
   ============================================================ */


/* ============================================================
   BLACK 2050 · DEFENSA ACTIVA
   ============================================================ */

body.black2050 .defense-command {
    margin-bottom: 18px;

    color: #eef1f4;

    background:
        radial-gradient(
            circle at 90% 10%,
            rgba(201,169,93,.11),
            transparent 25%
        ),
        linear-gradient(
            110deg,
            #101620,
            #171f29
        );

    border:
        1px solid rgba(201,169,93,.20);

    box-shadow:
        0 14px 34px rgba(14,17,22,.08);
}


body.black2050
.defense-command-header {
    min-height: 110px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 25px;

    padding:
        22px 26px;

    border-bottom:
        1px solid rgba(255,255,255,.055);
}


body.black2050
.defense-command-header h3 {
    margin: 2px 0 6px;

    color: #fff;

    font-size: 21px;
}


body.black2050
.defense-command-header
p:not(.eyebrow) {
    margin: 0;

    color: #788492;

    font-size: 10px;
}


body.black2050
.defense-command-status {
    display: flex;
    align-items: center;

    gap: 11px;

    min-width: 190px;

    padding:
        12px 14px;

    background:
        rgba(0,0,0,.20);

    border:
        1px solid rgba(255,255,255,.07);
}


body.black2050
.defense-command-dot {
    width: 8px;
    height: 8px;

    border-radius: 50%;

    background:
        var(--b2050-green);

    box-shadow:
        0 0 0 5px rgba(112,224,160,.07),
        0 0 14px rgba(112,224,160,.34);
}


body.black2050
.defense-command-status strong {
    display: block;

    color: #e9edf2;

    font-size: 8px;

    letter-spacing: .08em;
}


body.black2050
.defense-command-status span:not(
    .defense-command-dot
) {
    display: block;

    margin-top: 3px;

    color: #697583;

    font-size: 7px;
}


/* METRICS */

body.black2050
.defense-command-metrics {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0,1fr));
}


body.black2050
.defense-command-metrics article {
    position: relative;

    min-height: 92px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding:
        15px 24px;

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.075),
            rgba(201,169,93,.018)
        );

    border-top:
        1px solid rgba(201,169,93,.22);

    border-right:
        1px solid rgba(201,169,93,.14);
}


body.black2050
.defense-command-metrics article::before {
    content: "";

    position: absolute;

    top: -1px;
    left: 24px;

    width: 42px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--b2050-gold-bright),
            transparent
        );
}


body.black2050
.defense-command-metrics span {
    color: #a9976f;

    font-size: 7px;
    font-weight: 850;

    letter-spacing: .13em;
}


body.black2050
.defense-command-metrics strong {
    margin-top: 5px;

    color: #fff7df;

    font-size: 27px;
}


body.black2050
.defense-command-metrics small {
    margin-top: 5px;

    color: #77818d;

    font-size: 8px;
}


body.black2050
.defense-metric-alert strong,
body.black2050
.defense-metric-critical strong {
    color: #ef666b;
}


body.black2050
.defense-metric-warning strong {
    color: #e5b552;
}


/* GRID */

body.black2050 .defense-grid {
    display: grid;

    grid-template-columns:
        minmax(0,1fr)
        minmax(0,1fr);

    gap: 18px;

    margin-bottom: 18px;
}


body.black2050
.defense-regime,
body.black2050
.defense-situation,
body.black2050
.defense-actions-console {
    background:
        rgba(255,255,255,.82);

    border:
        1px solid rgba(201,169,93,.18);

    box-shadow:
        0 11px 32px rgba(24,25,28,.04);
}


body.black2050
.defense-regime > header,
body.black2050
.defense-situation > header {
    min-height: 76px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 18px;

    padding:
        16px 20px;

    border-bottom:
        1px solid #e7e0d6;
}


body.black2050
.defense-regime h3,
body.black2050
.defense-situation h3 {
    margin: 2px 0 0;

    font-size: 17px;
}


body.black2050
.defense-regime-state {
    padding:
        6px 9px;

    font-size: 7px;
    font-weight: 850;

    letter-spacing: .06em;
}


body.black2050
.defense-regime-state.verified {
    color: #377654;

    background: #edf7f1;

    border: 1px solid #bdd9c8;
}


body.black2050
.defense-regime-state.pending {
    color: #a27518;

    background: #fff7e4;

    border: 1px solid #ead8a7;
}


body.black2050
.defense-regime-body {
    display: grid;

    grid-template-columns:
        repeat(3,minmax(0,1fr));

    gap: 1px;

    background: #eae4db;
}


body.black2050
.defense-regime-body > div {
    min-height: 92px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 18px;

    background: #fff;
}


body.black2050
.defense-regime-body span {
    color: #a0998e;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .13em;
}


body.black2050
.defense-regime-body strong {
    margin-top: 7px;

    color: #4a4e54;

    font-size: 9px;
}


body.black2050
.defense-regime-empty {
    min-height: 190px;

    display: flex;
    align-items: center;

    gap: 22px;

    padding: 26px;
}


body.black2050
.defense-regime-symbol {
    width: 64px;
    height: 64px;

    flex: 0 0 auto;

    display: grid;
    place-items: center;

    color:
        var(--gold-deep);

    background:
        rgba(201,169,93,.07);

    border:
        1px solid rgba(201,169,93,.24);

    font-family:
        Georgia, serif;

    font-size: 31px;
}


body.black2050
.defense-regime-empty strong {
    color: #35393e;

    font-size: 12px;
}


body.black2050
.defense-regime-empty p {
    max-width: 580px;

    margin:
        8px 0 0;

    color: #89857f;

    font-size: 9px;

    line-height: 1.55;
}


/* SITUATION */

body.black2050
.defense-situation-grid {
    display: grid;

    grid-template-columns:
        repeat(2,minmax(0,1fr));

    padding:
        8px 18px;
}


body.black2050
.defense-situation-grid > div {
    min-height: 74px;

    display: flex;
    align-items: center;

    gap: 12px;

    padding:
        12px 7px;

    border-bottom:
        1px solid #ece7df;
}


body.black2050
.defense-situation-dot {
    width: 7px;
    height: 7px;

    flex: 0 0 auto;

    border-radius: 50%;
}


body.black2050
.defense-situation-dot.ok {
    background: #63d995;

    box-shadow:
        0 0 10px rgba(99,217,149,.30);
}


body.black2050
.defense-situation-dot.warning {
    background: #daa942;

    box-shadow:
        0 0 10px rgba(218,169,66,.30);
}


body.black2050
.defense-situation-dot.alert {
    background: #dd565b;

    box-shadow:
        0 0 10px rgba(221,86,91,.30);
}


body.black2050
.defense-situation-grid strong {
    display: block;

    color: #4f5358;

    font-size: 9px;
}


body.black2050
.defense-situation-grid small {
    display: block;

    margin-top: 4px;

    color: #97928a;

    font-size: 7px;
}


body.black2050
.defense-notification-link {
    min-height: 48px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    padding:
        0 20px;

    color: #f0ece3;

    background:
        linear-gradient(
            90deg,
            #161b22,
            #20262e
        );

    text-decoration: none;

    font-size: 9px;
    font-weight: 750;
}


/* ACTIONS */

body.black2050
.defense-actions-heading {
    min-height: 88px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    padding:
        18px 22px;

    border-bottom:
        1px solid #e6dfd5;
}


body.black2050
.defense-actions-heading h3 {
    margin: 2px 0 4px;

    font-size: 18px;
}


body.black2050
.defense-actions-heading
p:not(.eyebrow) {
    margin: 0;

    color: #918c84;

    font-size: 8px;
}


body.black2050
.defense-actions-count {
    color: #896a25;

    font-size: 8px;
    font-weight: 850;

    letter-spacing: .10em;
}


body.black2050
.defense-empty-command {
    min-height: 260px;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 34px;

    padding: 38px;
}


body.black2050
.defense-empty-symbol {
    position: relative;

    width: 100px;
    height: 100px;

    flex: 0 0 auto;

    display: grid;
    place-items: center;

    color: #c8a95d;

    border:
        1px solid rgba(201,169,93,.30);

    transform:
        rotate(45deg);

    font-family:
        Georgia, serif;

    font-size: 38px;
}


body.black2050
.defense-empty-symbol span {
    position: absolute;

    inset: 16px;

    border:
        1px solid rgba(201,169,93,.17);
}


body.black2050
.defense-empty-symbol {
    text-shadow:
        0 0 20px rgba(201,169,93,.12);
}


body.black2050
.defense-empty-command
> div:last-child {
    max-width: 540px;
}


body.black2050
.defense-empty-command h4 {
    margin:
        4px 0 8px;

    color: #30343a;

    font-size: 18px;
}


body.black2050
.defense-empty-command p:not(.eyebrow) {
    color: #88847e;

    font-size: 10px;

    line-height: 1.55;
}


/* ACTION CARDS */

body.black2050
.defense-action-list {
    padding:
        8px 18px 18px;
}


body.black2050
.defense-action-card {
    position: relative;

    display: grid;

    grid-template-columns:
        118px minmax(0,1fr);

    margin-top: 10px;

    background: #fff;

    border:
        1px solid #e7e0d6;
}


body.black2050
.defense-action-card::before {
    content: "";

    position: absolute;

    top: -1px;
    left: -1px;

    width: 72px;
    height: 2px;

    background:
        var(--b2050-gold);
}


body.black2050
.defense-priority-urgent::before {
    background: #da4c51;
}


body.black2050
.defense-priority-high::before {
    background: #d99a38;
}


body.black2050
.defense-action-priority {
    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 18px;

    background:
        rgba(201,169,93,.05);

    border-right:
        1px solid #ece6dd;
}


body.black2050
.defense-action-priority span,
body.black2050
.defense-action-data span,
body.black2050
.defense-analysis-grid span {
    color: #a19b92;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .13em;
}


body.black2050
.defense-action-priority strong {
    margin-top: 8px;

    color: #7d6220;

    font-size: 10px;
}


body.black2050
.defense-action-main {
    padding: 17px 20px;
}


body.black2050
.defense-action-title > span {
    color: #a77f27;

    font-size: 7px;
    font-weight: 850;
}


body.black2050
.defense-action-title h4 {
    margin:
        5px 0 0;

    color: #2c3035;

    font-size: 13px;
}


body.black2050
.defense-action-title p {
    margin:
        5px 0 0;

    color: #96918a;

    font-size: 8px;
}


body.black2050
.defense-action-data {
    display: grid;

    grid-template-columns:
        1.6fr .7fr .7fr;

    gap: 18px;

    margin-top: 16px;

    padding-top: 13px;

    border-top:
        1px solid #ece7df;
}


body.black2050
.defense-action-data strong {
    display: block;

    margin-top: 6px;

    color: #585c62;

    font-size: 8px;

    line-height: 1.45;
}


body.black2050
.defense-action-data small {
    display: block;

    margin-top: 4px;

    color: #99948d;

    font-size: 7px;
}


body.black2050
.defense-analysis-grid {
    display: grid;

    grid-template-columns:
        repeat(3,minmax(0,1fr));

    gap: 14px;

    margin-top: 15px;

    padding-top: 14px;

    border-top:
        1px solid #ece7df;
}


body.black2050
.defense-analysis-grid p {
    margin:
        6px 0 0;

    color: #74777b;

    font-size: 8px;

    line-height: 1.5;
}


@media (max-width: 1000px) {

    body.black2050
    .defense-command-metrics {
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }

    body.black2050
    .defense-grid {
        grid-template-columns: 1fr;
    }
}


@media (max-width: 700px) {

    body.black2050
    .defense-command-header {
        align-items: flex-start;
        flex-direction: column;
    }

    body.black2050
    .defense-command-status {
        width: 100%;
    }

    body.black2050
    .defense-command-metrics {
        grid-template-columns: 1fr;
    }

    body.black2050
    .defense-regime-body,
    body.black2050
    .defense-situation-grid,
    body.black2050
    .defense-action-data,
    body.black2050
    .defense-analysis-grid {
        grid-template-columns: 1fr;
    }

    body.black2050
    .defense-empty-command {
        flex-direction: column;

        text-align: center;
    }

    body.black2050
    .defense-action-card {
        grid-template-columns: 1fr;
    }

    body.black2050
    .defense-action-priority {
        border-right: 0;

        border-bottom:
            1px solid #ece6dd;
    }
}

/* ============================================================
   FIN BLACK 2050 · DEFENSA ACTIVA
   ============================================================ */


/* ============================================================
   BLACK 2050 · DEFENSA ACTIVA
   ============================================================ */

body.black2050 .defense-command {
    margin-bottom: 18px;

    color: #eef1f4;

    background:
        radial-gradient(
            circle at 90% 10%,
            rgba(201,169,93,.11),
            transparent 25%
        ),
        linear-gradient(
            110deg,
            #101620,
            #171f29
        );

    border:
        1px solid rgba(201,169,93,.20);

    box-shadow:
        0 14px 34px rgba(14,17,22,.08);
}


body.black2050
.defense-command-header {
    min-height: 110px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 25px;

    padding:
        22px 26px;

    border-bottom:
        1px solid rgba(255,255,255,.055);
}


body.black2050
.defense-command-header h3 {
    margin: 2px 0 6px;

    color: #fff;

    font-size: 21px;
}


body.black2050
.defense-command-header
p:not(.eyebrow) {
    margin: 0;

    color: #788492;

    font-size: 10px;
}


body.black2050
.defense-command-status {
    display: flex;
    align-items: center;

    gap: 11px;

    min-width: 190px;

    padding:
        12px 14px;

    background:
        rgba(0,0,0,.20);

    border:
        1px solid rgba(255,255,255,.07);
}


body.black2050
.defense-command-dot {
    width: 8px;
    height: 8px;

    border-radius: 50%;

    background:
        var(--b2050-green);

    box-shadow:
        0 0 0 5px rgba(112,224,160,.07),
        0 0 14px rgba(112,224,160,.34);
}


body.black2050
.defense-command-status strong {
    display: block;

    color: #e9edf2;

    font-size: 8px;

    letter-spacing: .08em;
}


body.black2050
.defense-command-status span:not(
    .defense-command-dot
) {
    display: block;

    margin-top: 3px;

    color: #697583;

    font-size: 7px;
}


/* METRICS */

body.black2050
.defense-command-metrics {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0,1fr));
}


body.black2050
.defense-command-metrics article {
    position: relative;

    min-height: 92px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding:
        15px 24px;

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.075),
            rgba(201,169,93,.018)
        );

    border-top:
        1px solid rgba(201,169,93,.22);

    border-right:
        1px solid rgba(201,169,93,.14);
}


body.black2050
.defense-command-metrics article::before {
    content: "";

    position: absolute;

    top: -1px;
    left: 24px;

    width: 42px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--b2050-gold-bright),
            transparent
        );
}


body.black2050
.defense-command-metrics span {
    color: #a9976f;

    font-size: 7px;
    font-weight: 850;

    letter-spacing: .13em;
}


body.black2050
.defense-command-metrics strong {
    margin-top: 5px;

    color: #fff7df;

    font-size: 27px;
}


body.black2050
.defense-command-metrics small {
    margin-top: 5px;

    color: #77818d;

    font-size: 8px;
}


body.black2050
.defense-metric-alert strong,
body.black2050
.defense-metric-critical strong {
    color: #ef666b;
}


body.black2050
.defense-metric-warning strong {
    color: #e5b552;
}


/* GRID */

body.black2050 .defense-grid {
    display: grid;

    grid-template-columns:
        minmax(0,1fr)
        minmax(0,1fr);

    gap: 18px;

    margin-bottom: 18px;
}


body.black2050
.defense-regime,
body.black2050
.defense-situation,
body.black2050
.defense-actions-console {
    background:
        rgba(255,255,255,.82);

    border:
        1px solid rgba(201,169,93,.18);

    box-shadow:
        0 11px 32px rgba(24,25,28,.04);
}


body.black2050
.defense-regime > header,
body.black2050
.defense-situation > header {
    min-height: 76px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 18px;

    padding:
        16px 20px;

    border-bottom:
        1px solid #e7e0d6;
}


body.black2050
.defense-regime h3,
body.black2050
.defense-situation h3 {
    margin: 2px 0 0;

    font-size: 17px;
}


body.black2050
.defense-regime-state {
    padding:
        6px 9px;

    font-size: 7px;
    font-weight: 850;

    letter-spacing: .06em;
}


body.black2050
.defense-regime-state.verified {
    color: #377654;

    background: #edf7f1;

    border: 1px solid #bdd9c8;
}


body.black2050
.defense-regime-state.pending {
    color: #a27518;

    background: #fff7e4;

    border: 1px solid #ead8a7;
}


body.black2050
.defense-regime-body {
    display: grid;

    grid-template-columns:
        repeat(3,minmax(0,1fr));

    gap: 1px;

    background: #eae4db;
}


body.black2050
.defense-regime-body > div {
    min-height: 92px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 18px;

    background: #fff;
}


body.black2050
.defense-regime-body span {
    color: #a0998e;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .13em;
}


body.black2050
.defense-regime-body strong {
    margin-top: 7px;

    color: #4a4e54;

    font-size: 9px;
}


body.black2050
.defense-regime-empty {
    min-height: 190px;

    display: flex;
    align-items: center;

    gap: 22px;

    padding: 26px;
}


body.black2050
.defense-regime-symbol {
    width: 64px;
    height: 64px;

    flex: 0 0 auto;

    display: grid;
    place-items: center;

    color:
        var(--gold-deep);

    background:
        rgba(201,169,93,.07);

    border:
        1px solid rgba(201,169,93,.24);

    font-family:
        Georgia, serif;

    font-size: 31px;
}


body.black2050
.defense-regime-empty strong {
    color: #35393e;

    font-size: 12px;
}


body.black2050
.defense-regime-empty p {
    max-width: 580px;

    margin:
        8px 0 0;

    color: #89857f;

    font-size: 9px;

    line-height: 1.55;
}


/* SITUATION */

body.black2050
.defense-situation-grid {
    display: grid;

    grid-template-columns:
        repeat(2,minmax(0,1fr));

    padding:
        8px 18px;
}


body.black2050
.defense-situation-grid > div {
    min-height: 74px;

    display: flex;
    align-items: center;

    gap: 12px;

    padding:
        12px 7px;

    border-bottom:
        1px solid #ece7df;
}


body.black2050
.defense-situation-dot {
    width: 7px;
    height: 7px;

    flex: 0 0 auto;

    border-radius: 50%;
}


body.black2050
.defense-situation-dot.ok {
    background: #63d995;

    box-shadow:
        0 0 10px rgba(99,217,149,.30);
}


body.black2050
.defense-situation-dot.warning {
    background: #daa942;

    box-shadow:
        0 0 10px rgba(218,169,66,.30);
}


body.black2050
.defense-situation-dot.alert {
    background: #dd565b;

    box-shadow:
        0 0 10px rgba(221,86,91,.30);
}


body.black2050
.defense-situation-grid strong {
    display: block;

    color: #4f5358;

    font-size: 9px;
}


body.black2050
.defense-situation-grid small {
    display: block;

    margin-top: 4px;

    color: #97928a;

    font-size: 7px;
}


body.black2050
.defense-notification-link {
    min-height: 48px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    padding:
        0 20px;

    color: #f0ece3;

    background:
        linear-gradient(
            90deg,
            #161b22,
            #20262e
        );

    text-decoration: none;

    font-size: 9px;
    font-weight: 750;
}


/* ACTIONS */

body.black2050
.defense-actions-heading {
    min-height: 88px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    padding:
        18px 22px;

    border-bottom:
        1px solid #e6dfd5;
}


body.black2050
.defense-actions-heading h3 {
    margin: 2px 0 4px;

    font-size: 18px;
}


body.black2050
.defense-actions-heading
p:not(.eyebrow) {
    margin: 0;

    color: #918c84;

    font-size: 8px;
}


body.black2050
.defense-actions-count {
    color: #896a25;

    font-size: 8px;
    font-weight: 850;

    letter-spacing: .10em;
}


body.black2050
.defense-empty-command {
    min-height: 260px;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 34px;

    padding: 38px;
}


body.black2050
.defense-empty-symbol {
    position: relative;

    width: 100px;
    height: 100px;

    flex: 0 0 auto;

    display: grid;
    place-items: center;

    color: #c8a95d;

    border:
        1px solid rgba(201,169,93,.30);

    transform:
        rotate(45deg);

    font-family:
        Georgia, serif;

    font-size: 38px;
}


body.black2050
.defense-empty-symbol span {
    position: absolute;

    inset: 16px;

    border:
        1px solid rgba(201,169,93,.17);
}


body.black2050
.defense-empty-symbol {
    text-shadow:
        0 0 20px rgba(201,169,93,.12);
}


body.black2050
.defense-empty-command
> div:last-child {
    max-width: 540px;
}


body.black2050
.defense-empty-command h4 {
    margin:
        4px 0 8px;

    color: #30343a;

    font-size: 18px;
}


body.black2050
.defense-empty-command p:not(.eyebrow) {
    color: #88847e;

    font-size: 10px;

    line-height: 1.55;
}


/* ACTION CARDS */

body.black2050
.defense-action-list {
    padding:
        8px 18px 18px;
}


body.black2050
.defense-action-card {
    position: relative;

    display: grid;

    grid-template-columns:
        118px minmax(0,1fr);

    margin-top: 10px;

    background: #fff;

    border:
        1px solid #e7e0d6;
}


body.black2050
.defense-action-card::before {
    content: "";

    position: absolute;

    top: -1px;
    left: -1px;

    width: 72px;
    height: 2px;

    background:
        var(--b2050-gold);
}


body.black2050
.defense-priority-urgent::before {
    background: #da4c51;
}


body.black2050
.defense-priority-high::before {
    background: #d99a38;
}


body.black2050
.defense-action-priority {
    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 18px;

    background:
        rgba(201,169,93,.05);

    border-right:
        1px solid #ece6dd;
}


body.black2050
.defense-action-priority span,
body.black2050
.defense-action-data span,
body.black2050
.defense-analysis-grid span {
    color: #a19b92;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .13em;
}


body.black2050
.defense-action-priority strong {
    margin-top: 8px;

    color: #7d6220;

    font-size: 10px;
}


body.black2050
.defense-action-main {
    padding: 17px 20px;
}


body.black2050
.defense-action-title > span {
    color: #a77f27;

    font-size: 7px;
    font-weight: 850;
}


body.black2050
.defense-action-title h4 {
    margin:
        5px 0 0;

    color: #2c3035;

    font-size: 13px;
}


body.black2050
.defense-action-title p {
    margin:
        5px 0 0;

    color: #96918a;

    font-size: 8px;
}


body.black2050
.defense-action-data {
    display: grid;

    grid-template-columns:
        1.6fr .7fr .7fr;

    gap: 18px;

    margin-top: 16px;

    padding-top: 13px;

    border-top:
        1px solid #ece7df;
}


body.black2050
.defense-action-data strong {
    display: block;

    margin-top: 6px;

    color: #585c62;

    font-size: 8px;

    line-height: 1.45;
}


body.black2050
.defense-action-data small {
    display: block;

    margin-top: 4px;

    color: #99948d;

    font-size: 7px;
}


body.black2050
.defense-analysis-grid {
    display: grid;

    grid-template-columns:
        repeat(3,minmax(0,1fr));

    gap: 14px;

    margin-top: 15px;

    padding-top: 14px;

    border-top:
        1px solid #ece7df;
}


body.black2050
.defense-analysis-grid p {
    margin:
        6px 0 0;

    color: #74777b;

    font-size: 8px;

    line-height: 1.5;
}


@media (max-width: 1000px) {

    body.black2050
    .defense-command-metrics {
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }

    body.black2050
    .defense-grid {
        grid-template-columns: 1fr;
    }
}


@media (max-width: 700px) {

    body.black2050
    .defense-command-header {
        align-items: flex-start;
        flex-direction: column;
    }

    body.black2050
    .defense-command-status {
        width: 100%;
    }

    body.black2050
    .defense-command-metrics {
        grid-template-columns: 1fr;
    }

    body.black2050
    .defense-regime-body,
    body.black2050
    .defense-situation-grid,
    body.black2050
    .defense-action-data,
    body.black2050
    .defense-analysis-grid {
        grid-template-columns: 1fr;
    }

    body.black2050
    .defense-empty-command {
        flex-direction: column;

        text-align: center;
    }

    body.black2050
    .defense-action-card {
        grid-template-columns: 1fr;
    }

    body.black2050
    .defense-action-priority {
        border-right: 0;

        border-bottom:
            1px solid #ece6dd;
    }
}

/* ============================================================
   FIN BLACK 2050 · DEFENSA ACTIVA
   ============================================================ */


/* ============================================================
   BLACK 2050 · NOTIFICACIONES Y PLAZOS
   ============================================================ */

body.black2050 .terms-command {
    margin-bottom: 18px;

    color: #eef1f4;

    background:
        radial-gradient(
            circle at 90% 10%,
            rgba(201,169,93,.10),
            transparent 24%
        ),
        linear-gradient(
            110deg,
            #101620,
            #171f29
        );

    border:
        1px solid rgba(201,169,93,.20);

    box-shadow:
        0 14px 34px rgba(14,17,22,.08);
}


body.black2050
.terms-command-header {
    min-height: 108px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 24px;

    padding: 22px 26px;

    border-bottom:
        1px solid rgba(255,255,255,.055);
}


body.black2050
.terms-command-header h3 {
    margin: 2px 0 6px;

    color: #fff;

    font-size: 21px;
}


body.black2050
.terms-command-header
p:not(.eyebrow) {
    margin: 0;

    color: #788492;

    font-size: 10px;
}


body.black2050
.terms-command-status {
    min-width: 195px;

    display: flex;
    align-items: center;

    gap: 11px;

    padding: 12px 14px;

    background:
        rgba(0,0,0,.20);

    border:
        1px solid rgba(255,255,255,.07);
}


body.black2050
.terms-command-dot {
    width: 8px;
    height: 8px;

    flex: 0 0 auto;

    border-radius: 50%;

    background:
        var(--b2050-green);

    box-shadow:
        0 0 0 5px rgba(112,224,160,.07),
        0 0 14px rgba(112,224,160,.34);
}


body.black2050
.terms-command-status strong {
    display: block;

    color: #e9edf2;

    font-size: 8px;
}


body.black2050
.terms-command-status span:not(
    .terms-command-dot
) {
    display: block;

    margin-top: 3px;

    color: #697583;

    font-size: 7px;
}


/* 5 INSTRUMENTOS */

body.black2050
.terms-command-metrics {
    display: grid;

    grid-template-columns:
        repeat(5, minmax(0,1fr));
}


body.black2050
.terms-command-metrics article {
    position: relative;

    min-height: 92px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 15px 20px;

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.075),
            rgba(201,169,93,.018)
        );

    border-top:
        1px solid rgba(201,169,93,.22);

    border-right:
        1px solid rgba(201,169,93,.14);
}


body.black2050
.terms-command-metrics article::before {
    content: "";

    position: absolute;

    top: -1px;
    left: 20px;

    width: 40px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--b2050-gold-bright),
            transparent
        );
}


body.black2050
.terms-command-metrics span {
    color: #a9976f;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .13em;
}


body.black2050
.terms-command-metrics strong {
    margin-top: 5px;

    color: #fff7df;

    font-size: 26px;
}


body.black2050
.terms-command-metrics small {
    margin-top: 5px;

    color: #77818d;

    font-size: 7px;
}


body.black2050
.terms-metric-alert strong,
body.black2050
.terms-metric-critical strong {
    color: #ef666b;
}


body.black2050
.terms-metric-warning strong {
    color: #e5b552;
}


body.black2050
.terms-metric-validated strong {
    color: #6dde9c;
}


/* LEGAL SAFETY */

body.black2050
.terms-warning {
    display: grid;

    grid-template-columns:
        62px minmax(0,1fr) auto;

    align-items: center;

    gap: 20px;

    margin-bottom: 18px;

    padding: 18px 22px;

    background:
        linear-gradient(
            110deg,
            rgba(201,169,93,.085),
            rgba(255,255,255,.76)
        );

    border:
        1px solid rgba(201,169,93,.24);
}


body.black2050
.terms-warning-symbol {
    width: 52px;
    height: 52px;

    display: grid;
    place-items: center;

    color: #a17d28;

    border:
        1px solid rgba(201,169,93,.30);

    font-family:
        Georgia, serif;

    font-size: 27px;
}


body.black2050
.terms-warning h4 {
    margin:
        3px 0 5px;

    color: #34383d;

    font-size: 13px;
}


body.black2050
.terms-warning p:not(.eyebrow) {
    max-width: 850px;

    margin: 0;

    color: #817d77;

    font-size: 9px;

    line-height: 1.55;
}


body.black2050
.terms-regime-state {
    min-width: 120px;

    text-align: right;
}


body.black2050
.terms-regime-state > span {
    display: block;

    color: #a39d94;

    font-size: 6px;
    font-weight: 850;
}


body.black2050
.terms-regime-state strong {
    display: inline-block;

    margin-top: 6px;

    padding: 6px 9px;

    font-size: 7px;
}


body.black2050
.terms-regime-state
strong.verified {
    color: #347754;

    background: #edf8f1;

    border: 1px solid #c5dfd0;
}


body.black2050
.terms-regime-state
strong.pending {
    color: #a47719;

    background: #fff7e4;

    border: 1px solid #ead8a7;
}


/* SHARED CONSOLES */

body.black2050
.notification-console,
body.black2050
.deadline-console {
    margin-bottom: 18px;

    background:
        rgba(255,255,255,.82);

    border:
        1px solid rgba(201,169,93,.18);

    box-shadow:
        0 11px 32px rgba(24,25,28,.04);
}


body.black2050
.notification-console-heading,
body.black2050
.deadline-console-heading {
    min-height: 84px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    padding: 18px 22px;

    border-bottom:
        1px solid #e6dfd5;
}


body.black2050
.notification-console-heading h3,
body.black2050
.deadline-console-heading h3 {
    margin: 2px 0 4px;

    font-size: 18px;
}


body.black2050
.notification-console-heading
p:not(.eyebrow),
body.black2050
.deadline-console-heading
p:not(.eyebrow) {
    margin: 0;

    color: #918c84;

    font-size: 8px;
}


body.black2050
.notification-console-count {
    color: #896a25;

    font-size: 8px;
    font-weight: 850;
}


/* EMPTY STATES */

body.black2050
.notification-empty,
body.black2050
.deadline-empty {
    min-height: 230px;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 32px;

    padding: 36px;
}


body.black2050
.notification-empty-core,
body.black2050
.deadline-empty-core {
    position: relative;

    width: 88px;
    height: 88px;

    flex: 0 0 auto;

    display: grid;
    place-items: center;

    color: #c4a458;

    border:
        1px solid rgba(201,169,93,.30);

    transform:
        rotate(45deg);

    font-family:
        Georgia, serif;

    font-size: 32px;
}


body.black2050
.notification-empty-core > span,
body.black2050
.deadline-ring {
    position: absolute;

    inset: 14px;

    border:
        1px solid rgba(201,169,93,.16);
}


body.black2050
.notification-empty > div:last-child,
body.black2050
.deadline-empty > div:last-child {
    max-width: 580px;
}


body.black2050
.notification-empty h4,
body.black2050
.deadline-empty h4 {
    margin:
        4px 0 7px;

    color: #34383d;

    font-size: 17px;
}


body.black2050
.notification-empty
p:not(.eyebrow),
body.black2050
.deadline-empty
p:not(.eyebrow) {
    margin: 0;

    color: #8a867f;

    font-size: 9px;

    line-height: 1.55;
}


/* NOTIFICATION CARDS */

body.black2050
.notification-list,
body.black2050
.deadline-list {
    padding:
        8px 18px 18px;
}


body.black2050
.notification-card {
    position: relative;

    display: grid;

    grid-template-columns:
        118px minmax(0,1fr);

    margin-top: 10px;

    background: #fff;

    border:
        1px solid #e7e0d6;
}


body.black2050
.notification-card::before {
    content: "";

    position: absolute;

    top: -1px;
    left: -1px;

    width: 72px;
    height: 2px;
}


body.black2050
.notification-risk-high::before {
    background: #df5358;
}


body.black2050
.notification-risk-medium::before {
    background: #dda943;
}


body.black2050
.notification-risk-low::before {
    background: #5fc98b;
}


body.black2050
.notification-risk-unknown::before {
    background: #9b968d;
}


body.black2050
.notification-date {
    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 18px;

    background:
        rgba(201,169,93,.045);

    border-right:
        1px solid #ece6dd;
}


body.black2050
.notification-date span,
body.black2050
.notification-data span,
body.black2050
.deadline-data span,
body.black2050
.deadline-note span {
    color: #a19b92;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .13em;
}


body.black2050
.notification-date strong {
    margin-top: 7px;

    color: #3d4146;

    font-size: 10px;
}


body.black2050
.notification-date small {
    margin-top: 7px;

    color: #98752c;

    font-size: 7px;
}


body.black2050
.notification-main {
    padding: 17px 20px;
}


body.black2050
.notification-title > span,
body.black2050
.deadline-index {
    color: #a67f2b;

    font-size: 7px;
    font-weight: 850;
}


body.black2050
.notification-title h4,
body.black2050
.deadline-main h4 {
    margin:
        5px 0 0;

    color: #2c3035;

    font-size: 13px;
}


body.black2050
.notification-data {
    display: grid;

    grid-template-columns:
        repeat(5,minmax(0,1fr));

    gap: 16px;

    margin-top: 15px;

    padding-top: 13px;

    border-top:
        1px solid #ece7df;
}


body.black2050
.notification-data strong,
body.black2050
.deadline-data strong {
    display: block;

    margin-top: 6px;

    color: #585c62;

    font-size: 8px;
}


body.black2050
.terms-state-ok {
    color: #347754 !important;
}


body.black2050
.terms-state-warning {
    color: #ad7b18 !important;
}


/* DEADLINES */

body.black2050
.deadline-heading-stats {
    display: flex;

    gap: 8px;
}


body.black2050
.deadline-heading-stats span {
    padding: 6px 8px;

    color: #896a25;

    background: #f7f2e7;

    border: 1px solid #e4d7b8;

    font-size: 7px;
    font-weight: 850;
}


body.black2050
.deadline-heading-stats
span.pending {
    color: #a67518;

    background: #fff6df;
}


body.black2050
.deadline-card {
    position: relative;

    display: grid;

    grid-template-columns:
        125px minmax(0,1fr);

    margin-top: 10px;

    background: #fff;

    border:
        1px solid #e7e0d6;
}


body.black2050
.deadline-card::before {
    content: "";

    position: absolute;

    top: -1px;
    left: -1px;

    width: 72px;
    height: 2px;
}


body.black2050
.deadline-pending::before {
    background: #dda943;
}


body.black2050
.deadline-validated::before {
    background: #5fc98b;
}


body.black2050
.deadline-status {
    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 18px;

    background:
        rgba(201,169,93,.045);

    border-right:
        1px solid #ece6dd;
}


body.black2050
.deadline-status span {
    color: #9e978e;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .13em;
}


body.black2050
.deadline-status strong {
    margin-top: 7px;

    color: #a57618;

    font-size: 8px;
}


body.black2050
.deadline-validated
.deadline-status strong {
    color: #347754;
}


body.black2050
.deadline-main {
    padding: 17px 20px;
}


body.black2050
.deadline-data {
    display: grid;

    grid-template-columns:
        1.2fr .8fr .7fr 1.1fr .5fr;

    gap: 15px;

    margin-top: 15px;

    padding-top: 13px;

    border-top:
        1px solid #ece7df;
}


body.black2050
.deadline-note {
    margin-top: 14px;

    padding:
        11px 12px;

    background:
        #f8f6f1;

    border-left:
        2px solid #c7a453;
}


body.black2050
.deadline-note p {
    margin:
        5px 0 0;

    color: #817d77;

    font-size: 8px;

    line-height: 1.5;
}


/* RESPONSIVE */

@media (max-width: 1100px) {

    body.black2050
    .terms-command-metrics {
        grid-template-columns:
            repeat(3,minmax(0,1fr));
    }

    body.black2050
    .notification-data,
    body.black2050
    .deadline-data {
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }
}


@media (max-width: 720px) {

    body.black2050
    .terms-command-header {
        align-items: flex-start;
        flex-direction: column;
    }

    body.black2050
    .terms-command-status {
        width: 100%;
    }

    body.black2050
    .terms-command-metrics {
        grid-template-columns: 1fr;
    }

    body.black2050
    .terms-warning {
        grid-template-columns: 1fr;
    }

    body.black2050
    .terms-regime-state {
        text-align: left;
    }

    body.black2050
    .notification-empty,
    body.black2050
    .deadline-empty {
        flex-direction: column;

        text-align: center;
    }

    body.black2050
    .notification-card,
    body.black2050
    .deadline-card {
        grid-template-columns: 1fr;
    }

    body.black2050
    .notification-date,
    body.black2050
    .deadline-status {
        border-right: 0;

        border-bottom:
            1px solid #ece6dd;
    }

    body.black2050
    .notification-data,
    body.black2050
    .deadline-data {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   FIN BLACK 2050 · NOTIFICACIONES Y PLAZOS
   ============================================================ */


/* ============================================================
   BLACK 2050 · RESUMEN EJECUTIVO
   ============================================================ */

body.black2050 .summary-command {
    margin-bottom: 18px;

    color: #eef1f4;

    background:
        radial-gradient(
            circle at 90% 10%,
            rgba(201,169,93,.11),
            transparent 25%
        ),
        linear-gradient(
            110deg,
            #101620,
            #171f29
        );

    border:
        1px solid rgba(201,169,93,.20);

    box-shadow:
        0 14px 34px rgba(14,17,22,.08);
}


body.black2050
.summary-command-header {
    min-height: 108px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 24px;

    padding: 22px 26px;

    border-bottom:
        1px solid rgba(255,255,255,.055);
}


body.black2050
.summary-command-header h3 {
    margin: 2px 0 6px;

    color: #fff;

    font-size: 21px;
}


body.black2050
.summary-command-header
p:not(.eyebrow) {
    margin: 0;

    color: #788492;

    font-size: 10px;
}


body.black2050
.summary-command-status {
    min-width: 190px;

    display: flex;
    align-items: center;

    gap: 11px;

    padding: 12px 14px;

    background: rgba(0,0,0,.20);

    border:
        1px solid rgba(255,255,255,.07);
}


body.black2050
.summary-command-dot {
    width: 8px;
    height: 8px;

    flex: 0 0 auto;

    border-radius: 50%;

    background: var(--b2050-green);

    box-shadow:
        0 0 0 5px rgba(112,224,160,.07),
        0 0 14px rgba(112,224,160,.34);
}


body.black2050
.summary-command-status strong {
    display: block;

    color: #e9edf2;

    font-size: 8px;
}


body.black2050
.summary-command-status span:not(
    .summary-command-dot
) {
    display: block;

    margin-top: 3px;

    color: #697583;

    font-size: 7px;
}


/* METRICS */

body.black2050
.summary-command-metrics {
    display: grid;

    grid-template-columns:
        repeat(5,minmax(0,1fr));
}


body.black2050
.summary-command-metrics article {
    position: relative;

    min-height: 92px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 15px 20px;

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.075),
            rgba(201,169,93,.018)
        );

    border-top:
        1px solid rgba(201,169,93,.22);

    border-right:
        1px solid rgba(201,169,93,.14);
}


body.black2050
.summary-command-metrics article::before {
    content: "";

    position: absolute;

    top: -1px;
    left: 20px;

    width: 40px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--b2050-gold-bright),
            transparent
        );
}


body.black2050
.summary-command-metrics span {
    color: #a9976f;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .13em;
}


body.black2050
.summary-command-metrics strong {
    margin-top: 5px;

    color: #fff7df;

    font-size: 26px;
}


body.black2050
.summary-command-metrics small {
    margin-top: 5px;

    color: #77818d;

    font-size: 7px;
}


body.black2050
.summary-command-metrics
.summary-metric-attention strong {
    color: #ef666b;
}


/* EXECUTIVE GRID */

body.black2050
.summary-executive-grid,
body.black2050
.summary-operational-grid {
    display: grid;

    grid-template-columns:
        1.15fr .85fr;

    gap: 18px;

    margin-bottom: 18px;
}


body.black2050
.summary-identity,
body.black2050
.summary-radication,
body.black2050
.summary-process,
body.black2050
.summary-intelligence,
body.black2050
.summary-attention {
    background:
        rgba(255,255,255,.82);

    border:
        1px solid rgba(201,169,93,.18);

    box-shadow:
        0 11px 32px rgba(24,25,28,.04);
}


body.black2050
.summary-identity > header,
body.black2050
.summary-radication > header,
body.black2050
.summary-process > header,
body.black2050
.summary-intelligence > header,
body.black2050
.summary-attention > header {
    min-height: 78px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 18px;

    padding: 16px 20px;

    border-bottom:
        1px solid #e7e0d6;
}


body.black2050
.summary-identity h3,
body.black2050
.summary-radication h3,
body.black2050
.summary-process h3,
body.black2050
.summary-intelligence h3,
body.black2050
.summary-attention h3 {
    margin: 2px 0 0;

    font-size: 17px;
}


body.black2050
.summary-identity > header > span,
body.black2050
.summary-attention > header > span {
    color: #8b6c28;

    font-size: 8px;
    font-weight: 850;

    letter-spacing: .09em;
}


/* IDENTITY */

body.black2050
.summary-identity-body {
    display: grid;

    grid-template-columns:
        repeat(2,minmax(0,1fr));

    gap: 1px;

    background: #ebe5dc;
}


body.black2050
.summary-identity-body > div {
    min-height: 76px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 15px 18px;

    background: #fff;
}


body.black2050
.summary-identity-body span,
body.black2050
.summary-radication-data span,
body.black2050
.summary-radication-main span,
body.black2050
.summary-narrative > span,
body.black2050
.summary-attention-grid span {
    color: #a19b92;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .13em;
}


body.black2050
.summary-identity-body strong {
    margin-top: 6px;

    color: #51555a;

    font-size: 9px;
}


body.black2050
.summary-narrative {
    min-height: 110px;

    padding: 18px;

    border-top:
        1px solid #e8e2d9;
}


body.black2050
.summary-narrative p {
    margin:
        8px 0 0;

    color: #73777c;

    font-size: 9px;

    line-height: 1.55;
}


body.black2050
.summary-empty-text {
    color: #9b968e !important;

    font-style: italic;
}


/* RADICATION */

body.black2050
.summary-radication-state {
    padding: 6px 9px;

    color: #347754;

    background: #edf8f1;

    border:
        1px solid #c5dfd0;

    font-size: 7px;
    font-weight: 850;
}


body.black2050
.summary-radication-main {
    padding: 23px 20px;

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.075),
            rgba(201,169,93,.012)
        );

    border-bottom:
        1px solid #e7e0d6;
}


body.black2050
.summary-radication-main strong {
    display: block;

    margin-top: 7px;

    color: #292d32;

    font-size: 24px;
}


body.black2050
.summary-radication-main p {
    margin:
        5px 0 0;

    color: #767a7f;

    font-size: 9px;
}


body.black2050
.summary-radication-data {
    display: grid;

    grid-template-columns:
        repeat(2,minmax(0,1fr));

    gap: 1px;

    background: #ebe5dc;
}


body.black2050
.summary-radication-data > div {
    min-height: 74px;

    padding: 15px;

    background: #fff;
}


body.black2050
.summary-radication-data strong {
    display: block;

    margin-top: 6px;

    color: #595d62;

    font-size: 8px;
}


/* PROCESS LINKS */

body.black2050
.summary-process-list {
    padding:
        7px 17px 17px;
}


body.black2050
.summary-process-list a {
    min-height: 69px;

    display: grid;

    grid-template-columns:
        8px minmax(0,1fr) auto;

    align-items: center;

    gap: 12px;

    padding:
        10px 8px;

    color: inherit;

    border-bottom:
        1px solid #ece7df;

    text-decoration: none;

    transition:
        background .15s ease,
        transform .15s ease;
}


body.black2050
.summary-process-list a:hover {
    transform:
        translateX(3px);

    background:
        rgba(201,169,93,.055);
}


body.black2050
.summary-signal {
    width: 7px;
    height: 7px;

    border-radius: 50%;
}


body.black2050
.summary-signal.ok {
    background: #63d995;
}


body.black2050
.summary-signal.warning {
    background: #dbaa45;
}


body.black2050
.summary-signal.alert {
    background: #df575c;
}


body.black2050
.summary-process-list strong {
    display: block;

    color: #4c5055;

    font-size: 9px;
}


body.black2050
.summary-process-list small {
    display: block;

    margin-top: 4px;

    color: #98938c;

    font-size: 7px;
}


body.black2050
.summary-process-list b {
    color: #9c7627;

    font-size: 14px;
}


/* INTELLIGENCE */

body.black2050
.summary-intelligence-list {
    padding:
        9px 17px 17px;
}


body.black2050
.summary-intelligence-list a {
    display: block;

    padding:
        14px 8px;

    color: inherit;

    border-bottom:
        1px solid #ece7df;

    text-decoration: none;

    transition:
        background .15s ease;
}


body.black2050
.summary-intelligence-list a:hover {
    background:
        rgba(201,169,93,.055);
}


body.black2050
.summary-intelligence-list
a > div {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 15px;
}


body.black2050
.summary-intelligence-list span {
    color: #65696e;

    font-size: 8px;
    font-weight: 750;
}


body.black2050
.summary-intelligence-list strong {
    color: #1f2832;

    font-size: 20px;
}


body.black2050
.summary-intelligence-list small {
    display: block;

    margin-top: 5px;

    color: #9a958e;

    font-size: 7px;
}


/* ATTENTION */

body.black2050
.summary-attention {
    margin-bottom: 18px;
}


body.black2050
.summary-attention-grid {
    display: grid;

    grid-template-columns:
        repeat(4,minmax(0,1fr));
}


body.black2050
.summary-attention-grid > div {
    position: relative;

    min-height: 105px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 17px 20px;

    border-right:
        1px solid #e8e2d9;
}


body.black2050
.summary-attention-grid > div::before {
    content: "";

    position: absolute;

    top: 0;
    left: 20px;

    width: 40px;
    height: 2px;
}


body.black2050
.summary-attention-grid
.attention::before {
    background: #d6a13b;
}


body.black2050
.summary-attention-grid
.critical::before {
    background: #dc5055;
}


body.black2050
.summary-attention-grid
.clear::before {
    background: #60c98a;
}


body.black2050
.summary-attention-grid strong {
    margin-top: 6px;

    color: #3a3e43;

    font-size: 23px;
}


body.black2050
.summary-attention-grid
.attention strong {
    color: #b17d1d;
}


body.black2050
.summary-attention-grid
.critical strong {
    color: #c64146;
}


body.black2050
.summary-attention-grid
.clear strong {
    color: #347754;
}


body.black2050
.summary-attention-grid small {
    margin-top: 5px;

    color: #99948d;

    font-size: 7px;
}


body.black2050
.summary-empty-panel {
    min-height: 230px;

    display: grid;
    place-items: center;

    color: #918c84;

    font-size: 10px;
}


/* RESPONSIVE */

@media (max-width: 1050px) {

    body.black2050
    .summary-command-metrics {
        grid-template-columns:
            repeat(3,minmax(0,1fr));
    }

    body.black2050
    .summary-executive-grid,
    body.black2050
    .summary-operational-grid {
        grid-template-columns: 1fr;
    }

    body.black2050
    .summary-attention-grid {
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }
}


@media (max-width: 700px) {

    body.black2050
    .summary-command-header {
        align-items: flex-start;
        flex-direction: column;
    }

    body.black2050
    .summary-command-status {
        width: 100%;
    }

    body.black2050
    .summary-command-metrics,
    body.black2050
    .summary-identity-body,
    body.black2050
    .summary-radication-data,
    body.black2050
    .summary-attention-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   FIN BLACK 2050 · RESUMEN EJECUTIVO
   ============================================================ */

/* BLACK 2050 · Resumen: señal operativa de tamaño fijo */
body.black2050
.summary-process-list
.summary-signal {
    width: 7px;
    height: 7px;

    min-width: 7px;
    min-height: 7px;

    max-width: 7px;
    max-height: 7px;

    align-self: center;
    justify-self: center;

    display: block;

    border-radius: 50%;

    box-sizing: border-box;
}

/* BLACK 2050 · Resumen: señal operativa de tamaño fijo */
body.black2050
.summary-process-list
.summary-signal {
    width: 7px;
    height: 7px;

    min-width: 7px;
    min-height: 7px;

    max-width: 7px;
    max-height: 7px;

    align-self: center;
    justify-self: center;

    display: block;

    border-radius: 50%;

    box-sizing: border-box;
}

/* BLACK 2050 · señales del Resumen sin colisión con .alert global */

body.black2050
.summary-process-list
.summary-signal {
    display: block;

    width: 7px !important;
    height: 7px !important;

    min-width: 7px !important;
    min-height: 7px !important;

    max-width: 7px !important;
    max-height: 7px !important;

    padding: 0 !important;
    margin: 0 !important;

    border: 0 !important;
    border-radius: 50%;

    align-self: center;
    justify-self: center;

    box-sizing: border-box;
}

body.black2050
.summary-signal.summary-signal-ok {
    background: #63d995;
}

body.black2050
.summary-signal.summary-signal-warning {
    background: #dbaa45;
}

body.black2050
.summary-signal.summary-signal-alert {
    background: #df575c;
}

/* BLACK 2050 · señales del Resumen sin colisión con .alert global */

body.black2050
.summary-process-list
.summary-signal {
    display: block;

    width: 7px !important;
    height: 7px !important;

    min-width: 7px !important;
    min-height: 7px !important;

    max-width: 7px !important;
    max-height: 7px !important;

    padding: 0 !important;
    margin: 0 !important;

    border: 0 !important;
    border-radius: 50%;

    align-self: center;
    justify-self: center;

    box-sizing: border-box;
}

body.black2050
.summary-signal.summary-signal-ok {
    background: #63d995;
}

body.black2050
.summary-signal.summary-signal-warning {
    background: #dbaa45;
}

body.black2050
.summary-signal.summary-signal-alert {
    background: #df575c;
}


/* ============================================================
   BLACK 2050 · CRONOLOGÍA
   ============================================================ */

body.black2050 .timeline-command {
    margin-bottom: 18px;

    color: #eef1f4;

    background:
        radial-gradient(
            circle at 90% 10%,
            rgba(201,169,93,.11),
            transparent 25%
        ),
        linear-gradient(
            110deg,
            #101620,
            #171f29
        );

    border:
        1px solid rgba(201,169,93,.20);

    box-shadow:
        0 14px 34px rgba(14,17,22,.08);
}


body.black2050
.timeline-command-header {
    min-height: 108px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 24px;

    padding: 22px 26px;

    border-bottom:
        1px solid rgba(255,255,255,.055);
}


body.black2050
.timeline-command-header h3 {
    margin: 2px 0 6px;

    color: #fff;

    font-size: 21px;
}


body.black2050
.timeline-command-header
p:not(.eyebrow) {
    margin: 0;

    color: #788492;

    font-size: 10px;
}


body.black2050
.timeline-command-status {
    min-width: 190px;

    display: flex;
    align-items: center;

    gap: 11px;

    padding: 12px 14px;

    background: rgba(0,0,0,.20);

    border:
        1px solid rgba(255,255,255,.07);
}


body.black2050
.timeline-command-dot {
    width: 8px;
    height: 8px;

    flex: 0 0 auto;

    border-radius: 50%;

    background: var(--b2050-green);

    box-shadow:
        0 0 0 5px rgba(112,224,160,.07),
        0 0 14px rgba(112,224,160,.34);
}


body.black2050
.timeline-command-status strong {
    display: block;

    color: #e9edf2;

    font-size: 8px;
}


body.black2050
.timeline-command-status span:not(
    .timeline-command-dot
) {
    display: block;

    margin-top: 3px;

    color: #697583;

    font-size: 7px;
}


/* METRICS */

body.black2050
.timeline-command-metrics {
    display: grid;

    grid-template-columns:
        repeat(5,minmax(0,1fr));
}


body.black2050
.timeline-command-metrics article {
    position: relative;

    min-height: 92px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 15px 20px;

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.075),
            rgba(201,169,93,.018)
        );

    border-top:
        1px solid rgba(201,169,93,.22);

    border-right:
        1px solid rgba(201,169,93,.14);
}


body.black2050
.timeline-command-metrics article::before {
    content: "";

    position: absolute;

    top: -1px;
    left: 20px;

    width: 40px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--b2050-gold-bright),
            transparent
        );
}


body.black2050
.timeline-command-metrics span {
    color: #a9976f;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .13em;
}


body.black2050
.timeline-command-metrics strong {
    margin-top: 5px;

    color: #fff7df;

    font-size: 26px;
}


body.black2050
.timeline-command-metrics small {
    margin-top: 5px;

    color: #77818d;

    font-size: 7px;
}


body.black2050
.timeline-metric-match strong {
    color: #67d99a;
}


body.black2050
.timeline-metric-document strong {
    color: #d9b761;
}


body.black2050
.timeline-metric-system strong {
    color: #a5afba;
}


/* CONSOLE */

body.black2050
.timeline-console {
    margin-bottom: 18px;

    background:
        rgba(255,255,255,.82);

    border:
        1px solid rgba(201,169,93,.18);

    box-shadow:
        0 11px 32px rgba(24,25,28,.04);
}


body.black2050
.timeline-console-heading {
    min-height: 86px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    padding: 18px 22px;

    border-bottom:
        1px solid #e6dfd5;
}


body.black2050
.timeline-console-heading h3 {
    margin: 2px 0 4px;

    font-size: 18px;
}


body.black2050
.timeline-console-heading
p:not(.eyebrow) {
    margin: 0;

    color: #918c84;

    font-size: 8px;
}


body.black2050
.timeline-console-count {
    color: #896a25;

    font-size: 8px;
    font-weight: 850;

    letter-spacing: .08em;
}


/* LIST */

body.black2050
.timeline-command-list {
    position: relative;

    padding:
        12px 18px 22px;
}


body.black2050
.timeline-command-list::before {
    content: "";

    position: absolute;

    top: 18px;
    bottom: 24px;
    left: 145px;

    width: 1px;

    background:
        linear-gradient(
            180deg,
            rgba(201,169,93,.46),
            rgba(201,169,93,.10)
        );
}


body.black2050
.timeline-command-event {
    position: relative;

    display: grid;

    grid-template-columns:
        105px 42px minmax(0,1fr) 130px;

    min-height: 110px;

    margin-bottom: 8px;

    background: #fff;

    border:
        1px solid #e7e0d6;

    transition:
        transform .15s ease,
        border-color .15s ease,
        box-shadow .15s ease;
}


body.black2050
.timeline-command-event:hover {
    transform:
        translateX(3px);

    border-color:
        rgba(201,169,93,.42);

    box-shadow:
        0 9px 24px rgba(24,25,28,.055);
}


/* DATE */

body.black2050
.timeline-command-date {
    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 16px;

    text-align: right;
}


body.black2050
.timeline-command-date span {
    color: #aaa49b;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .12em;
}


body.black2050
.timeline-command-date strong {
    margin-top: 6px;

    color: #55595e;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace;

    font-size: 9px;
}


body.black2050
.timeline-command-date small {
    margin-top: 4px;

    color: #99948d;

    font-size: 7px;
}


/* MARKER */

body.black2050
.timeline-command-marker {
    position: relative;

    display: grid;
    place-items: center;
}


body.black2050
.timeline-command-marker span {
    position: relative;
    z-index: 2;

    width: 10px;
    height: 10px;

    display: block;

    border-radius: 50%;

    background: #999;

    border: 2px solid #fff;

    box-shadow:
        0 0 0 1px #aaa;
}


/* SOURCE COLORS */

body.black2050
.timeline-source-agreement
.timeline-command-marker span {
    background: #c99f45;

    box-shadow:
        0 0 0 1px #c99f45,
        0 0 10px rgba(201,159,69,.22);
}


body.black2050
.timeline-source-match
.timeline-command-marker span {
    background: #4fbd7f;

    box-shadow:
        0 0 0 1px #4fbd7f,
        0 0 10px rgba(79,189,127,.24);
}


body.black2050
.timeline-source-document
.timeline-command-marker span {
    background: #ba9444;

    box-shadow:
        0 0 0 1px #ba9444;
}


body.black2050
.timeline-source-notification
.timeline-command-marker span,
body.black2050
.timeline-source-deadline
.timeline-command-marker span {
    background: #dc575c;

    box-shadow:
        0 0 0 1px #dc575c;
}


body.black2050
.timeline-source-defense
.timeline-command-marker span {
    background: #d5993c;

    box-shadow:
        0 0 0 1px #d5993c;
}


body.black2050
.timeline-source-centinela
.timeline-command-marker span {
    background: #67d99a;

    box-shadow:
        0 0 0 1px #67d99a;
}


body.black2050
.timeline-source-related
.timeline-command-marker span,
body.black2050
.timeline-source-fact
.timeline-command-marker span {
    background: #7f70c6;

    box-shadow:
        0 0 0 1px #7f70c6;
}


body.black2050
.timeline-source-system
.timeline-command-marker span {
    background: #9099a4;

    box-shadow:
        0 0 0 1px #9099a4;
}


/* EVENT MAIN */

body.black2050
.timeline-command-event-main {
    min-width: 0;

    padding:
        15px 18px;

    border-left:
        1px solid #eee8df;
}


body.black2050
.timeline-event-top {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 15px;
}


body.black2050
.timeline-source-code {
    color: #9a7628;

    font-size: 7px;
    font-weight: 900;

    letter-spacing: .08em;
}


body.black2050
.timeline-source-label {
    margin-left: 7px;

    color: #8e8981;

    font-size: 6px;
    font-weight: 800;

    letter-spacing: .08em;
}


body.black2050
.timeline-event-type {
    color: #aaa49c;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace;

    font-size: 6px;
}


body.black2050
.timeline-command-event-main h4 {
    margin:
        6px 0 0;

    color: #30343a;

    font-size: 12px;
}


body.black2050
.timeline-command-event-main p {
    margin:
        5px 0 0;

    color: #777b80;

    font-size: 9px;

    line-height: 1.45;
}


body.black2050
.timeline-event-meta {
    display: flex;
    flex-wrap: wrap;

    gap: 6px;

    margin-top: 10px;
}


body.black2050
.timeline-event-meta span {
    padding:
        4px 6px;

    color: #9a958d;

    background: #f8f6f1;

    border:
        1px solid #ece6dc;

    font-size: 6px;
    font-weight: 750;
}


/* ACTION */

body.black2050
.timeline-command-action {
    display: flex;
    align-items: stretch;

    border-left:
        1px solid #ece6dd;
}


body.black2050
.timeline-command-action a {
    width: 100%;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 8px;

    color: #4c5055;

    text-align: center;

    text-decoration: none;

    font-size: 8px;
    font-weight: 800;

    transition:
        background .15s ease;
}


body.black2050
.timeline-command-action a span {
    color: #9b7527;

    font-size: 15px;
}


body.black2050
.timeline-command-action a:hover {
    background:
        rgba(201,169,93,.06);
}


body.black2050
.timeline-no-action {
    margin: auto;

    color: #aaa49c;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .10em;
}


/* EMPTY */

body.black2050
.timeline-empty {
    min-height: 240px;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 30px;

    padding: 35px;
}


body.black2050
.timeline-empty-core {
    width: 82px;
    height: 82px;

    display: grid;
    place-items: center;

    color: #c2a256;

    border:
        1px solid rgba(201,169,93,.30);

    font-family:
        Georgia, serif;

    font-size: 30px;
}


body.black2050
.timeline-empty h4 {
    margin:
        4px 0 6px;

    font-size: 17px;
}


body.black2050
.timeline-empty p:not(.eyebrow) {
    margin: 0;

    color: #8d8881;

    font-size: 9px;
}


/* RESPONSIVE */

@media (max-width: 1050px) {

    body.black2050
    .timeline-command-metrics {
        grid-template-columns:
            repeat(3,minmax(0,1fr));
    }

    body.black2050
    .timeline-command-event {
        grid-template-columns:
            95px 36px minmax(0,1fr);
    }

    body.black2050
    .timeline-command-action {
        grid-column:
            1 / -1;

        min-height: 46px;

        border-left: 0;

        border-top:
            1px solid #ece6dd;
    }

    body.black2050
    .timeline-command-action a {
        flex-direction: row;
    }

    body.black2050
    .timeline-command-list::before {
        left: 131px;
    }
}


@media (max-width: 700px) {

    body.black2050
    .timeline-command-header {
        align-items: flex-start;
        flex-direction: column;
    }

    body.black2050
    .timeline-command-status {
        width: 100%;
    }

    body.black2050
    .timeline-command-metrics {
        grid-template-columns: 1fr;
    }

    body.black2050
    .timeline-command-list::before {
        display: none;
    }

    body.black2050
    .timeline-command-event {
        grid-template-columns: 1fr;
    }

    body.black2050
    .timeline-command-date {
        text-align: left;

        border-bottom:
            1px solid #ece6dd;
    }

    body.black2050
    .timeline-command-marker {
        display: none;
    }

    body.black2050
    .timeline-command-event-main {
        border-left: 0;
    }

    body.black2050
    .timeline-event-top {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* ============================================================
   FIN BLACK 2050 · CRONOLOGÍA
   ============================================================ */


/* ============================================================
   BLACK 2050 · CRONOLOGÍA
   ============================================================ */

body.black2050 .timeline-command {
    margin-bottom: 18px;

    color: #eef1f4;

    background:
        radial-gradient(
            circle at 90% 10%,
            rgba(201,169,93,.11),
            transparent 25%
        ),
        linear-gradient(
            110deg,
            #101620,
            #171f29
        );

    border:
        1px solid rgba(201,169,93,.20);

    box-shadow:
        0 14px 34px rgba(14,17,22,.08);
}


body.black2050
.timeline-command-header {
    min-height: 108px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 24px;

    padding: 22px 26px;

    border-bottom:
        1px solid rgba(255,255,255,.055);
}


body.black2050
.timeline-command-header h3 {
    margin: 2px 0 6px;

    color: #fff;

    font-size: 21px;
}


body.black2050
.timeline-command-header
p:not(.eyebrow) {
    margin: 0;

    color: #788492;

    font-size: 10px;
}


body.black2050
.timeline-command-status {
    min-width: 190px;

    display: flex;
    align-items: center;

    gap: 11px;

    padding: 12px 14px;

    background: rgba(0,0,0,.20);

    border:
        1px solid rgba(255,255,255,.07);
}


body.black2050
.timeline-command-dot {
    width: 8px;
    height: 8px;

    flex: 0 0 auto;

    border-radius: 50%;

    background: var(--b2050-green);

    box-shadow:
        0 0 0 5px rgba(112,224,160,.07),
        0 0 14px rgba(112,224,160,.34);
}


body.black2050
.timeline-command-status strong {
    display: block;

    color: #e9edf2;

    font-size: 8px;
}


body.black2050
.timeline-command-status span:not(
    .timeline-command-dot
) {
    display: block;

    margin-top: 3px;

    color: #697583;

    font-size: 7px;
}


/* METRICS */

body.black2050
.timeline-command-metrics {
    display: grid;

    grid-template-columns:
        repeat(5,minmax(0,1fr));
}


body.black2050
.timeline-command-metrics article {
    position: relative;

    min-height: 92px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 15px 20px;

    background:
        linear-gradient(
            135deg,
            rgba(201,169,93,.075),
            rgba(201,169,93,.018)
        );

    border-top:
        1px solid rgba(201,169,93,.22);

    border-right:
        1px solid rgba(201,169,93,.14);
}


body.black2050
.timeline-command-metrics article::before {
    content: "";

    position: absolute;

    top: -1px;
    left: 20px;

    width: 40px;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            var(--b2050-gold-bright),
            transparent
        );
}


body.black2050
.timeline-command-metrics span {
    color: #a9976f;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .13em;
}


body.black2050
.timeline-command-metrics strong {
    margin-top: 5px;

    color: #fff7df;

    font-size: 26px;
}


body.black2050
.timeline-command-metrics small {
    margin-top: 5px;

    color: #77818d;

    font-size: 7px;
}


body.black2050
.timeline-metric-match strong {
    color: #67d99a;
}


body.black2050
.timeline-metric-document strong {
    color: #d9b761;
}


body.black2050
.timeline-metric-system strong {
    color: #a5afba;
}


/* CONSOLE */

body.black2050
.timeline-console {
    margin-bottom: 18px;

    background:
        rgba(255,255,255,.82);

    border:
        1px solid rgba(201,169,93,.18);

    box-shadow:
        0 11px 32px rgba(24,25,28,.04);
}


body.black2050
.timeline-console-heading {
    min-height: 86px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    padding: 18px 22px;

    border-bottom:
        1px solid #e6dfd5;
}


body.black2050
.timeline-console-heading h3 {
    margin: 2px 0 4px;

    font-size: 18px;
}


body.black2050
.timeline-console-heading
p:not(.eyebrow) {
    margin: 0;

    color: #918c84;

    font-size: 8px;
}


body.black2050
.timeline-console-count {
    color: #896a25;

    font-size: 8px;
    font-weight: 850;

    letter-spacing: .08em;
}


/* LIST */

body.black2050
.timeline-command-list {
    position: relative;

    padding:
        12px 18px 22px;
}


body.black2050
.timeline-command-list::before {
    content: "";

    position: absolute;

    top: 18px;
    bottom: 24px;
    left: 145px;

    width: 1px;

    background:
        linear-gradient(
            180deg,
            rgba(201,169,93,.46),
            rgba(201,169,93,.10)
        );
}


body.black2050
.timeline-command-event {
    position: relative;

    display: grid;

    grid-template-columns:
        105px 42px minmax(0,1fr) 130px;

    min-height: 110px;

    margin-bottom: 8px;

    background: #fff;

    border:
        1px solid #e7e0d6;

    transition:
        transform .15s ease,
        border-color .15s ease,
        box-shadow .15s ease;
}


body.black2050
.timeline-command-event:hover {
    transform:
        translateX(3px);

    border-color:
        rgba(201,169,93,.42);

    box-shadow:
        0 9px 24px rgba(24,25,28,.055);
}


/* DATE */

body.black2050
.timeline-command-date {
    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 16px;

    text-align: right;
}


body.black2050
.timeline-command-date span {
    color: #aaa49b;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .12em;
}


body.black2050
.timeline-command-date strong {
    margin-top: 6px;

    color: #55595e;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace;

    font-size: 9px;
}


body.black2050
.timeline-command-date small {
    margin-top: 4px;

    color: #99948d;

    font-size: 7px;
}


/* MARKER */

body.black2050
.timeline-command-marker {
    position: relative;

    display: grid;
    place-items: center;
}


body.black2050
.timeline-command-marker span {
    position: relative;
    z-index: 2;

    width: 10px;
    height: 10px;

    display: block;

    border-radius: 50%;

    background: #999;

    border: 2px solid #fff;

    box-shadow:
        0 0 0 1px #aaa;
}


/* SOURCE COLORS */

body.black2050
.timeline-source-agreement
.timeline-command-marker span {
    background: #c99f45;

    box-shadow:
        0 0 0 1px #c99f45,
        0 0 10px rgba(201,159,69,.22);
}


body.black2050
.timeline-source-match
.timeline-command-marker span {
    background: #4fbd7f;

    box-shadow:
        0 0 0 1px #4fbd7f,
        0 0 10px rgba(79,189,127,.24);
}


body.black2050
.timeline-source-document
.timeline-command-marker span {
    background: #ba9444;

    box-shadow:
        0 0 0 1px #ba9444;
}


body.black2050
.timeline-source-notification
.timeline-command-marker span,
body.black2050
.timeline-source-deadline
.timeline-command-marker span {
    background: #dc575c;

    box-shadow:
        0 0 0 1px #dc575c;
}


body.black2050
.timeline-source-defense
.timeline-command-marker span {
    background: #d5993c;

    box-shadow:
        0 0 0 1px #d5993c;
}


body.black2050
.timeline-source-centinela
.timeline-command-marker span {
    background: #67d99a;

    box-shadow:
        0 0 0 1px #67d99a;
}


body.black2050
.timeline-source-related
.timeline-command-marker span,
body.black2050
.timeline-source-fact
.timeline-command-marker span {
    background: #7f70c6;

    box-shadow:
        0 0 0 1px #7f70c6;
}


body.black2050
.timeline-source-system
.timeline-command-marker span {
    background: #9099a4;

    box-shadow:
        0 0 0 1px #9099a4;
}


/* EVENT MAIN */

body.black2050
.timeline-command-event-main {
    min-width: 0;

    padding:
        15px 18px;

    border-left:
        1px solid #eee8df;
}


body.black2050
.timeline-event-top {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 15px;
}


body.black2050
.timeline-source-code {
    color: #9a7628;

    font-size: 7px;
    font-weight: 900;

    letter-spacing: .08em;
}


body.black2050
.timeline-source-label {
    margin-left: 7px;

    color: #8e8981;

    font-size: 6px;
    font-weight: 800;

    letter-spacing: .08em;
}


body.black2050
.timeline-event-type {
    color: #aaa49c;

    font-family:
        "SFMono-Regular",
        Consolas,
        monospace;

    font-size: 6px;
}


body.black2050
.timeline-command-event-main h4 {
    margin:
        6px 0 0;

    color: #30343a;

    font-size: 12px;
}


body.black2050
.timeline-command-event-main p {
    margin:
        5px 0 0;

    color: #777b80;

    font-size: 9px;

    line-height: 1.45;
}


body.black2050
.timeline-event-meta {
    display: flex;
    flex-wrap: wrap;

    gap: 6px;

    margin-top: 10px;
}


body.black2050
.timeline-event-meta span {
    padding:
        4px 6px;

    color: #9a958d;

    background: #f8f6f1;

    border:
        1px solid #ece6dc;

    font-size: 6px;
    font-weight: 750;
}


/* ACTION */

body.black2050
.timeline-command-action {
    display: flex;
    align-items: stretch;

    border-left:
        1px solid #ece6dd;
}


body.black2050
.timeline-command-action a {
    width: 100%;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 8px;

    color: #4c5055;

    text-align: center;

    text-decoration: none;

    font-size: 8px;
    font-weight: 800;

    transition:
        background .15s ease;
}


body.black2050
.timeline-command-action a span {
    color: #9b7527;

    font-size: 15px;
}


body.black2050
.timeline-command-action a:hover {
    background:
        rgba(201,169,93,.06);
}


body.black2050
.timeline-no-action {
    margin: auto;

    color: #aaa49c;

    font-size: 6px;
    font-weight: 850;

    letter-spacing: .10em;
}


/* EMPTY */

body.black2050
.timeline-empty {
    min-height: 240px;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 30px;

    padding: 35px;
}


body.black2050
.timeline-empty-core {
    width: 82px;
    height: 82px;

    display: grid;
    place-items: center;

    color: #c2a256;

    border:
        1px solid rgba(201,169,93,.30);

    font-family:
        Georgia, serif;

    font-size: 30px;
}


body.black2050
.timeline-empty h4 {
    margin:
        4px 0 6px;

    font-size: 17px;
}


body.black2050
.timeline-empty p:not(.eyebrow) {
    margin: 0;

    color: #8d8881;

    font-size: 9px;
}


/* RESPONSIVE */

@media (max-width: 1050px) {

    body.black2050
    .timeline-command-metrics {
        grid-template-columns:
            repeat(3,minmax(0,1fr));
    }

    body.black2050
    .timeline-command-event {
        grid-template-columns:
            95px 36px minmax(0,1fr);
    }

    body.black2050
    .timeline-command-action {
        grid-column:
            1 / -1;

        min-height: 46px;

        border-left: 0;

        border-top:
            1px solid #ece6dd;
    }

    body.black2050
    .timeline-command-action a {
        flex-direction: row;
    }

    body.black2050
    .timeline-command-list::before {
        left: 131px;
    }
}


@media (max-width: 700px) {

    body.black2050
    .timeline-command-header {
        align-items: flex-start;
        flex-direction: column;
    }

    body.black2050
    .timeline-command-status {
        width: 100%;
    }

    body.black2050
    .timeline-command-metrics {
        grid-template-columns: 1fr;
    }

    body.black2050
    .timeline-command-list::before {
        display: none;
    }

    body.black2050
    .timeline-command-event {
        grid-template-columns: 1fr;
    }

    body.black2050
    .timeline-command-date {
        text-align: left;

        border-bottom:
            1px solid #ece6dd;
    }

    body.black2050
    .timeline-command-marker {
        display: none;
    }

    body.black2050
    .timeline-command-event-main {
        border-left: 0;
    }

    body.black2050
    .timeline-event-top {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* ============================================================
   FIN BLACK 2050 · CRONOLOGÍA
   ============================================================ */

/* ============================================================
   BLACK 2050 · CRONOLOGÍA · LEGIBILIDAD
   ============================================================ */

/* Cabecera */
body.black2050
.timeline-command-header
p:not(.eyebrow) {
    font-size: 11px;
    line-height: 1.45;
}

body.black2050
.timeline-command-status strong {
    font-size: 9px;
}

body.black2050
.timeline-command-status span:not(
    .timeline-command-dot
) {
    font-size: 8px;
}


/* Métricas superiores */
body.black2050
.timeline-command-metrics span {
    font-size: 7.5px;
}

body.black2050
.timeline-command-metrics strong {
    font-size: 29px;
}

body.black2050
.timeline-command-metrics small {
    font-size: 8.5px;
    line-height: 1.35;
}


/* Encabezado historial */
body.black2050
.timeline-console-heading h3 {
    font-size: 20px;
}

body.black2050
.timeline-console-heading
p:not(.eyebrow) {
    font-size: 9.5px;
}

body.black2050
.timeline-console-count {
    font-size: 9px;
}


/* Tarjeta de evento */
body.black2050
.timeline-command-event {
    grid-template-columns:
        115px 44px minmax(0,1fr) 145px;

    min-height: 122px;
}


/* Fecha */
body.black2050
.timeline-command-date span {
    font-size: 7px;
}

body.black2050
.timeline-command-date strong {
    font-size: 11px;
}

body.black2050
.timeline-command-date small {
    font-size: 8.5px;
}


/* Origen y tipo */
body.black2050
.timeline-source-code {
    font-size: 8px;
}

body.black2050
.timeline-source-label {
    font-size: 7.5px;
}

body.black2050
.timeline-event-type {
    font-size: 7.5px;
}


/* Contenido principal */
body.black2050
.timeline-command-event-main h4 {
    margin-top: 8px;

    font-size: 14px;
    line-height: 1.3;
}

body.black2050
.timeline-command-event-main p {
    margin-top: 7px;

    font-size: 10.5px;
    line-height: 1.5;
}


/* Metadata */
body.black2050
.timeline-event-meta {
    margin-top: 12px;
}

body.black2050
.timeline-event-meta span {
    padding: 5px 7px;

    font-size: 7.5px;
}


/* Acción derecha */
body.black2050
.timeline-command-action a {
    font-size: 9.5px;
}

body.black2050
.timeline-command-action a span {
    font-size: 18px;
}

body.black2050
.timeline-no-action {
    font-size: 7.5px;
}


/* Ajuste responsive */
@media (max-width: 1050px) {

    body.black2050
    .timeline-command-event {
        grid-template-columns:
            105px 40px minmax(0,1fr);
    }
}

/* ============================================================
   FIN CRONOLOGÍA · LEGIBILIDAD
   ============================================================ */

/* BLACK 2050 · Cronología · ajuste final de escala */

/* Fecha */
body.black2050
.timeline-command-date span {
    font-size: 8px;
}

body.black2050
.timeline-command-date strong {
    font-size: 12px;
}

body.black2050
.timeline-command-date small {
    font-size: 9px;
}


/* Código y origen */
body.black2050
.timeline-source-code {
    font-size: 9px;
}

body.black2050
.timeline-source-label {
    font-size: 8.5px;
}


/* Tipo técnico de evento */
body.black2050
.timeline-event-type {
    font-size: 8.5px;
    font-weight: 650;
}


/* Título y descripción */
body.black2050
.timeline-command-event-main h4 {
    font-size: 15px;
}

body.black2050
.timeline-command-event-main p {
    font-size: 11.5px;
}


/* Metadata */
body.black2050
.timeline-event-meta span {
    font-size: 8px;
}


/* Acción lateral */
body.black2050
.timeline-command-action a {
    font-size: 11px;
    font-weight: 850;
}

body.black2050
.timeline-command-action a span {
    font-size: 20px;
}


/* Tarjeta ligeramente más alta */
body.black2050
.timeline-command-event {
    min-height: 132px;
}


/* ============================================================
   BLACK 2050 · PROMOCIONES PROCESALES
   ============================================================ */

body.black2050 .promotion-command {
    margin-top: 18px;
    background:
        linear-gradient(
            135deg,
            rgba(8, 13, 21, .99),
            rgba(15, 22, 31, .98)
        );
    border: 1px solid rgba(185, 146, 75, .34);
    box-shadow: 0 18px 50px rgba(0, 0, 0, .18);
    overflow: hidden;
}

body.black2050 .promotion-command-header {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: flex-start;
    padding: 26px 28px 22px;
}

body.black2050 .promotion-command-header h2 {
    margin: 5px 0 7px;
    color: #f5f1e8;
    font-size: 28px;
    line-height: 1.05;
    font-weight: 760;
}

body.black2050 .promotion-command-subtitle {
    max-width: 760px;
    margin: 0;
    color: rgba(226, 231, 237, .62);
    font-size: 11px;
    line-height: 1.7;
}

body.black2050 .promotion-command-status {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 205px;
    padding-top: 5px;
}

body.black2050 .promotion-status-led {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #62c98d;
    box-shadow:
        0 0 0 4px rgba(98, 201, 141, .08),
        0 0 13px rgba(98, 201, 141, .45);
    flex: 0 0 auto;
}

body.black2050 .promotion-command-status strong,
body.black2050 .promotion-command-status small {
    display: block;
}

body.black2050 .promotion-command-status strong {
    color: #d9e4dd;
    font-size: 9px;
    letter-spacing: .13em;
}

body.black2050 .promotion-command-status small {
    margin-top: 4px;
    color: rgba(213, 219, 226, .42);
    font-size: 8px;
    letter-spacing: .11em;
}

body.black2050 .promotion-command-metrics {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    border-top: 1px solid rgba(255, 255, 255, .055);
    border-bottom: 1px solid rgba(255, 255, 255, .055);
}

body.black2050 .promotion-command-metrics article {
    min-height: 100px;
    padding: 17px 20px;
    border-right: 1px solid rgba(255, 255, 255, .055);
}

body.black2050 .promotion-command-metrics article:last-child {
    border-right: 0;
}

body.black2050 .promotion-command-metrics span,
body.black2050 .promotion-command-metrics small,
body.black2050 .promotion-command-metrics strong {
    display: block;
}

body.black2050 .promotion-command-metrics span {
    color: rgba(220, 225, 230, .48);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .14em;
}

body.black2050 .promotion-command-metrics strong {
    margin: 7px 0 5px;
    color: #f4f2ec;
    font-size: 29px;
    font-weight: 720;
    line-height: 1;
}

body.black2050 .promotion-command-metrics small {
    color: rgba(217, 223, 229, .40);
    font-size: 8.5px;
}

body.black2050 .promotion-metric-gold strong {
    color: #d4b36d;
}

body.black2050 .promotion-metric-blue strong {
    color: #87a8c9;
}

body.black2050 .promotion-metric-warning strong {
    color: #d89a65;
}

body.black2050 .promotion-metric-green strong {
    color: #78c99a;
}

body.black2050 .promotion-state-rule {
    display: grid;
    grid-template-columns:
        minmax(90px, 1fr) auto
        minmax(90px, 1fr) auto
        minmax(90px, 1fr) auto
        minmax(90px, 1fr) auto
        minmax(90px, 1fr) auto
        minmax(90px, 1fr);
    align-items: center;
    gap: 12px;
    padding: 19px 28px 17px;
}

body.black2050 .promotion-state-rule > i {
    color: rgba(207, 171, 100, .37);
    font-size: 14px;
    font-style: normal;
}

body.black2050 .promotion-state-step {
    position: relative;
    padding-left: 25px;
}

body.black2050 .promotion-state-step > span {
    position: absolute;
    left: 0;
    top: 0;
    color: rgba(207, 171, 100, .45);
    font-size: 8px;
    font-weight: 800;
}

body.black2050 .promotion-state-step strong {
    display: block;
    color: #ddd8cd;
    font-size: 9px;
    letter-spacing: .10em;
}

body.black2050 .promotion-state-step small {
    display: block;
    margin-top: 4px;
    color: rgba(216, 222, 228, .36);
    font-size: 8px;
}

body.black2050 .promotion-semantic-rule {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 12px 28px;
    background: rgba(190, 144, 65, .06);
    border-top: 1px solid rgba(190, 144, 65, .15);
}

body.black2050 .promotion-semantic-rule strong {
    color: #c9a45d;
    font-size: 8px;
    letter-spacing: .14em;
}

body.black2050 .promotion-semantic-rule span {
    color: rgba(227, 222, 210, .67);
    font-size: 9px;
}

body.black2050 .promotion-console {
    margin-top: 16px;
    background: #fbfaf7;
    border: 1px solid #dedbd3;
    box-shadow: 0 8px 25px rgba(14, 19, 25, .06);
}

body.black2050 .promotion-console-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    padding: 24px 28px;
    border-bottom: 1px solid #e5e1d8;
}

body.black2050 .promotion-console-header h3 {
    margin: 5px 0 6px;
    color: #121820;
    font-size: 21px;
}

body.black2050 .promotion-console-header p:not(.eyebrow) {
    margin: 0;
    color: #6f7479;
    font-size: 10px;
    line-height: 1.6;
}

body.black2050 .promotion-new-button,
body.black2050 .promotion-empty-action,
body.black2050 .promotion-submit-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 1px solid #161c23;
    background: #11171e;
    color: #f6f2e9;
    text-decoration: none;
    font-size: 10px;
    font-weight: 780;
    letter-spacing: .02em;
    transition:
        transform .16s ease,
        box-shadow .16s ease,
        background .16s ease;
}

body.black2050 .promotion-new-button {
    min-height: 38px;
    padding: 0 15px;
}

body.black2050 .promotion-new-button:hover,
body.black2050 .promotion-empty-action:hover,
body.black2050 .promotion-submit-button:hover {
    transform: translateY(-1px);
    background: #1b232c;
    box-shadow: 0 7px 18px rgba(0, 0, 0, .12);
}

body.black2050 .promotion-new-button span {
    color: #c8a35e;
    font-size: 15px;
}

body.black2050 .promotion-empty {
    max-width: 690px;
    margin: 0 auto;
    padding: 58px 30px 62px;
    text-align: center;
}

body.black2050 .promotion-empty-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: 17px;
    border: 1px solid #c9b078;
    color: #9b7941;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .12em;
}

body.black2050 .promotion-empty h4 {
    max-width: 500px;
    margin: 8px auto 10px;
    color: #1b2026;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 22px;
    line-height: 1.22;
    font-weight: 500;
}

body.black2050 .promotion-empty > p:not(.eyebrow) {
    max-width: 580px;
    margin: 0 auto;
    color: #74787c;
    font-size: 10.5px;
    line-height: 1.75;
}

body.black2050 .promotion-empty-action {
    margin-top: 22px;
    min-height: 40px;
    padding: 0 18px;
}

body.black2050 .promotion-empty-action span {
    color: #c7a15c;
    font-size: 16px;
}

body.black2050 .promotion-form-panel {
    padding: 25px 28px 30px;
}

body.black2050 .promotion-form-panel > header {
    display: flex;
    justify-content: space-between;
    gap: 22px;
    align-items: flex-start;
    padding-bottom: 20px;
    border-bottom: 1px solid #e4e0d7;
}

body.black2050 .promotion-form-code {
    display: inline-block;
    color: #987437;
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .14em;
}

body.black2050 .promotion-form-panel h4 {
    margin: 5px 0 6px;
    color: #151a20;
    font-size: 20px;
}

body.black2050 .promotion-form-panel header p {
    max-width: 620px;
    margin: 0;
    color: #73787c;
    font-size: 10px;
    line-height: 1.65;
}

body.black2050 .promotion-cancel-link {
    color: #5d646a;
    font-size: 9px;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid #b7b9ba;
}

body.black2050 .promotion-form {
    padding-top: 24px;
}

body.black2050 .promotion-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 20px;
}

body.black2050 .promotion-form-grid label {
    display: block;
}

body.black2050 .promotion-form-grid label > span {
    display: block;
    margin-bottom: 7px;
    color: #343a40;
    font-size: 9px;
    font-weight: 780;
    letter-spacing: .02em;
}

body.black2050 .promotion-field-wide {
    grid-column: 1 / -1;
}

body.black2050 .promotion-form input,
body.black2050 .promotion-form select,
body.black2050 .promotion-form textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #d6d2ca;
    background: #fff;
    color: #1c2228;
    font: inherit;
    font-size: 11px;
    outline: none;
    transition:
        border-color .15s ease,
        box-shadow .15s ease;
}

body.black2050 .promotion-form input,
body.black2050 .promotion-form select {
    height: 40px;
    padding: 0 11px;
}

body.black2050 .promotion-form textarea {
    resize: vertical;
    padding: 11px;
    line-height: 1.55;
}

body.black2050 .promotion-form input:focus,
body.black2050 .promotion-form select:focus,
body.black2050 .promotion-form textarea:focus {
    border-color: #b99a61;
    box-shadow: 0 0 0 3px rgba(185, 154, 97, .09);
}

body.black2050 .promotion-form-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    margin-top: 23px;
    padding-top: 19px;
    border-top: 1px solid #e3dfd6;
}

body.black2050 .promotion-form-warning strong,
body.black2050 .promotion-form-warning span {
    display: block;
}

body.black2050 .promotion-form-warning strong {
    color: #97743d;
    font-size: 8px;
    letter-spacing: .13em;
}

body.black2050 .promotion-form-warning span {
    margin-top: 4px;
    color: #777b7e;
    font-size: 9px;
}

body.black2050 .promotion-submit-button {
    min-height: 40px;
    padding: 0 18px;
    cursor: pointer;
}

body.black2050 .promotion-submit-button span {
    color: #c7a05a;
    font-size: 16px;
}

body.black2050 .promotion-list {
    padding: 12px;
}

body.black2050 .promotion-card {
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr) 150px;
    gap: 18px;
    align-items: stretch;
    min-height: 118px;
    margin-bottom: 9px;
    background: #fff;
    border: 1px solid #e2ded6;
    transition:
        transform .15s ease,
        box-shadow .15s ease;
}

body.black2050 .promotion-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 7px 18px rgba(15, 20, 26, .06);
}

body.black2050 .promotion-card-id {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-right: 1px solid #e5e1d9;
    background: #f6f4ee;
}

body.black2050 .promotion-card-id span {
    color: #a18046;
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .12em;
}

body.black2050 .promotion-card-id strong {
    margin-top: 5px;
    color: #242a30;
    font-size: 12px;
}

body.black2050 .promotion-card-main {
    padding: 17px 0;
}

body.black2050 .promotion-card-topline {
    display: flex;
    align-items: center;
    gap: 10px;
}

body.black2050 .promotion-kind,
body.black2050 .promotion-status-badge {
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

body.black2050 .promotion-kind {
    color: #8f7444;
}

body.black2050 .promotion-status-badge {
    padding: 4px 7px;
    border: 1px solid #d6d2ca;
    color: #646a70;
    background: #faf9f6;
}

body.black2050 .promotion-card-main h4 {
    margin: 8px 0 5px;
    color: #181e24;
    font-size: 14px;
}

body.black2050 .promotion-card-main > p {
    margin: 0;
    color: #696f74;
    font-size: 10px;
    line-height: 1.55;
}

body.black2050 .promotion-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 12px;
}

body.black2050 .promotion-card-meta span {
    padding: 4px 6px;
    border: 1px solid #e0ddd6;
    background: #f8f7f4;
    color: #777b7f;
    font-size: 7.5px;
    font-weight: 750;
    letter-spacing: .035em;
}

body.black2050 .promotion-card-state {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    padding: 17px 18px;
    border-left: 1px solid #e5e1d9;
}

body.black2050 .promotion-card-state small {
    color: #999b9d;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}

body.black2050 .promotion-card-state strong {
    margin-top: 5px;
    color: #343a40;
    font-size: 9px;
    letter-spacing: .05em;
}

body.black2050 .promotion-status-ready .promotion-card-state strong {
    color: #9c7838;
}

body.black2050 .promotion-status-filed .promotion-card-state strong,
body.black2050 .promotion-status-received .promotion-card-state strong {
    color: #557b9b;
}

body.black2050 .promotion-status-ruled .promotion-card-state strong {
    color: #548a69;
}

@media (max-width: 1100px) {
    body.black2050 .promotion-command-metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    body.black2050 .promotion-command-metrics article:nth-child(3) {
        border-right: 0;
    }

    body.black2050 .promotion-state-rule {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    body.black2050 .promotion-state-rule > i {
        display: none;
    }
}

@media (max-width: 760px) {
    body.black2050 .promotion-command-header,
    body.black2050 .promotion-console-header,
    body.black2050 .promotion-form-footer {
        flex-direction: column;
    }

    body.black2050 .promotion-command-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.black2050 .promotion-state-rule {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.black2050 .promotion-form-grid {
        grid-template-columns: 1fr;
    }

    body.black2050 .promotion-field-wide {
        grid-column: auto;
    }

    body.black2050 .promotion-card {
        grid-template-columns: 58px minmax(0, 1fr);
    }

    body.black2050 .promotion-card-state {
        grid-column: 1 / -1;
        align-items: flex-start;
        border-left: 0;
        border-top: 1px solid #e5e1d9;
    }
}



/* ============================================================
   BLACK 2050 · PROMOCIONES PROCESALES
   ============================================================ */

body.black2050 .promotion-command {
    margin-top: 18px;
    background:
        linear-gradient(
            135deg,
            rgba(8, 13, 21, .99),
            rgba(15, 22, 31, .98)
        );
    border: 1px solid rgba(185, 146, 75, .34);
    box-shadow: 0 18px 50px rgba(0, 0, 0, .18);
    overflow: hidden;
}

body.black2050 .promotion-command-header {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: flex-start;
    padding: 26px 28px 22px;
}

body.black2050 .promotion-command-header h2 {
    margin: 5px 0 7px;
    color: #f5f1e8;
    font-size: 28px;
    line-height: 1.05;
    font-weight: 760;
}

body.black2050 .promotion-command-subtitle {
    max-width: 760px;
    margin: 0;
    color: rgba(226, 231, 237, .62);
    font-size: 11px;
    line-height: 1.7;
}

body.black2050 .promotion-command-status {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 205px;
    padding-top: 5px;
}

body.black2050 .promotion-status-led {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #62c98d;
    box-shadow:
        0 0 0 4px rgba(98, 201, 141, .08),
        0 0 13px rgba(98, 201, 141, .45);
    flex: 0 0 auto;
}

body.black2050 .promotion-command-status strong,
body.black2050 .promotion-command-status small {
    display: block;
}

body.black2050 .promotion-command-status strong {
    color: #d9e4dd;
    font-size: 9px;
    letter-spacing: .13em;
}

body.black2050 .promotion-command-status small {
    margin-top: 4px;
    color: rgba(213, 219, 226, .42);
    font-size: 8px;
    letter-spacing: .11em;
}

body.black2050 .promotion-command-metrics {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    border-top: 1px solid rgba(255, 255, 255, .055);
    border-bottom: 1px solid rgba(255, 255, 255, .055);
}

body.black2050 .promotion-command-metrics article {
    min-height: 100px;
    padding: 17px 20px;
    border-right: 1px solid rgba(255, 255, 255, .055);
}

body.black2050 .promotion-command-metrics article:last-child {
    border-right: 0;
}

body.black2050 .promotion-command-metrics span,
body.black2050 .promotion-command-metrics small,
body.black2050 .promotion-command-metrics strong {
    display: block;
}

body.black2050 .promotion-command-metrics span {
    color: rgba(220, 225, 230, .48);
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .14em;
}

body.black2050 .promotion-command-metrics strong {
    margin: 7px 0 5px;
    color: #f4f2ec;
    font-size: 29px;
    font-weight: 720;
    line-height: 1;
}

body.black2050 .promotion-command-metrics small {
    color: rgba(217, 223, 229, .40);
    font-size: 8.5px;
}

body.black2050 .promotion-metric-gold strong {
    color: #d4b36d;
}

body.black2050 .promotion-metric-blue strong {
    color: #87a8c9;
}

body.black2050 .promotion-metric-warning strong {
    color: #d89a65;
}

body.black2050 .promotion-metric-green strong {
    color: #78c99a;
}

body.black2050 .promotion-state-rule {
    display: grid;
    grid-template-columns:
        minmax(90px, 1fr) auto
        minmax(90px, 1fr) auto
        minmax(90px, 1fr) auto
        minmax(90px, 1fr) auto
        minmax(90px, 1fr) auto
        minmax(90px, 1fr);
    align-items: center;
    gap: 12px;
    padding: 19px 28px 17px;
}

body.black2050 .promotion-state-rule > i {
    color: rgba(207, 171, 100, .37);
    font-size: 14px;
    font-style: normal;
}

body.black2050 .promotion-state-step {
    position: relative;
    padding-left: 25px;
}

body.black2050 .promotion-state-step > span {
    position: absolute;
    left: 0;
    top: 0;
    color: rgba(207, 171, 100, .45);
    font-size: 8px;
    font-weight: 800;
}

body.black2050 .promotion-state-step strong {
    display: block;
    color: #ddd8cd;
    font-size: 9px;
    letter-spacing: .10em;
}

body.black2050 .promotion-state-step small {
    display: block;
    margin-top: 4px;
    color: rgba(216, 222, 228, .36);
    font-size: 8px;
}

body.black2050 .promotion-semantic-rule {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 12px 28px;
    background: rgba(190, 144, 65, .06);
    border-top: 1px solid rgba(190, 144, 65, .15);
}

body.black2050 .promotion-semantic-rule strong {
    color: #c9a45d;
    font-size: 8px;
    letter-spacing: .14em;
}

body.black2050 .promotion-semantic-rule span {
    color: rgba(227, 222, 210, .67);
    font-size: 9px;
}

body.black2050 .promotion-console {
    margin-top: 16px;
    background: #fbfaf7;
    border: 1px solid #dedbd3;
    box-shadow: 0 8px 25px rgba(14, 19, 25, .06);
}

body.black2050 .promotion-console-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    padding: 24px 28px;
    border-bottom: 1px solid #e5e1d8;
}

body.black2050 .promotion-console-header h3 {
    margin: 5px 0 6px;
    color: #121820;
    font-size: 21px;
}

body.black2050 .promotion-console-header p:not(.eyebrow) {
    margin: 0;
    color: #6f7479;
    font-size: 10px;
    line-height: 1.6;
}

body.black2050 .promotion-new-button,
body.black2050 .promotion-empty-action,
body.black2050 .promotion-submit-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 1px solid #161c23;
    background: #11171e;
    color: #f6f2e9;
    text-decoration: none;
    font-size: 10px;
    font-weight: 780;
    letter-spacing: .02em;
    transition:
        transform .16s ease,
        box-shadow .16s ease,
        background .16s ease;
}

body.black2050 .promotion-new-button {
    min-height: 38px;
    padding: 0 15px;
}

body.black2050 .promotion-new-button:hover,
body.black2050 .promotion-empty-action:hover,
body.black2050 .promotion-submit-button:hover {
    transform: translateY(-1px);
    background: #1b232c;
    box-shadow: 0 7px 18px rgba(0, 0, 0, .12);
}

body.black2050 .promotion-new-button span {
    color: #c8a35e;
    font-size: 15px;
}

body.black2050 .promotion-empty {
    max-width: 690px;
    margin: 0 auto;
    padding: 58px 30px 62px;
    text-align: center;
}

body.black2050 .promotion-empty-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: 17px;
    border: 1px solid #c9b078;
    color: #9b7941;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .12em;
}

body.black2050 .promotion-empty h4 {
    max-width: 500px;
    margin: 8px auto 10px;
    color: #1b2026;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 22px;
    line-height: 1.22;
    font-weight: 500;
}

body.black2050 .promotion-empty > p:not(.eyebrow) {
    max-width: 580px;
    margin: 0 auto;
    color: #74787c;
    font-size: 10.5px;
    line-height: 1.75;
}

body.black2050 .promotion-empty-action {
    margin-top: 22px;
    min-height: 40px;
    padding: 0 18px;
}

body.black2050 .promotion-empty-action span {
    color: #c7a15c;
    font-size: 16px;
}

body.black2050 .promotion-form-panel {
    padding: 25px 28px 30px;
}

body.black2050 .promotion-form-panel > header {
    display: flex;
    justify-content: space-between;
    gap: 22px;
    align-items: flex-start;
    padding-bottom: 20px;
    border-bottom: 1px solid #e4e0d7;
}

body.black2050 .promotion-form-code {
    display: inline-block;
    color: #987437;
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .14em;
}

body.black2050 .promotion-form-panel h4 {
    margin: 5px 0 6px;
    color: #151a20;
    font-size: 20px;
}

body.black2050 .promotion-form-panel header p {
    max-width: 620px;
    margin: 0;
    color: #73787c;
    font-size: 10px;
    line-height: 1.65;
}

body.black2050 .promotion-cancel-link {
    color: #5d646a;
    font-size: 9px;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px solid #b7b9ba;
}

body.black2050 .promotion-form {
    padding-top: 24px;
}

body.black2050 .promotion-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 20px;
}

body.black2050 .promotion-form-grid label {
    display: block;
}

body.black2050 .promotion-form-grid label > span {
    display: block;
    margin-bottom: 7px;
    color: #343a40;
    font-size: 9px;
    font-weight: 780;
    letter-spacing: .02em;
}

body.black2050 .promotion-field-wide {
    grid-column: 1 / -1;
}

body.black2050 .promotion-form input,
body.black2050 .promotion-form select,
body.black2050 .promotion-form textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #d6d2ca;
    background: #fff;
    color: #1c2228;
    font: inherit;
    font-size: 11px;
    outline: none;
    transition:
        border-color .15s ease,
        box-shadow .15s ease;
}

body.black2050 .promotion-form input,
body.black2050 .promotion-form select {
    height: 40px;
    padding: 0 11px;
}

body.black2050 .promotion-form textarea {
    resize: vertical;
    padding: 11px;
    line-height: 1.55;
}

body.black2050 .promotion-form input:focus,
body.black2050 .promotion-form select:focus,
body.black2050 .promotion-form textarea:focus {
    border-color: #b99a61;
    box-shadow: 0 0 0 3px rgba(185, 154, 97, .09);
}

body.black2050 .promotion-form-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    margin-top: 23px;
    padding-top: 19px;
    border-top: 1px solid #e3dfd6;
}

body.black2050 .promotion-form-warning strong,
body.black2050 .promotion-form-warning span {
    display: block;
}

body.black2050 .promotion-form-warning strong {
    color: #97743d;
    font-size: 8px;
    letter-spacing: .13em;
}

body.black2050 .promotion-form-warning span {
    margin-top: 4px;
    color: #777b7e;
    font-size: 9px;
}

body.black2050 .promotion-submit-button {
    min-height: 40px;
    padding: 0 18px;
    cursor: pointer;
}

body.black2050 .promotion-submit-button span {
    color: #c7a05a;
    font-size: 16px;
}

body.black2050 .promotion-list {
    padding: 12px;
}

body.black2050 .promotion-card {
    display: grid;
    grid-template-columns: 68px minmax(0, 1fr) 150px;
    gap: 18px;
    align-items: stretch;
    min-height: 118px;
    margin-bottom: 9px;
    background: #fff;
    border: 1px solid #e2ded6;
    transition:
        transform .15s ease,
        box-shadow .15s ease;
}

body.black2050 .promotion-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 7px 18px rgba(15, 20, 26, .06);
}

body.black2050 .promotion-card-id {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-right: 1px solid #e5e1d9;
    background: #f6f4ee;
}

body.black2050 .promotion-card-id span {
    color: #a18046;
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .12em;
}

body.black2050 .promotion-card-id strong {
    margin-top: 5px;
    color: #242a30;
    font-size: 12px;
}

body.black2050 .promotion-card-main {
    padding: 17px 0;
}

body.black2050 .promotion-card-topline {
    display: flex;
    align-items: center;
    gap: 10px;
}

body.black2050 .promotion-kind,
body.black2050 .promotion-status-badge {
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

body.black2050 .promotion-kind {
    color: #8f7444;
}

body.black2050 .promotion-status-badge {
    padding: 4px 7px;
    border: 1px solid #d6d2ca;
    color: #646a70;
    background: #faf9f6;
}

body.black2050 .promotion-card-main h4 {
    margin: 8px 0 5px;
    color: #181e24;
    font-size: 14px;
}

body.black2050 .promotion-card-main > p {
    margin: 0;
    color: #696f74;
    font-size: 10px;
    line-height: 1.55;
}

body.black2050 .promotion-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 12px;
}

body.black2050 .promotion-card-meta span {
    padding: 4px 6px;
    border: 1px solid #e0ddd6;
    background: #f8f7f4;
    color: #777b7f;
    font-size: 7.5px;
    font-weight: 750;
    letter-spacing: .035em;
}

body.black2050 .promotion-card-state {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    padding: 17px 18px;
    border-left: 1px solid #e5e1d9;
}

body.black2050 .promotion-card-state small {
    color: #999b9d;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .12em;
}

body.black2050 .promotion-card-state strong {
    margin-top: 5px;
    color: #343a40;
    font-size: 9px;
    letter-spacing: .05em;
}

body.black2050 .promotion-status-ready .promotion-card-state strong {
    color: #9c7838;
}

body.black2050 .promotion-status-filed .promotion-card-state strong,
body.black2050 .promotion-status-received .promotion-card-state strong {
    color: #557b9b;
}

body.black2050 .promotion-status-ruled .promotion-card-state strong {
    color: #548a69;
}

@media (max-width: 1100px) {
    body.black2050 .promotion-command-metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    body.black2050 .promotion-command-metrics article:nth-child(3) {
        border-right: 0;
    }

    body.black2050 .promotion-state-rule {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    body.black2050 .promotion-state-rule > i {
        display: none;
    }
}

@media (max-width: 760px) {
    body.black2050 .promotion-command-header,
    body.black2050 .promotion-console-header,
    body.black2050 .promotion-form-footer {
        flex-direction: column;
    }

    body.black2050 .promotion-command-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.black2050 .promotion-state-rule {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.black2050 .promotion-form-grid {
        grid-template-columns: 1fr;
    }

    body.black2050 .promotion-field-wide {
        grid-column: auto;
    }

    body.black2050 .promotion-card {
        grid-template-columns: 58px minmax(0, 1fr);
    }

    body.black2050 .promotion-card-state {
        grid-column: 1 / -1;
        align-items: flex-start;
        border-left: 0;
        border-top: 1px solid #e5e1d9;
    }
}


/* ============================================================
   BLACK 2050 · LEGAL EDITOR
   Documento Oficio · 21.59 x 35.56 cm
   ============================================================ */

body.black2050 .black-legal-workspace {
    margin-top: 18px;
    border: 1px solid #d8d7d2;
    background: #f3f4f5;
    box-shadow: 0 14px 40px rgba(14, 19, 25, .08);
    overflow: hidden;
}

body.black2050 .black-legal-form {
    margin: 0;
}

body.black2050 .legal-editor-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    padding: 20px 22px;
    background: #fff;
    border-bottom: 1px solid #dedfdf;
}

body.black2050 .legal-editor-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px;
    color: #4c5257;
    font-size: 12px;
}

body.black2050 .legal-editor-breadcrumb strong {
    color: #12171d;
    font-size: 17px;
}

body.black2050 .legal-editor-breadcrumb b {
    color: #a6aaad;
    font-weight: 400;
}

body.black2050 .legal-editor-breadcrumb em {
    margin-left: 6px;
    padding: 5px 11px;
    border: 1px solid #dfbd72;
    border-radius: 14px;
    background: #fff4d8;
    color: #9a6417;
    font-size: 8px;
    font-style: normal;
    font-weight: 850;
    letter-spacing: .07em;
}

body.black2050 .legal-editor-heading p {
    margin: 7px 0 0;
    color: #8a8e92;
    font-size: 9px;
}

body.black2050 .legal-editor-close {
    color: #555c62;
    font-size: 9px;
    font-weight: 750;
    text-decoration: none;
    border-bottom: 1px solid #b8bbbd;
}

body.black2050 .legal-editor-metadata {
    display: grid;
    grid-template-columns:
        160px
        minmax(180px, .8fr)
        minmax(280px, 1.4fr)
        150px;
    background: #fff;
    border-bottom: 1px solid #dfe0e0;
}

body.black2050 .legal-editor-metadata > label,
body.black2050 .legal-meta-folio {
    min-height: 78px;
    box-sizing: border-box;
    padding: 14px 15px;
    border-right: 1px solid #ececec;
}

body.black2050 .legal-editor-metadata > label > span,
body.black2050 .legal-meta-folio > span {
    display: block;
    margin-bottom: 7px;
    color: #50565b;
    font-size: 7px;
    font-weight: 850;
    letter-spacing: .065em;
    text-transform: uppercase;
}

body.black2050 .legal-meta-folio strong {
    display: block;
    color: #171c21;
    font-size: 17px;
    letter-spacing: .02em;
}

body.black2050 .legal-meta-folio small {
    display: block;
    margin-top: 4px;
    color: #9a9da0;
    font-size: 7.5px;
}

body.black2050 .legal-editor-metadata input,
body.black2050 .legal-editor-metadata select,
body.black2050 .legal-editor-metadata textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #d8dade;
    border-radius: 3px;
    background: #fff;
    color: #171c21;
    outline: none;
    font: inherit;
    font-size: 10px;
}

body.black2050 .legal-editor-metadata input,
body.black2050 .legal-editor-metadata select {
    height: 36px;
    padding: 0 9px;
}

body.black2050 .legal-editor-metadata textarea {
    min-height: 48px;
    padding: 8px 9px;
    resize: vertical;
    line-height: 1.35;
}

body.black2050 .legal-editor-metadata input:focus,
body.black2050 .legal-editor-metadata select:focus,
body.black2050 .legal-editor-metadata textarea:focus {
    border-color: #b99855;
    box-shadow: 0 0 0 3px rgba(185, 152, 85, .08);
}

body.black2050 .legal-meta-subject {
    grid-column: 2 / 5;
}

body.black2050 .legal-editor-shell {
    background: #e9ebed;
}

body.black2050 .legal-editor-toolbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    min-height: 42px;
    padding: 3px 12px;
    background: #fff;
    border-bottom: 1px solid #d8dadd;
}

body.black2050 .legal-tool {
    min-width: 30px;
    height: 30px;
    padding: 0 7px;
    border: 0;
    background: transparent;
    color: #20262c;
    border-radius: 3px;
    cursor: pointer;
    font-size: 13px;
}

body.black2050 .legal-tool:hover {
    background: #eef0f1;
}

body.black2050 .legal-tool-text {
    font-family: Arial, sans-serif;
    font-weight: 800;
}

body.black2050 .legal-tool-italic {
    font-style: italic;
    font-weight: 600;
}

body.black2050 .legal-tool-underline {
    text-decoration: underline;
}

body.black2050 .legal-tool-divider {
    width: 1px;
    height: 22px;
    margin: 0 6px;
    background: #dedfe0;
}

body.black2050 .legal-font-fixed,
body.black2050 .legal-size-fixed {
    display: flex;
    align-items: center;
    height: 30px;
    box-sizing: border-box;
    padding: 0 10px;
    color: #30363b;
    font-size: 10px;
}

body.black2050 .legal-font-fixed {
    min-width: 82px;
}

body.black2050 .legal-size-fixed {
    border-left: 1px solid #ececec;
}

body.black2050 .legal-format-select {
    height: 30px;
    max-width: 190px;
    border: 0;
    background: transparent;
    color: #30363b;
    outline: none;
    font-size: 9px;
}

body.black2050 .legal-editor-ruler {
    display: grid;
    grid-template-columns: repeat(19, 1fr);
    max-width: 816px;
    height: 22px;
    margin: 0 auto;
    padding: 0 16px;
    box-sizing: border-box;
    background: #f8f8f7;
    border-left: 1px solid #d5d7d8;
    border-right: 1px solid #d5d7d8;
    color: #92979b;
    font-size: 6px;
}

body.black2050 .legal-editor-ruler span {
    position: relative;
    padding-top: 7px;
    text-align: center;
}

body.black2050 .legal-editor-ruler span::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 1px;
    height: 4px;
    background: #bfc2c4;
}

body.black2050 .legal-page-stage {
    max-height: 1240px;
    padding: 22px 34px 40px;
    overflow: auto;
    background:
        linear-gradient(
            90deg,
            #e2e4e6,
            #eef0f1 16%,
            #eef0f1 84%,
            #e2e4e6
        );
}

body.black2050 .legal-office-page {
    position: relative;
    width: 816px;
    min-height: 1344px;
    margin: 0 auto;
    padding: 62px 76px 70px;
    box-sizing: border-box;
    background: #fff;
    color: #111;
    border: 1px solid #c9cbcd;
    box-shadow:
        0 4px 8px rgba(0, 0, 0, .08),
        0 18px 36px rgba(0, 0, 0, .08);
}

body.black2050 .legal-letterhead {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    min-height: 38px;
}

body.black2050 .legal-letterhead-brand strong {
    display: block;
    color: #15191d;
    font-family: Arial, sans-serif;
    font-size: 13px;
    letter-spacing: .16em;
}

body.black2050 .legal-letterhead-brand span {
    display: block;
    margin-top: 2px;
    color: #777;
    font-family: Arial, sans-serif;
    font-size: 6.5px;
    font-weight: 700;
    letter-spacing: .11em;
}

body.black2050 .legal-letterhead-control {
    text-align: right;
}

body.black2050 .legal-letterhead-control span {
    display: block;
    color: #999;
    font-family: Arial, sans-serif;
    font-size: 6px;
    letter-spacing: .12em;
}

body.black2050 .legal-letterhead-control strong {
    display: block;
    margin-top: 2px;
    color: #222;
    font-family: Arial, sans-serif;
    font-size: 9px;
}

body.black2050 .legal-letterhead-rule {
    position: relative;
    height: 7px;
    margin-top: 8px;
    border-top: 4px solid #171b1f;
    border-bottom: 1px solid #b49352;
}

body.black2050 .legal-document-header {
    margin-top: 44px;
    font-family: Arial, sans-serif;
    font-size: 12pt;
}

body.black2050 .legal-case-caption {
    margin-left: auto;
    width: 65%;
    text-align: right;
}

body.black2050 .legal-case-caption strong {
    display: block;
    margin-bottom: 7px;
    font-family: Arial, sans-serif;
    font-size: 9pt;
    line-height: 1.25;
}

body.black2050 .legal-document-addressee {
    max-width: 72%;
    margin-top: 50px;
    white-space: pre-line;
    font-family: Arial, sans-serif;
    font-size: 12pt;
    font-weight: 700;
    line-height: 1.25;
    text-transform: uppercase;
}

body.black2050 .legal-present {
    margin-top: 18px;
    font-family: Arial, sans-serif;
    font-size: 12pt;
    font-weight: 700;
    letter-spacing: .28em;
}

body.black2050 .black-legal-editor {
    min-height: 760px;
    margin-top: 20px;
    outline: none;
    color: #111;
    font-family: Arial, sans-serif;
    font-size: 12pt;
    line-height: 1.5;
    text-align: justify;
    overflow-wrap: break-word;
}

body.black2050 .black-legal-editor:empty::before {
    content: attr(data-placeholder);
    color: #aaa;
    font-style: italic;
    pointer-events: none;
}

body.black2050 .black-legal-editor p,
body.black2050 .black-legal-editor div {
    margin: 0 0 12pt;
    font-family: Arial, sans-serif;
    font-size: 12pt;
    line-height: 1.5;
    text-align: justify;
}

body.black2050 .black-legal-editor h2,
body.black2050 .black-legal-editor h3 {
    margin: 18pt 0 10pt;
    font-family: Arial, sans-serif;
    font-size: 14pt;
    line-height: 1.3;
    font-weight: 700;
}

body.black2050 .black-legal-editor ul,
body.black2050 .black-legal-editor ol {
    margin: 0 0 12pt;
    padding-left: 32px;
}

body.black2050 .black-legal-editor li {
    margin-bottom: 5pt;
    font-family: Arial, sans-serif;
    font-size: 12pt;
    line-height: 1.5;
    text-align: justify;
}

body.black2050 .legal-page-footer {
    position: absolute;
    left: 76px;
    right: 76px;
    bottom: 28px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 8px;
    border-top: 1px solid #d9d9d9;
    color: #8b8b8b;
    font-family: Arial, sans-serif;
    font-size: 7pt;
}

body.black2050 .legal-editor-statusbar {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    min-height: 31px;
    box-sizing: border-box;
    padding: 8px 13px;
    background: #fff;
    border-top: 1px solid #d6d8da;
    color: #74797d;
    font-size: 8px;
}

body.black2050 .legal-editor-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 28px;
    padding: 14px 18px;
    background: #fff;
    border-top: 1px solid #dadcdd;
}

body.black2050 .legal-format-spec strong,
body.black2050 .legal-format-spec span {
    display: block;
}

body.black2050 .legal-format-spec strong {
    color: #a17c39;
    font-size: 7px;
    letter-spacing: .12em;
}

body.black2050 .legal-format-spec span {
    margin-top: 4px;
    color: #767b7f;
    font-size: 8px;
}

body.black2050 .legal-action-buttons {
    display: flex;
    gap: 10px;
}

body.black2050 .legal-action-secondary,
body.black2050 .legal-action-save {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    box-sizing: border-box;
    padding: 0 17px;
    border-radius: 3px;
    font-size: 9px;
    font-weight: 800;
    text-decoration: none;
}

body.black2050 .legal-action-secondary {
    border: 1px solid #ccd0d2;
    background: #fff;
    color: #4c5358;
}

body.black2050 .legal-action-save {
    border: 1px solid #11171c;
    background: #11171c;
    color: #f4f1e9;
    cursor: pointer;
}

body.black2050 .legal-action-save:hover {
    background: #202930;
}

@media (max-width: 1180px) {
    body.black2050 .legal-editor-metadata {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    body.black2050 .legal-meta-subject {
        grid-column: 1 / -1;
    }

    body.black2050 .legal-office-page,
    body.black2050 .legal-editor-ruler {
        transform-origin: top center;
    }
}

@media (max-width: 760px) {
    body.black2050 .legal-editor-heading,
    body.black2050 .legal-editor-actions {
        flex-direction: column;
    }

    body.black2050 .legal-editor-metadata {
        grid-template-columns: 1fr;
    }

    body.black2050 .legal-meta-subject {
        grid-column: auto;
    }

    body.black2050 .legal-page-stage {
        padding-left: 12px;
        padding-right: 12px;
    }

    body.black2050 .legal-editor-statusbar {
        flex-direction: column;
        gap: 4px;
    }
}


/* ============================================================
   BLACK 2050 · PROMOTION PDF ACTIONS
   ============================================================ */

body.black2050 .promotion-card-state {
    gap: 4px;
}

body.black2050 .promotion-card-actions {
    display: flex;
    flex-direction: column;
    gap: 6px;
    width: 100%;
    margin-top: 14px;
}

body.black2050 .promotion-card-action {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 29px;
    padding: 0 8px;
    box-sizing: border-box;
    border: 1px solid #d5d1c8;
    background: #ffffff;
    color: #4d5358;
    font-size: 7.5px;
    font-weight: 800;
    letter-spacing: .035em;
    text-decoration: none;
    transition:
        transform .15s ease,
        border-color .15s ease,
        background .15s ease;
}

body.black2050 .promotion-card-action:hover {
    transform: translateY(-1px);
    border-color: #a88a50;
}

body.black2050 .promotion-card-action-primary {
    border-color: #161c22;
    background: #161c22;
    color: #f5f1e8;
}

body.black2050 .promotion-card-action-primary:hover {
    background: #252e37;
}

@media (max-width: 760px) {
    body.black2050 .promotion-card-actions {
        flex-direction: row;
    }

    body.black2050 .promotion-card-action {
        flex: 1;
    }
}


/* ============================================================
   BLACK 2050 · PROMOTION PDF ACTIONS
   ============================================================ */

body.black2050 .promotion-card-state {
    gap: 4px;
}

body.black2050 .promotion-card-actions {
    display: flex;
    flex-direction: column;
    gap: 6px;
    width: 100%;
    margin-top: 14px;
}

body.black2050 .promotion-card-action {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 29px;
    padding: 0 8px;
    box-sizing: border-box;
    border: 1px solid #d5d1c8;
    background: #ffffff;
    color: #4d5358;
    font-size: 7.5px;
    font-weight: 800;
    letter-spacing: .035em;
    text-decoration: none;
    transition:
        transform .15s ease,
        border-color .15s ease,
        background .15s ease;
}

body.black2050 .promotion-card-action:hover {
    transform: translateY(-1px);
    border-color: #a88a50;
}

body.black2050 .promotion-card-action-primary {
    border-color: #161c22;
    background: #161c22;
    color: #f5f1e8;
}

body.black2050 .promotion-card-action-primary:hover {
    background: #252e37;
}

@media (max-width: 760px) {
    body.black2050 .promotion-card-actions {
        flex-direction: row;
    }

    body.black2050 .promotion-card-action {
        flex: 1;
    }
}


/* ============================================================
   BLACK 2050 · PROMOTION TEMPLATES / SECURE DELETE
   ============================================================ */

body.black2050 .legal-template-bar {
    display: grid;
    grid-template-columns:
        190px
        minmax(280px, 420px)
        minmax(260px, 1fr);
    gap: 18px;
    align-items: center;
    padding: 13px 15px;
    background: #f7f5ef;
    border-bottom: 1px solid #ddd9cf;
}

body.black2050 .legal-template-intro span,
body.black2050 .legal-template-intro strong,
body.black2050 .legal-template-intro small {
    display: block;
}

body.black2050 .legal-template-intro span {
    color: #9b7838;
    font-size: 7px;
    font-weight: 850;
    letter-spacing: .13em;
}

body.black2050 .legal-template-intro strong {
    margin-top: 3px;
    color: #20262b;
    font-size: 10px;
}

body.black2050 .legal-template-intro small {
    margin-top: 3px;
    color: #888d91;
    font-size: 7.5px;
}

body.black2050 .legal-template-bar label > span {
    display: block;
    margin-bottom: 5px;
    color: #53595e;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

body.black2050 .legal-template-bar select {
    width: 100%;
    height: 36px;
    padding: 0 9px;
    border: 1px solid #d7d5ce;
    border-radius: 3px;
    background: #fff;
    color: #20262c;
    outline: none;
    font-size: 9px;
}

body.black2050 .legal-template-description {
    color: #777d81;
    font-size: 8.5px;
    line-height: 1.55;
}

body.black2050 .promotion-card {
    grid-template-columns:
        68px
        minmax(0, 1fr)
        205px;
}

body.black2050 .promotion-card-action-danger {
    border-color: #d4b9b4;
    background: #fff9f8;
    color: #8b4037;
}

body.black2050 .promotion-card-action-danger:hover {
    border-color: #a9574d;
    background: #fff2f0;
}

body.black2050 .promotion-delete-panel {
    margin: 0 12px 18px;
    border: 1px solid #cfb0aa;
    background: #fffafa;
}

body.black2050 .promotion-delete-panel > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: 20px 22px;
    border-bottom: 1px solid #ead8d4;
}

body.black2050 .promotion-delete-panel header span {
    color: #a04d42;
    font-size: 7px;
    font-weight: 850;
    letter-spacing: .14em;
}

body.black2050 .promotion-delete-panel h4 {
    margin: 5px 0 5px;
    color: #2a2020;
    font-size: 18px;
}

body.black2050 .promotion-delete-panel header p {
    max-width: 680px;
    margin: 0;
    color: #786c6a;
    font-size: 9px;
    line-height: 1.6;
}

body.black2050 .promotion-delete-panel header a {
    color: #6d6462;
    font-size: 9px;
    text-decoration: none;
    border-bottom: 1px solid #b7aba8;
}

body.black2050 .promotion-delete-panel form {
    padding: 20px 22px;
}

body.black2050 .promotion-delete-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 16px;
}

body.black2050 .promotion-delete-grid label > span {
    display: block;
    margin-bottom: 6px;
    color: #4d4746;
    font-size: 8px;
    font-weight: 780;
}

body.black2050 .promotion-delete-grid input,
body.black2050 .promotion-delete-grid textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #d8ccc9;
    border-radius: 3px;
    background: #fff;
    color: #211f1f;
    font: inherit;
    font-size: 10px;
    outline: none;
}

body.black2050 .promotion-delete-grid input {
    height: 38px;
    padding: 0 10px;
}

body.black2050 .promotion-delete-grid textarea {
    padding: 10px;
    resize: vertical;
}

body.black2050 .promotion-delete-wide {
    grid-column: 1 / -1;
}

body.black2050 .promotion-delete-ack {
    display: flex;
    gap: 9px;
    align-items: flex-start;
    margin-top: 15px;
    color: #695f5d;
    font-size: 9px;
    line-height: 1.5;
}

body.black2050 .promotion-delete-ack input {
    margin-top: 2px;
}

body.black2050 .promotion-delete-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 18px;
    padding-top: 15px;
    border-top: 1px solid #eadbd8;
}

body.black2050 .promotion-delete-actions a,
body.black2050 .promotion-delete-actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 37px;
    box-sizing: border-box;
    padding: 0 16px;
    font-size: 9px;
    font-weight: 800;
    text-decoration: none;
}

body.black2050 .promotion-delete-actions a {
    border: 1px solid #d2ccca;
    color: #5b5654;
    background: #fff;
}

body.black2050 .promotion-delete-actions button {
    border: 1px solid #7b3028;
    background: #7b3028;
    color: #fff;
    cursor: pointer;
}

body.black2050 .promotion-delete-blocked {
    margin: 18px 22px;
    padding: 13px 15px;
    border: 1px solid #dfc5c0;
    background: #fff5f3;
    color: #87483f;
    font-size: 9px;
}

@media (max-width: 900px) {
    body.black2050 .legal-template-bar {
        grid-template-columns: 1fr;
    }

    body.black2050 .promotion-delete-grid {
        grid-template-columns: 1fr;
    }

    body.black2050 .promotion-delete-wide {
        grid-column: auto;
    }
}


/* ==========================================================
   BLACK 2050 · DISTRIBUCIÓN DOCUMENTAL
   ========================================================== */

body.black2050 .promotion-distribution-panel {
    margin: 0 0 24px;
    padding: 22px;
    border: 1px solid rgba(199, 163, 79, .28);
    background:
        linear-gradient(
            145deg,
            rgba(14, 20, 30, .98),
            rgba(8, 12, 19, .98)
        );
    border-radius: 14px;
}

body.black2050 .promotion-distribution-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

body.black2050 .promotion-distribution-header span,
body.black2050 .promotion-distribution-channel-title span,
body.black2050 .promotion-distribution-history header span,
body.black2050 .promotion-distribution-artifact > div:first-child > span {
    display: block;
    margin-bottom: 5px;
    font-size: 10px;
    letter-spacing: .16em;
    color: #c8a85b;
}

body.black2050 .promotion-distribution-header h4 {
    margin: 0 0 6px;
    font-size: 20px;
    color: #f0f3f7;
}

body.black2050 .promotion-distribution-header p {
    margin: 0;
    color: #8994a4;
    font-size: 13px;
}

body.black2050 .promotion-distribution-header > a {
    padding: 8px 12px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 7px;
    color: #aeb7c4;
    text-decoration: none;
    font-size: 12px;
}

body.black2050 .promotion-distribution-warning {
    margin-bottom: 18px;
    padding: 12px 14px;
    border-left: 3px solid #c8a85b;
    background: rgba(199, 163, 79, .07);
    color: #aeb7c4;
    font-size: 12px;
    line-height: 1.55;
}

body.black2050 .promotion-distribution-warning strong {
    margin-right: 9px;
    color: #d9bd77;
    font-size: 10px;
    letter-spacing: .12em;
}

body.black2050 .promotion-distribution-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

body.black2050 .promotion-distribution-channel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 18px;
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.025);
    border-radius: 10px;
}

body.black2050 .promotion-distribution-channel-title {
    grid-column: 1 / -1;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255,255,255,.07);
}

body.black2050 .promotion-distribution-channel-title strong {
    display: block;
    margin-bottom: 4px;
    color: #edf1f6;
    font-size: 15px;
}

body.black2050 .promotion-distribution-channel-title small {
    color: #7d8999;
}

body.black2050 .promotion-distribution-channel label {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

body.black2050 .promotion-distribution-channel label > span {
    color: #9ca8b8;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
}

body.black2050 .promotion-distribution-channel input,
body.black2050 .promotion-distribution-channel select,
body.black2050 .promotion-distribution-channel textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 11px;
    border: 1px solid rgba(255,255,255,.10);
    background: rgba(3, 7, 12, .78);
    border-radius: 7px;
    color: #e8edf3;
    font: inherit;
    font-size: 12px;
}

body.black2050 .promotion-distribution-channel textarea {
    resize: vertical;
    line-height: 1.5;
}

body.black2050 .promotion-distribution-wide {
    grid-column: 1 / -1;
}

body.black2050 .promotion-distribution-prepare {
    min-height: 40px;
    padding: 9px 14px;
    border: 1px solid #c8a85b;
    background: rgba(199, 163, 79, .12);
    border-radius: 7px;
    color: #e4ca89;
    font-weight: 800;
    cursor: pointer;
}

body.black2050 .promotion-distribution-prepare-whatsapp {
    border-color: rgba(86, 188, 123, .60);
    background: rgba(86, 188, 123, .10);
    color: #87d5a5;
}

body.black2050 .promotion-distribution-safe {
    display: flex;
    align-items: center;
    color: #738091;
    font-size: 10px;
    line-height: 1.4;
}

body.black2050 .promotion-distribution-artifact {
    margin: 18px 0;
    padding: 17px;
    border: 1px solid rgba(77, 151, 207, .25);
    background: rgba(39, 103, 151, .055);
    border-radius: 10px;
}

body.black2050 .promotion-distribution-artifact > div:first-child {
    margin-bottom: 14px;
}

body.black2050 .promotion-distribution-artifact > div:first-child strong {
    display: block;
    margin-bottom: 3px;
    color: #e7edf5;
}

body.black2050 .promotion-distribution-artifact > div:first-child small {
    color: #7890a6;
}

body.black2050 .promotion-distribution-artifact dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 0 0 14px;
}

body.black2050 .promotion-distribution-artifact dl > div {
    min-width: 0;
    padding: 10px;
    border: 1px solid rgba(255,255,255,.06);
    background: rgba(0,0,0,.18);
    border-radius: 7px;
}

body.black2050 .promotion-distribution-artifact dt {
    margin-bottom: 4px;
    color: #708093;
    font-size: 9px;
    letter-spacing: .10em;
    text-transform: uppercase;
}

body.black2050 .promotion-distribution-artifact dd {
    margin: 0;
    color: #d7dee7;
    font-size: 11px;
}

body.black2050 .promotion-distribution-artifact .distribution-hash {
    grid-column: 1 / -1;
}

body.black2050 .promotion-distribution-artifact code {
    display: block;
    overflow-wrap: anywhere;
    color: #a9b6c7;
    font-size: 10px;
}

body.black2050 .promotion-distribution-artifact-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

body.black2050 .promotion-distribution-artifact-actions form {
    margin: 0;
}

body.black2050 .promotion-distribution-artifact-actions button {
    cursor: pointer;
}

body.black2050 .promotion-distribution-whatsapp {
    border-color: rgba(86, 188, 123, .48);
    color: #8ad4a7;
}

body.black2050 .promotion-distribution-smtp-note {
    color: #8d99a8;
    font-size: 11px;
}

body.black2050 .promotion-distribution-manual-note {
    margin: 12px 0 0;
    color: #778596;
    font-size: 11px;
    line-height: 1.5;
}

body.black2050 .promotion-distribution-history {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid rgba(255,255,255,.07);
}

body.black2050 .promotion-distribution-history header strong {
    display: block;
    color: #dce3ec;
    font-size: 13px;
}

body.black2050 .promotion-distribution-history-list {
    display: grid;
    gap: 7px;
    margin-top: 11px;
}

body.black2050 .promotion-distribution-history-list article {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 12px;
    border: 1px solid rgba(255,255,255,.055);
    background: rgba(255,255,255,.018);
    border-radius: 7px;
}

body.black2050 .promotion-distribution-history-list article > div {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

body.black2050 .promotion-distribution-history-list strong {
    color: #cdd5df;
    font-size: 11px;
}

body.black2050 .promotion-distribution-history-list span,
body.black2050 .promotion-distribution-history-list small {
    color: #758293;
    font-size: 10px;
}

body.black2050 .promotion-distribution-history-list b {
    color: #c8a85b;
    font-size: 10px;
    letter-spacing: .07em;
}

@media (max-width: 980px) {
    body.black2050 .promotion-distribution-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    body.black2050 .promotion-distribution-panel {
        padding: 15px;
    }

    body.black2050 .promotion-distribution-header {
        flex-direction: column;
    }

    body.black2050 .promotion-distribution-channel {
        grid-template-columns: 1fr;
    }

    body.black2050 .promotion-distribution-wide {
        grid-column: auto;
    }

    body.black2050 .promotion-distribution-artifact dl {
        grid-template-columns: 1fr;
    }

    body.black2050 .promotion-distribution-artifact .distribution-hash {
        grid-column: auto;
    }
}


/* ==========================================================
   BLACK 2050 · DISTRIBUCIÓN DOCUMENTAL
   ========================================================== */

body.black2050 .promotion-distribution-panel {
    margin: 0 0 24px;
    padding: 22px;
    border: 1px solid rgba(199, 163, 79, .28);
    background:
        linear-gradient(
            145deg,
            rgba(14, 20, 30, .98),
            rgba(8, 12, 19, .98)
        );
    border-radius: 14px;
}

body.black2050 .promotion-distribution-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

body.black2050 .promotion-distribution-header span,
body.black2050 .promotion-distribution-channel-title span,
body.black2050 .promotion-distribution-history header span,
body.black2050 .promotion-distribution-artifact > div:first-child > span {
    display: block;
    margin-bottom: 5px;
    font-size: 10px;
    letter-spacing: .16em;
    color: #c8a85b;
}

body.black2050 .promotion-distribution-header h4 {
    margin: 0 0 6px;
    font-size: 20px;
    color: #f0f3f7;
}

body.black2050 .promotion-distribution-header p {
    margin: 0;
    color: #8994a4;
    font-size: 13px;
}

body.black2050 .promotion-distribution-header > a {
    padding: 8px 12px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 7px;
    color: #aeb7c4;
    text-decoration: none;
    font-size: 12px;
}

body.black2050 .promotion-distribution-warning {
    margin-bottom: 18px;
    padding: 12px 14px;
    border-left: 3px solid #c8a85b;
    background: rgba(199, 163, 79, .07);
    color: #aeb7c4;
    font-size: 12px;
    line-height: 1.55;
}

body.black2050 .promotion-distribution-warning strong {
    margin-right: 9px;
    color: #d9bd77;
    font-size: 10px;
    letter-spacing: .12em;
}

body.black2050 .promotion-distribution-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

body.black2050 .promotion-distribution-channel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 18px;
    border: 1px solid rgba(255,255,255,.08);
    background: rgba(255,255,255,.025);
    border-radius: 10px;
}

body.black2050 .promotion-distribution-channel-title {
    grid-column: 1 / -1;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255,255,255,.07);
}

body.black2050 .promotion-distribution-channel-title strong {
    display: block;
    margin-bottom: 4px;
    color: #edf1f6;
    font-size: 15px;
}

body.black2050 .promotion-distribution-channel-title small {
    color: #7d8999;
}

body.black2050 .promotion-distribution-channel label {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

body.black2050 .promotion-distribution-channel label > span {
    color: #9ca8b8;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
}

body.black2050 .promotion-distribution-channel input,
body.black2050 .promotion-distribution-channel select,
body.black2050 .promotion-distribution-channel textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 11px;
    border: 1px solid rgba(255,255,255,.10);
    background: rgba(3, 7, 12, .78);
    border-radius: 7px;
    color: #e8edf3;
    font: inherit;
    font-size: 12px;
}

body.black2050 .promotion-distribution-channel textarea {
    resize: vertical;
    line-height: 1.5;
}

body.black2050 .promotion-distribution-wide {
    grid-column: 1 / -1;
}

body.black2050 .promotion-distribution-prepare {
    min-height: 40px;
    padding: 9px 14px;
    border: 1px solid #c8a85b;
    background: rgba(199, 163, 79, .12);
    border-radius: 7px;
    color: #e4ca89;
    font-weight: 800;
    cursor: pointer;
}

body.black2050 .promotion-distribution-prepare-whatsapp {
    border-color: rgba(86, 188, 123, .60);
    background: rgba(86, 188, 123, .10);
    color: #87d5a5;
}

body.black2050 .promotion-distribution-safe {
    display: flex;
    align-items: center;
    color: #738091;
    font-size: 10px;
    line-height: 1.4;
}

body.black2050 .promotion-distribution-artifact {
    margin: 18px 0;
    padding: 17px;
    border: 1px solid rgba(77, 151, 207, .25);
    background: rgba(39, 103, 151, .055);
    border-radius: 10px;
}

body.black2050 .promotion-distribution-artifact > div:first-child {
    margin-bottom: 14px;
}

body.black2050 .promotion-distribution-artifact > div:first-child strong {
    display: block;
    margin-bottom: 3px;
    color: #e7edf5;
}

body.black2050 .promotion-distribution-artifact > div:first-child small {
    color: #7890a6;
}

body.black2050 .promotion-distribution-artifact dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 0 0 14px;
}

body.black2050 .promotion-distribution-artifact dl > div {
    min-width: 0;
    padding: 10px;
    border: 1px solid rgba(255,255,255,.06);
    background: rgba(0,0,0,.18);
    border-radius: 7px;
}

body.black2050 .promotion-distribution-artifact dt {
    margin-bottom: 4px;
    color: #708093;
    font-size: 9px;
    letter-spacing: .10em;
    text-transform: uppercase;
}

body.black2050 .promotion-distribution-artifact dd {
    margin: 0;
    color: #d7dee7;
    font-size: 11px;
}

body.black2050 .promotion-distribution-artifact .distribution-hash {
    grid-column: 1 / -1;
}

body.black2050 .promotion-distribution-artifact code {
    display: block;
    overflow-wrap: anywhere;
    color: #a9b6c7;
    font-size: 10px;
}

body.black2050 .promotion-distribution-artifact-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

body.black2050 .promotion-distribution-artifact-actions form {
    margin: 0;
}

body.black2050 .promotion-distribution-artifact-actions button {
    cursor: pointer;
}

body.black2050 .promotion-distribution-whatsapp {
    border-color: rgba(86, 188, 123, .48);
    color: #8ad4a7;
}

body.black2050 .promotion-distribution-smtp-note {
    color: #8d99a8;
    font-size: 11px;
}

body.black2050 .promotion-distribution-manual-note {
    margin: 12px 0 0;
    color: #778596;
    font-size: 11px;
    line-height: 1.5;
}

body.black2050 .promotion-distribution-history {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid rgba(255,255,255,.07);
}

body.black2050 .promotion-distribution-history header strong {
    display: block;
    color: #dce3ec;
    font-size: 13px;
}

body.black2050 .promotion-distribution-history-list {
    display: grid;
    gap: 7px;
    margin-top: 11px;
}

body.black2050 .promotion-distribution-history-list article {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 12px;
    border: 1px solid rgba(255,255,255,.055);
    background: rgba(255,255,255,.018);
    border-radius: 7px;
}

body.black2050 .promotion-distribution-history-list article > div {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

body.black2050 .promotion-distribution-history-list strong {
    color: #cdd5df;
    font-size: 11px;
}

body.black2050 .promotion-distribution-history-list span,
body.black2050 .promotion-distribution-history-list small {
    color: #758293;
    font-size: 10px;
}

body.black2050 .promotion-distribution-history-list b {
    color: #c8a85b;
    font-size: 10px;
    letter-spacing: .07em;
}

@media (max-width: 980px) {
    body.black2050 .promotion-distribution-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {
    body.black2050 .promotion-distribution-panel {
        padding: 15px;
    }

    body.black2050 .promotion-distribution-header {
        flex-direction: column;
    }

    body.black2050 .promotion-distribution-channel {
        grid-template-columns: 1fr;
    }

    body.black2050 .promotion-distribution-wide {
        grid-column: auto;
    }

    body.black2050 .promotion-distribution-artifact dl {
        grid-template-columns: 1fr;
    }

    body.black2050 .promotion-distribution-artifact .distribution-hash {
        grid-column: auto;
    }
}


body.black2050 .promotion-distribution-send-email {
    appearance: none;
    cursor: pointer;
    font: inherit;
}

body.black2050 .promotion-distribution-smtp-ok {
    color: #79c897;
    font-weight: 700;
}


body.black2050 .promotion-card-action-print {
    border-color: rgba(88, 145, 196, .34);
    color: #5f7f9d;
}

body.black2050 .promotion-card-action-print:hover {
    border-color: rgba(88, 145, 196, .62);
    color: #294761;
}


body.black2050 .promotion-distribution-history-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-left: auto;
}

body.black2050 .promotion-distribution-history-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 4px 12px;
    border: 1px solid rgba(199,163,79,.38);
    border-radius: 6px;
    color: #d4b866;
    text-decoration: none;
    font-size: 10px;
    font-weight: 800;
}

body.black2050 .promotion-distribution-history-actions a:hover {
    background: rgba(199,163,79,.09);
    border-color: rgba(199,163,79,.70);
}

body.black2050 .promotion-distribution-history-actions span {
    color: #778596;
    font-size: 9px;
    letter-spacing: .07em;
}

body.black2050
.promotion-distribution-history-actions
.distribution-ready-send {
    color: #71c891;
}

body.black2050
.promotion-distribution-history-actions
.distribution-submitted {
    color: #72a9d4;
}
