/* Ubicación: public_html/asesoria.virtualex.ec/css/tema.css */

/* ==========================================================================
   VARIABLES CORPORATIVAS Y PALETA DE COLORES (PANEL PRIVADO)
   ========================================================================== */
:root {
    --color-primary: #1E3B8E !important;
    --color-primary-hover: #162B6B !important;
    --color-secondary: #F69F0C !important;
    --color-secondary-hover: #D88A08 !important;
    
    /* Variables de estructura para el Menú */
    --sidebar-bg: #ffffff;
    --sidebar-text: #475569;
    --sidebar-hover-bg: #f8fafc;
}

/* Forzar botones generales en la App */
body.logged-in .btn-primary { background-color: var(--color-primary) !important; color: #fff !important; }
body.logged-in .btn-primary:hover { background-color: var(--color-primary-hover) !important; }
body.logged-in .text-primary { color: var(--color-primary) !important; }
body.logged-in .text-secondary { color: var(--color-secondary) !important; }

/* ==========================================================================
   ESTILOS MODERNIZADOS DEL MENÚ LATERAL (SIDEBAR)
   ========================================================================== */
#app-sidebar {
    background: var(--sidebar-bg);
    border-right: 1px solid #f1f5f9;
    box-shadow: 4px 0 24px rgba(0, 0, 0, 0.02);
}

body.logged-in #private-layout .app-container .main-content {
    margin-left: 0 !important;
    min-width: 0;
}

/* Items principales estilo "Píldora Flotante" */
.sidebar-item {
    margin: 0.35rem 1.2rem !important;
    padding: 0.8rem 1.2rem !important;
    border-radius: 12px !important;
    color: var(--sidebar-text) !important;
    font-weight: 600 !important;
    font-size: 0.95rem !important;
    display: flex;
    align-items: center;
    gap: 1rem;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    border: none !important;
    background: transparent;
    width: auto;
    font-family: inherit;
    text-align: left;
    min-height: 44px;
    position: relative;
    overflow: hidden;
    text-decoration: none;
    cursor: pointer;
}

/* Hover effect moderno */
.sidebar-item:hover {
    background-color: var(--sidebar-hover-bg) !important;
    color: var(--color-primary) !important;
    transform: translateX(4px) !important;
}

/* Indicador de pestaña Activa elegante */
.sidebar-item.active {
    background-color: rgba(30, 59, 142, 0.06) !important;
    color: var(--color-primary) !important;
    font-weight: 800 !important;
    box-shadow: inset 0 0 0 1px rgba(30, 59, 142, 0.08) !important;
}

/* Línea indicadora lateral del color Secundario */
.sidebar-item.active::before {
    content: '';
    position: absolute;
    left: 0;
    top: 15%;
    height: 70%;
    width: 4px;
    background-color: var(--color-secondary);
    border-radius: 0 4px 4px 0;
}

/* ==========================================================================
   ICONES DEL MENÚ LATERAL
   ========================================================================== */
.sidebar-item i {
    font-size: 1.15rem !important;
    width: 34px !important;
    height: 34px !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    transition: all 0.3s ease !important;
    background: rgba(30, 59, 142, 0.05) !important;
    color: var(--color-primary) !important;
}

.sidebar-item:hover i {
    background: var(--color-primary) !important;
    color: #ffffff !important;
    transform: scale(1.1) rotate(-5deg);
    box-shadow: 0 4px 10px rgba(30, 59, 142, 0.25);
}

.sidebar-item.active i {
    background: var(--color-secondary) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 12px rgba(246, 159, 12, 0.35) !important;
    transform: scale(1.05);
}

/* ==========================================================================
   NAVEGACIÓN CATEGORIZADA TIPO ACORDEÓN
   ========================================================================== */
.sidebar-accordion {
    padding: 0 0.65rem 1rem;
    gap: 0.35rem;
}

.sidebar-group {
    border-radius: 14px;
    border: 1px solid transparent;
    transition: background-color 0.2s ease, border-color 0.2s ease;
}

.sidebar-group.is-open,
.sidebar-group.has-active-item {
    background: rgba(30, 59, 142, 0.025);
    border-color: rgba(30, 59, 142, 0.06);
}

.sidebar-group-toggle {
    width: 100%;
    min-height: 46px;
    padding: 0.7rem 0.85rem;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: var(--sidebar-text);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.055em;
    text-transform: uppercase;
    text-align: left;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.sidebar-group-toggle:hover {
    background: var(--sidebar-hover-bg);
    color: var(--color-primary);
}

.sidebar-group-toggle:focus-visible {
    outline: 3px solid rgba(246, 159, 12, 0.35);
    outline-offset: 2px;
}

.sidebar-group-label {
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
}

.sidebar-group-label > i {
    width: 20px;
    color: var(--color-primary);
    font-size: 0.95rem;
    text-align: center;
}

.sidebar-group-chevron {
    flex: 0 0 auto;
    color: #94a3b8;
    font-size: 0.72rem;
    transition: transform 0.2s ease, color 0.2s ease;
}

.sidebar-group-toggle[aria-expanded="true"] .sidebar-group-chevron {
    transform: rotate(180deg);
    color: var(--color-secondary);
}

.sidebar-group.has-active-item > .sidebar-group-toggle {
    color: var(--color-primary);
}

.sidebar-group.has-active-item > .sidebar-group-toggle .sidebar-group-label::after {
    content: '';
    width: 6px;
    height: 6px;
    flex: 0 0 6px;
    border-radius: 50%;
    background: var(--color-secondary);
    box-shadow: 0 0 0 3px rgba(246, 159, 12, 0.14);
}

.sidebar-group-panel[hidden] {
    display: none !important;
}

.sidebar-group-panel.is-open:not([hidden]) {
    display: block;
    animation: sidebarGroupReveal 0.2s ease-out;
}

.sidebar-group-items {
    padding: 0.15rem 0 0.45rem;
    position: relative;
}

.sidebar-group-items::before {
    content: '';
    position: absolute;
    left: 1.5rem;
    top: 0.2rem;
    bottom: 0.65rem;
    width: 1px;
    background: rgba(30, 59, 142, 0.1);
}

.sidebar-group .sidebar-item {
    margin: 0.12rem 0.45rem 0.12rem 1.05rem !important;
    padding: 0.62rem 0.75rem !important;
    min-height: 42px;
    gap: 0.72rem;
    font-size: 0.88rem !important;
    border-radius: 10px !important;
    z-index: 1;
}

.sidebar-group .sidebar-item i {
    width: 30px !important;
    height: 30px !important;
    flex: 0 0 30px;
    font-size: 1rem !important;
}

.sidebar-group .sidebar-item > span:not(.badge-pro) {
    min-width: 0;
    line-height: 1.25;
}

@keyframes sidebarGroupReveal {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ==========================================================================
   SUB-ITEMS (Pestañas internas del Administrador)
   ========================================================================== */
.sidebar-sub-item {
    margin: 0.2rem 1.2rem 0.2rem 3.8rem !important;
    padding: 0.6rem 1rem !important;
    font-size: 0.9rem !important;
    color: #64748b !important;
    border-radius: 10px !important;
    transition: all 0.2s ease !important;
    position: relative;
    text-decoration: none;
    cursor: pointer;
}

.sidebar-sub-item::before {
    content: '';
    position: absolute;
    left: -1rem;
    top: 50%;
    width: 6px;
    height: 6px;
    background-color: #cbd5e1;
    border-radius: 50%;
    transform: translateY(-50%);
    transition: all 0.3s ease;
}

.sidebar-sub-item:hover {
    background-color: var(--sidebar-hover-bg) !important;
    color: var(--color-primary) !important;
    transform: translateX(4px) !important;
}

.sidebar-sub-item:hover::before {
    background-color: var(--color-secondary);
    box-shadow: 0 0 8px rgba(246, 159, 12, 0.6);
}

.sidebar-sub-item.active {
    background-color: rgba(246, 159, 12, 0.08) !important;
    color: var(--color-secondary) !important;
    font-weight: 800 !important;
}

.sidebar-sub-item.active::before {
    background-color: var(--color-secondary);
    width: 8px;
    height: 8px;
}

/* ==========================================================================
   ETIQUETAS (BADGES) Y BOTONES DENTRO DEL SIDEBAR
   ========================================================================== */
.badge-pro {
    margin-left: auto !important;
    background: linear-gradient(135deg, var(--color-secondary), #D88A08) !important;
    color: #ffffff !important;
    padding: 4px 10px !important;
    border-radius: 20px !important;
    font-size: 0.65rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.5px;
    box-shadow: 0 4px 10px rgba(246, 159, 12, 0.3) !important;
    border: none !important;
}

#app-sidebar .btn-primary, #app-sidebar .btn-secondary {
    border-radius: 14px !important;
    font-weight: 800 !important;
    letter-spacing: 0.3px;
    transition: all 0.3s ease !important;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
}

#app-sidebar .btn-primary {
    background: linear-gradient(135deg, var(--color-primary), #2950B8) !important;
    box-shadow: 0 8px 20px rgba(30, 59, 142, 0.25) !important;
    color: white !important;
}

#app-sidebar .btn-primary:hover {
    transform: translateY(-2px) scale(1.02) !important;
    box-shadow: 0 12px 25px rgba(30, 59, 142, 0.35) !important;
}

#app-sidebar .btn-secondary {
    background: linear-gradient(135deg, var(--color-secondary), #D88A08) !important;
    box-shadow: 0 8px 20px rgba(246, 159, 12, 0.25) !important;
    color: white !important;
}

#app-sidebar .btn-secondary:hover {
    transform: translateY(-2px) scale(1.02) !important;
    box-shadow: 0 12px 25px rgba(246, 159, 12, 0.35) !important;
}

#menu-admin > div:first-child > div {
    background: linear-gradient(135deg, var(--color-primary), #2950B8) !important;
    color: #ffffff !important;
    border: none !important;
    box-shadow: 0 8px 20px rgba(30, 59, 142, 0.25) !important;
    border-radius: 12px !important;
    letter-spacing: 1px;
}
#menu-admin > div:first-child > div i { color: #ffffff !important; }

/* ==========================================================================
   COMPATIBILIDAD PERFECTA CON MODO OSCURO (DARK MODE)
   ========================================================================== */
body.dark-mode {
    --sidebar-bg: #1e293b;
    --sidebar-text: #cbd5e1;
    --sidebar-hover-bg: #334155;
}

body.dark-mode #app-sidebar {
    border-right-color: #334155;
}

body.dark-mode .sidebar-item i {
    background: rgba(255, 255, 255, 0.05) !important;
    color: var(--sidebar-text) !important;
}

body.dark-mode .sidebar-item:hover i {
    background: var(--color-primary) !important;
    color: #ffffff !important;
}

body.dark-mode .sidebar-item.active {
    background-color: rgba(246, 159, 12, 0.1) !important;
    color: var(--color-secondary) !important;
    box-shadow: inset 0 0 0 1px rgba(246, 159, 12, 0.2) !important;
}

body.dark-mode .sidebar-group.is-open,
body.dark-mode .sidebar-group.has-active-item {
    background: rgba(255, 255, 255, 0.025);
    border-color: rgba(255, 255, 255, 0.07);
}

body.dark-mode .sidebar-group-toggle,
body.dark-mode .sidebar-group-label > i {
    color: var(--sidebar-text);
}

body.dark-mode .sidebar-group-toggle:hover,
body.dark-mode .sidebar-group.has-active-item > .sidebar-group-toggle {
    color: var(--color-secondary);
}

body.dark-mode .sidebar-group-items::before {
    background: rgba(255, 255, 255, 0.1);
}

#mobile-nav-content .sidebar-accordion {
    width: 100%;
    padding: 0;
}

#mobile-nav-content .sidebar-group .sidebar-item {
    margin-right: 0.2rem !important;
}

/* ==========================================================================
   DASHBOARD: JERARQUÍA, ACCIONES RÁPIDAS Y LECTURA OPERATIVA
   ========================================================================== */
.dashboard-hero {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: clamp(1.4rem, 3vw, 2.4rem);
    border: 1px solid rgba(30, 59, 142, 0.1);
    border-radius: 24px;
    background: linear-gradient(135deg, rgba(30, 59, 142, 0.075), rgba(246, 159, 12, 0.055));
    box-shadow: 0 18px 40px rgba(30, 59, 142, 0.07);
}

.dashboard-hero::after {
    content: '';
    position: absolute;
    width: 180px;
    height: 180px;
    right: -70px;
    top: -90px;
    border-radius: 50%;
    background: rgba(246, 159, 12, 0.12);
    pointer-events: none;
}

.dashboard-hero-copy {
    position: relative;
    z-index: 1;
    max-width: 650px;
}

.dashboard-hero-copy p {
    margin: 0.65rem 0 0;
    color: #64748b;
    font-size: 1rem;
    line-height: 1.6;
}

.dashboard-eyebrow,
.dashboard-section-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    color: var(--color-primary);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.dashboard-eyebrow { margin-bottom: 0.55rem; }

.dashboard-hero-actions {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.75rem;
}

.dashboard-primary-action,
.dashboard-secondary-action {
    min-height: 46px;
    padding: 0.75rem 1.15rem !important;
    border-radius: 12px !important;
    white-space: nowrap;
}

.dashboard-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    margin: 0 0 0.9rem;
}

.dashboard-section-heading h3 {
    margin: 0.15rem 0 0;
    color: #0f172a;
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    font-weight: 900;
}

.dashboard-quick-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem;
}

.dashboard-quick-action {
    min-width: 0;
    min-height: 78px;
    padding: 0.85rem;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    background: #ffffff;
    color: #334155;
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.7rem;
    text-align: left;
    font: inherit;
    cursor: pointer;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.035);
    transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.dashboard-quick-action:hover {
    transform: translateY(-2px);
    border-color: rgba(30, 59, 142, 0.28);
    box-shadow: 0 12px 26px rgba(30, 59, 142, 0.09);
}

.dashboard-quick-action:focus-visible {
    outline: 3px solid rgba(246, 159, 12, 0.35);
    outline-offset: 2px;
}

.dashboard-quick-icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    background: rgba(30, 59, 142, 0.07);
}

.dashboard-quick-action strong,
.dashboard-quick-action small {
    display: block;
    min-width: 0;
}

.dashboard-quick-action strong {
    color: #1e293b;
    font-size: 0.9rem;
    line-height: 1.25;
}

.dashboard-quick-action small {
    margin-top: 0.15rem;
    color: #64748b;
    font-size: 0.72rem;
    line-height: 1.25;
}

.dashboard-quick-arrow {
    color: var(--color-secondary);
    font-size: 0.75rem;
}

body.dark-mode .dashboard-hero {
    background: linear-gradient(135deg, rgba(30, 59, 142, 0.24), rgba(246, 159, 12, 0.08));
    border-color: #334155;
}

body.dark-mode .dashboard-hero-copy p,
body.dark-mode .dashboard-quick-action small { color: #94a3b8; }
body.dark-mode .dashboard-section-heading h3,
body.dark-mode .dashboard-quick-action strong { color: #f8fafc; }
body.dark-mode .dashboard-quick-action { background: #1e293b; border-color: #334155; color: #cbd5e1; }

@media (max-width: 1100px) {
    .dashboard-quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
    .dashboard-hero { align-items: stretch; flex-direction: column; border-radius: 18px; }
    .dashboard-hero-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
    .dashboard-primary-action, .dashboard-secondary-action { width: 100%; }
    .dashboard-quick-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    .sidebar-group-panel.is-open:not([hidden]) { animation: none; }
    .sidebar-group-chevron { transition: none; }
    .dashboard-quick-action { transition: none; }
}

/* Gestión inteligente de documentos fuente */
.case-source-document-list { margin-top: .75rem; overflow: hidden; border: 1px solid #E2E8F0; border-radius: 16px; background: #fff; }
.case-source-toolbar { display: flex; flex-wrap: wrap; gap: .7rem; padding: .9rem; border-bottom: 1px solid #E2E8F0; background: #F8FAFC; }
.case-source-search { display: flex; align-items: center; gap: .55rem; flex: 1 1 240px; min-height: 42px; padding: 0 .75rem; border: 1px solid #CBD5E1; border-radius: 10px; background: #fff; color: #64748B; }
.case-source-search input { width: 100%; border: 0; outline: 0; background: transparent; color: #0F172A; font-size: .84rem; }
.case-source-filter { display: flex; align-items: center; gap: .45rem; padding: 0 .6rem; border: 1px solid #CBD5E1; border-radius: 10px; background: #fff; color: #64748B; font-size: .76rem; }
.case-source-filter select { min-height: 40px; border: 0; outline: 0; background: transparent; color: #0F172A; font-weight: 700; }
.case-source-table-wrap { width: 100%; overflow-x: auto; }
.case-source-table { width: 100%; border-collapse: collapse; text-align: left; font-size: .82rem; }
.case-source-table th { padding: .75rem .9rem; background: #F8FAFC; color: #64748B; font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; }
.case-source-table td { min-width: 140px; padding: .85rem .9rem; border-top: 1px solid #F1F5F9; color: #334155; vertical-align: top; }
.case-source-table tbody tr:hover { background: #F8FAFC; }
.case-source-table tbody tr[hidden] { display: none; }
.case-source-table th:first-child,.case-source-table td:first-child { min-width: 230px; }
.case-source-table th:nth-child(2),.case-source-table td:nth-child(2) { min-width: 150px; white-space: nowrap; }
.case-source-table th:nth-child(3),.case-source-table td:nth-child(3) { min-width: 90px; white-space: nowrap; }
.case-source-table th:nth-child(4),.case-source-table td:nth-child(4) { min-width: 105px; }
.case-source-table th:last-child { min-width: 70px; text-align: right; }
.case-source-file { display: flex; align-items: flex-start; gap: .55rem; color: #3851FF; font-weight: 800; text-decoration: none; overflow-wrap: anywhere; }
.case-source-file i { margin-top: .2rem; }
.case-source-table td small { display: block; margin-top: .35rem; color: #64748B; font-size: .7rem; }
.case-source-error { color: #B91C1C !important; }
.case-document-status.is-error { border-color: #FECACA; background: #FEF2F2; color: #B91C1C; }
.case-source-actions-cell { position: relative; min-width: 70px !important; text-align: right; }
.case-source-na { color: #94A3B8; font-size: .74rem; }
.case-source-action { display: inline-flex; align-items: center; gap: .35rem; padding: .38rem .52rem; border: 1px solid #E2E8F0; border-radius: 8px; background: #fff; color: #334155; font-size: .7rem; font-weight: 750; }
.case-source-action:hover { border-color: #A5B4FC; background: #EEF2FF; color: #3730A3; }
.case-source-hint { display: block; margin-top: .4rem; max-width: 280px; color: #A16207; font-size: .68rem; }
.case-source-pagination { display: flex; align-items: center; justify-content: space-between; gap: .7rem; padding: .7rem .9rem; border-top: 1px solid #E2E8F0; color: #64748B; font-size: .76rem; }
.case-source-pagination > div { display: flex; gap: .4rem; }
.case-source-pagination button { padding: .4rem .65rem; font-size: .74rem; }
.case-source-pagination button:disabled { opacity: .45; cursor: not-allowed; }
.case-source-empty { display: grid; justify-items: center; gap: .4rem; padding: 2rem 1rem; color: #64748B; text-align: center; }
.case-source-empty > i { color: #3851FF; font-size: 1.5rem; }
.case-source-empty b { color: #0F172A; }
.case-source-empty span { max-width: 440px; font-size: .82rem; }
.case-source-modal { position: fixed; z-index: 10000001; inset: 0; display: none; align-items: center; justify-content: center; padding: 1rem; }
.case-source-modal.is-open { display: flex; }
.case-source-modal-backdrop { position: absolute; inset: 0; width: 100%; border: 0; background: rgba(15,23,42,.62); backdrop-filter: blur(3px); }
.case-source-modal-panel { position: relative; display: flex; flex-direction: column; width: min(900px,100%); max-height: min(88vh,900px); overflow: hidden; border: 1px solid #E2E8F0; border-radius: 18px; background: #fff; box-shadow: 0 24px 80px rgba(15,23,42,.3); }
.case-source-modal-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; border-bottom: 1px solid #E2E8F0; }
.case-source-modal-panel > header h3 { margin: 0; color: #0F172A; font-size: 1.05rem; font-weight: 850; }
.case-source-modal-panel > header button { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid #E2E8F0; border-radius: 10px; background: #fff; color: #475569; }
.case-source-modal-body { overflow: auto; padding: 1.2rem; color: #334155; }
.case-document-workspace { display: grid; gap: 1rem; }
.case-document-choices { display: grid; gap: .55rem; margin-top: 1rem; }
.case-document-choice { display: flex; align-items: center; gap: .7rem; width: 100%; padding: .8rem .9rem; border: 1px solid #DDE5F2; border-radius: 10px; background: #fff; color: #0F1B3D; text-align: left; }
.case-document-choice span { flex: 1; min-width: 0; overflow-wrap: anywhere; font-weight: 750; }
.case-document-choice i { color: #3851FF; }
.case-document-choice:hover, .case-document-choice:focus-visible { border-color: #3851FF; background: #F8FAFF; }
.case-document-workspace-heading { display: flex; align-items: flex-start; gap: .75rem; padding: .95rem; border: 1px solid #DDE5F2; border-radius: 12px; background: #F8FAFF; }
.case-document-workspace-heading > i { color: #3851FF; font-size: 1.3rem; }
.case-document-workspace-heading b, .case-document-workspace-heading small { display: block; overflow-wrap: anywhere; }
.case-document-workspace-heading b { color: #0F1B3D; }
.case-document-workspace-heading small { margin-top: .3rem; color: #64748B; }
.case-document-mode-tabs { display: flex; flex-wrap: wrap; gap: .45rem; }
.case-document-mode-tabs button { padding: .55rem .8rem; border: 1px solid #DDE5F2; border-radius: 9px; background: #fff; color: #3851FF; font-weight: 750; }
.case-document-mode-tabs button.is-active { border-color: #3851FF; background: #EEF2FF; color: #233BC4; }
.case-document-mode-description { margin: -.2rem 0 0; color: #475569; font-size: .85rem; line-height: 1.55; }
#case-document-question-wrap[hidden], #case-document-audit-scope[hidden] { display: none !important; }
#case-document-question-wrap { display: grid; gap: .4rem; }
.case-document-audit-scope { display: flex; align-items: flex-start; gap: .7rem; padding: .85rem 1rem; border: 1px solid #C7D2FE; border-radius: 10px; background: #F8FAFF; color: #334155; font-size: .82rem; line-height: 1.5; }
.case-document-audit-scope i { margin-top: .15rem; color: #3851FF; }
.case-document-question-label { color: #0F1B3D; font-weight: 800; }
#case-document-question { width: 100%; min-height: 112px; resize: vertical; }
.case-document-submit-row, .case-document-knowledge-heading, .case-document-knowledge-top, .case-document-answer-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .65rem; }
.case-document-submit-row span, .case-document-knowledge-heading span { color: #64748B; font-size: .8rem; }
.case-document-submit-row button { padding: .7rem 1rem; }
.case-document-knowledge-heading { border-top: 1px solid #E2E8F0; padding-top: 1rem; }
.case-document-knowledge-heading h4 { margin: 0; color: #0F1B3D; font-weight: 850; }
.case-document-knowledge-list { display: grid; gap: .7rem; max-height: 360px; overflow: auto; }
.case-document-knowledge-item, .case-document-answer-card { padding: 1rem; border: 1px solid #E2E8F0; border-radius: 12px; background: #fff; }
.case-document-knowledge-top b { color: #3851FF; font-size: .8rem; }
.case-document-knowledge-top time, .case-document-thread-tag { color: #64748B; font-size: .75rem; }
.case-document-thread-tag { padding: .2rem .45rem; border-radius: 999px; background: #EEF2FF; }
.case-document-knowledge-item h4 { margin: .55rem 0 .25rem; color: #0F1B3D; font-size: .9rem; }
.case-document-knowledge-item p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin: 0 0 .55rem; color: #475569; font-size: .82rem; }
.case-document-answer-card { border-color: #C7D2FE; background: #FAFBFF; }
.case-document-answer-card .case-consultation-answer { margin-top: .8rem; }
.case-document-followup-context { display: flex; align-items: center; gap: .55rem; padding: .65rem .8rem; border: 1px solid #C7D2FE; border-radius: 9px; background: #EEF2FF; color: #233BC4; font-size: .82rem; }
.case-document-followup-context button { margin-left: auto; color: inherit; font-size: 1.1rem; }
.case-document-loading { color: #64748B; }
body.dark-mode.logged-in .case-document-workspace-heading, body.dark-mode.logged-in .case-document-knowledge-item, body.dark-mode.logged-in .case-document-answer-card, body.dark-mode.logged-in .case-document-mode-tabs button { border-color: #334155; background: #111B36; }
body.dark-mode.logged-in .case-document-choice { border-color: #334155; background: #111B36; color: #E2E8F0; }
body.dark-mode.logged-in .case-document-workspace-heading b, body.dark-mode.logged-in .case-document-question-label, body.dark-mode.logged-in .case-document-knowledge-heading h4, body.dark-mode.logged-in .case-document-knowledge-item h4 { color: #E2E8F0; }
body.dark-mode.logged-in .case-document-mode-description { color: #CBD5E1; }
body.dark-mode.logged-in .case-document-audit-scope { border-color: #334155; background: #111B36; color: #CBD5E1; }
body.dark-mode.logged-in .case-document-knowledge-item p { color: #CBD5E1; }
.case-source-modal-intro { margin: 0 0 1rem; color: #64748B; font-size: .82rem; }
.case-source-details { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; margin: 0; }
.case-source-details > div { min-width: 0; padding: .75rem; border: 1px solid #E2E8F0; border-radius: 10px; background: #F8FAFC; }
.case-source-details dt { color: #64748B; font-size: .7rem; font-weight: 750; }
.case-source-details dd { margin: .28rem 0 0; color: #0F172A; font-size: .84rem; overflow-wrap: anywhere; }
.case-source-details .case-source-hash { font-family: monospace; font-size: .7rem; }
.case-source-report-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 0; border-top: 1px solid #E2E8F0; }
.case-source-report-row h4 { margin: .25rem 0; color: #0F172A; font-size: .86rem; }
.case-source-report-row small { color: #64748B; }
.case-source-report-type { color: #3851FF; font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.case-source-report-actions { display: flex; flex-wrap: wrap; gap: .35rem; }
.case-source-report-actions button { padding: .45rem .6rem; font-size: .73rem; }
.case-source-report-actions .is-danger { color: #B91C1C; }
.case-source-report-view > h4 { color: #0F172A; font-size: 1.2rem; }
.case-source-disclaimer { margin-top: 1rem; padding: .8rem; border-left: 3px solid #F59E0B; background: #FFFBEB; color: #92400E; font-size: .78rem; }
.case-source-pdf { position: fixed; z-index: -1; top: 0; left: -10000px; width: 750px; padding: 28px; background: #fff; color: #0F172A; font-family: Arial,sans-serif; }
.case-source-pdf header { padding-bottom: 16px; border-bottom: 2px solid #3851FF; }
.case-source-pdf h1 { font-size: 22px; }
.case-source-pdf p,.case-source-pdf footer { color: #64748B; font-size: 11px; }
.case-source-pdf main { padding: 18px 0; font-size: 12px; line-height: 1.65; }
.case-source-pdf footer { padding-top: 12px; border-top: 1px solid #CBD5E1; }
body.case-source-modal-open { overflow: hidden; }
body.dark-mode.logged-in .case-source-document-list, body.dark-mode.logged-in .case-source-modal-panel { border-color: #334155; background: #0F172A; }
body.dark-mode.logged-in .case-source-toolbar, body.dark-mode.logged-in .case-source-table th, body.dark-mode.logged-in .case-source-details > div { border-color: #334155; background: #111827; }
body.dark-mode.logged-in .case-source-table td { border-color: #1E293B; color: #CBD5E1; }
body.dark-mode.logged-in .case-source-file, body.dark-mode.logged-in .case-source-details dd, body.dark-mode.logged-in .case-source-report-row h4, body.dark-mode.logged-in .case-source-empty b, body.dark-mode.logged-in .case-source-modal-panel > header h3 { color: #C7D2FE; }
body.dark-mode.logged-in .case-source-search, body.dark-mode.logged-in .case-source-filter, body.dark-mode.logged-in .case-source-modal-panel > header button { border-color: #475569; background: #0F172A; color: #E2E8F0; }
body.dark-mode.logged-in .case-source-search input, body.dark-mode.logged-in .case-source-filter select { color: #E2E8F0; }
body.dark-mode.logged-in .case-source-modal-panel > header, body.dark-mode.logged-in .case-source-report-row, body.dark-mode.logged-in .case-source-pagination { border-color: #334155; }
@media(max-width:700px){.case-source-toolbar{display:grid}.case-source-filter{justify-content:space-between}.case-source-table th:nth-child(3),.case-source-table td:nth-child(3){display:none}.case-source-report-row{align-items:flex-start;flex-direction:column}.case-source-report-actions{width:100%}.case-source-details{grid-template-columns:1fr}.case-source-modal{padding:.45rem}.case-source-modal-panel{max-height:94vh;border-radius:14px}.case-source-modal-body{padding:.85rem}.case-source-pagination{align-items:flex-start;flex-direction:column}}

body.dark-mode .sidebar-sub-item.active {
    background-color: rgba(255, 255, 255, 0.05) !important;
    color: var(--color-secondary) !important;
}

/* ==========================================================================
   LAYOUT PÚBLICO DE LA LANDING PAGE
   ========================================================================== */
#public-layout {
    position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
    z-index: 2000; background-color: var(--lnd-bg, #030712);
    overflow-y: auto; overflow-x: hidden;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    color: #f8fafc;
}

/* ESTA ES LA REGLA QUE OCULTA LA LANDING CUANDO INICIAS SESIÓN */
body.logged-in #public-layout { display: none !important; }

#public-layout .view-section { display: none; width: 100%; min-height: 100vh; }
#public-layout .view-section.active { display: block; animation: lnd-fadeUp 0.4s ease forwards; }

.lnd-wrapper {
    --lnd-bg: #030712; --lnd-card: rgba(15, 23, 42, 0.6); --lnd-text: #f8fafc;
    --lnd-muted: #94a3b8; --lnd-line: rgba(255, 255, 255, 0.08);
    --lnd-primary: #3b82f6; --lnd-primary2: #8b5cf6; --lnd-accent: #10b981;
    --lnd-danger: #ef4444; --lnd-warning: #f59e0b;
    --lnd-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
    --lnd-radius: 32px; --lnd-max: 1200px;
    position: relative; display: flex; flex-direction: column; text-align: left;
}
.lnd-wrapper * { box-sizing: border-box; }
.lnd-wrapper a { text-decoration: none; color: inherit; }
.lnd-container { width: min(var(--lnd-max), calc(100% - 32px)); margin: 0 auto; position: relative; z-index: 1; }

.lnd-nav { position: sticky; top: 0; z-index: 2010; backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); background: rgba(3, 7, 18, 0.7); border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
.lnd-nav-inner { display: flex; align-items: center; justify-content: space-between; min-height: 80px; gap: 16px; }
.lnd-brand { display: flex; align-items: center; gap: 12px; font-weight: 800; font-size: 1.4rem; letter-spacing: -0.03em; color: #fff;}

.lnd-nav-links { display: flex; gap: 32px; color: #94a3b8; font-size: 0.95rem; font-weight: 500;}
.lnd-nav-links a { position: relative; padding: 8px 0; transition: color 0.2s; cursor: pointer; }
.lnd-nav-links a:hover { color: #fff; }
.lnd-nav-links a::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background: var(--lnd-primary); transition: width 0.3s ease; }
.lnd-nav-links a.active { color: #fff; }
.lnd-nav-links a.active::after { width: 100%; }

.lnd-nav-actions { display: flex; gap: 12px; align-items: center; }
.lnd-menu-btn { display: none; padding: 0; width: 44px; height: 44px; justify-content: center; align-items: center; border-radius: 12px; background: transparent; border: 1px solid var(--lnd-line); color: #fff;}
.lnd-nav.open .lnd-icon-menu { display: none; }
.lnd-nav.open .lnd-icon-close { display: block !important; }

.lnd-page-view { display: none; flex-grow: 1; animation: lnd-fadeUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
.lnd-page-view.active { display: block; }
@keyframes lnd-fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }

.lnd-bg-mesh { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 0; overflow: hidden; pointer-events: none; }
.lnd-bg-mesh .lnd-blob { position: absolute; filter: blur(90px); opacity: 0.5; animation: lnd-float 20s infinite alternate ease-in-out; }
.lnd-blob-1 { top: -10%; left: -10%; width: 50vw; height: 50vw; background: rgba(59, 130, 246, 0.2); }
.lnd-blob-2 { bottom: -20%; right: -10%; width: 60vw; height: 60vw; background: rgba(139, 92, 246, 0.15); animation-delay: -5s; }
@keyframes lnd-float { 0% { transform: translate(0, 0) scale(1); } 100% { transform: translate(5%, 10%) scale(1.1); } }

.lnd-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.75rem; border: 1px solid transparent; cursor: pointer; padding: 16px 32px; border-radius: 999px; font-weight: 600; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); white-space: nowrap; font-size: 1.05rem; }
.lnd-btn-primary { background: linear-gradient(135deg, var(--lnd-primary), var(--lnd-primary2)); box-shadow: 0 10px 25px -5px rgba(59, 130, 246, 0.4); color: #fff; }
.lnd-btn-primary:hover { transform: translateY(-3px) scale(1.02); box-shadow: 0 20px 35px -5px rgba(59, 130, 246, 0.5); color: #fff; }
.lnd-btn-ghost { background: rgba(255,255,255,0.03); border-color: var(--lnd-line); color: var(--lnd-text); backdrop-filter: blur(10px); }
.lnd-btn-ghost:hover { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.2); color: var(--lnd-text); }

.lnd-pill { display: inline-flex; align-items: center; gap: 0.5rem; padding: 6px 16px; border-radius: 999px; background: rgba(255,255,255,0.05); border: 1px solid var(--lnd-line); color: var(--lnd-muted); font-size: 0.85rem; font-weight: 500; letter-spacing: 0.03em; text-transform: uppercase; }
.lnd-pill.lnd-danger { background: rgba(239, 68, 68, 0.1); border-color: rgba(239, 68, 68, 0.2); color: #fca5a5; }

.lnd-section { padding: 120px 0; }
.lnd-page-header { padding: 140px 0 80px; text-align: center; border-bottom: 1px solid var(--lnd-line); }
.lnd-page-header h1 { font-size: clamp(3rem, 6vw, 4.5rem); margin: 0 0 20px; letter-spacing: -0.04em; color: #fff; line-height: 1.1; font-weight: 900;}
.lnd-page-header p { font-size: 1.25rem; color: var(--lnd-muted); max-width: 50ch; margin: 0 auto; line-height: 1.6; }
.lnd-section-head { display: flex; flex-direction: column; align-items: center; text-align: center; margin-bottom: 64px; }
.lnd-section-head h2 { margin: 16px 0; font-size: clamp(2.5rem, 5vw, 3.5rem); letter-spacing: -.04em; max-width: 25ch; line-height: 1.1; color: #fff; font-weight: 900;}
.lnd-section-head p { margin: 0; color: var(--lnd-muted); max-width: 55ch; line-height: 1.6; font-size: 1.15rem; }

.lnd-card { background: var(--lnd-card); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid var(--lnd-line); border-radius: var(--lnd-radius); padding: 40px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); height: 100%; display: flex; flex-direction: column; position: relative; overflow: hidden; }
.lnd-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(180deg, rgba(255,255,255,0.03) 0%, transparent 100%); pointer-events: none; }
.lnd-card:hover { transform: translateY(-8px); border-color: rgba(59, 130, 246, 0.4); box-shadow: var(--lnd-shadow); }
.lnd-card h3 { margin: 24px 0 12px; font-size: 1.5rem; letter-spacing: -0.02em; color: #fff; font-weight: 800;}
.lnd-card p { margin: 0; color: var(--lnd-muted); line-height: 1.6; font-size: 1.05rem; }
.lnd-icon-box { width: 64px; height: 64px; border-radius: 20px; display: grid; place-items: center; background: rgba(255,255,255,0.03); border: 1px solid var(--lnd-line); font-size: 1.8rem; box-shadow: inset 0 2px 4px rgba(255,255,255,0.05); flex-shrink: 0;}
.lnd-bento-grid { display: grid; gap: 24px; grid-template-columns: repeat(3, 1fr); grid-auto-rows: minmax(280px, auto); }
.lnd-bento-item-large { grid-column: span 2; }
.lnd-bento-item-tall { grid-row: span 2; }

.lnd-hero { padding: 160px 0 100px; text-align: center; position: relative; }
.lnd-hero h1 { margin: 24px auto; font-size: clamp(3.2rem, 7vw, 5.5rem); line-height: 1; letter-spacing: -.04em; max-width: 16ch; font-weight: 900; background: linear-gradient(180deg, #ffffff 0%, #94a3b8 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.lnd-hero p { color: var(--lnd-muted); font-size: 1.25rem; line-height: 1.6; max-width: 50ch; margin: 0 auto 48px; }
.lnd-hero-cta { display: flex; justify-content: center; gap: 16px; }

.lnd-avatars-group { display: flex; align-items: center; justify-content: center; margin-top: 32px; gap: 12px; }
.lnd-avatars { display: flex; }
.lnd-avatar { width: 36px; height: 36px; border-radius: 50%; border: 2px solid var(--lnd-bg); background: var(--lnd-muted); margin-left: -12px; }
.lnd-avatar:first-child { margin-left: 0; background: #3b82f6; }
.lnd-avatar:nth-child(2) { background: #8b5cf6; }
.lnd-avatar:nth-child(3) { background: #10b981; }
.lnd-avatar:nth-child(4) { background: #f59e0b; }
.lnd-avatars-text { font-size: 0.9rem; color: var(--lnd-muted); font-weight: 500;}

.lnd-social-proof { margin-top: 80px; padding-top: 40px; border-top: 1px solid var(--lnd-line); display: flex; flex-direction: column; align-items: center; gap: 24px;}
.lnd-social-proof p { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--lnd-muted); margin: 0;}
.lnd-logos { display: flex; gap: 40px; opacity: 0.5; filter: grayscale(1); flex-wrap: wrap; justify-content: center; font-weight: bold; font-size: 1.2rem; color: #fff;}

.lnd-problema { background: linear-gradient(135deg, rgba(239, 68, 68, 0.05), transparent); border: 1px solid rgba(239, 68, 68, 0.2); border-radius: var(--lnd-radius); padding: 64px 40px; text-align: center; max-width: 900px; margin: 0 auto; position: relative; overflow: hidden; }
.lnd-problema h2 { font-size: 2.5rem; margin: 0 0 24px; color: #fff; letter-spacing: -0.03em; font-weight: 800;}
.lnd-problema p { font-size: 1.25rem; color: var(--lnd-muted); line-height: 1.7; margin: 0 auto; max-width: 60ch;}

.lnd-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.lnd-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }

.lnd-audience-wrap { background: rgba(255,255,255,.01); border-top: 1px solid var(--lnd-line); border-bottom: 1px solid var(--lnd-line); }
.lnd-audience-conclusion { text-align: center; margin-top: 64px; font-size: 1.5rem; color: var(--lnd-text); font-weight: 700; letter-spacing: -0.02em; }

.lnd-steps-list { display: flex; flex-direction: column; gap: 16px; max-width: 800px; margin: 0 auto; }
.lnd-step-item { display: flex; align-items: center; gap: 24px; padding: 24px 32px; background: var(--lnd-card); border: 1px solid var(--lnd-line); border-radius: 24px; transition: transform 0.2s; }
.lnd-step-item:hover { transform: scale(1.02); background: rgba(255,255,255,0.05); }
.lnd-step-icon { width: 48px; height: 48px; border-radius: 16px; background: rgba(59, 130, 246, 0.1); border: 1px solid rgba(59, 130, 246, 0.3); color: var(--lnd-primary); display: grid; place-items: center; font-weight: 800; font-size: 1.2rem; flex-shrink: 0; }
.lnd-step-item p { margin: 0; font-size: 1.15rem; color: #fff; font-weight: 500; }

.lnd-video-container { position: relative; width: 100%; max-width: 1000px; margin: 0 auto; aspect-ratio: 16/10; background: #000; border-radius: var(--lnd-radius); border: 1px solid var(--lnd-line); overflow: hidden; box-shadow: 0 40px 80px rgba(0,0,0,0.6); display: flex; align-items: center; justify-content: center; background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" opacity="0.05"><rect width="100%" height="100%" fill="url(%23grid)"/><defs><pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse"><path d="M 40 0 L 0 0 0 40" fill="none" stroke="white" stroke-width="1"/></pattern></defs></svg>'); }
.lnd-play-btn { width: 96px; height: 96px; border-radius: 50%; background: rgba(255,255,255,0.1); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,0.2); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 2.5rem; cursor: pointer; transition: all 0.3s; padding-left: 8px; }
.lnd-play-btn:hover { transform: scale(1.1); background: var(--lnd-primary); border-color: var(--lnd-primary); }

.lnd-pricing-wrap { max-width: 1100px; margin: 0 auto; }
.lnd-pricing { position: relative; padding: 48px 40px; }
.lnd-pricing.popular { background: linear-gradient(180deg, rgba(59, 130, 246, 0.08) 0%, rgba(15, 23, 42, 0.8) 100%); border: 1px solid rgba(59, 130, 246, 0.4); transform: translateY(-12px); }
.lnd-pricing.popular:hover { transform: translateY(-16px); }
.lnd-price-badge { position: absolute; top: 24px; right: 24px; background: var(--lnd-primary); color: #fff; padding: 6px 14px; border-radius: 999px; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.05em;}
.lnd-price { font-size: 4rem; font-weight: 800; letter-spacing: -.05em; margin: 16px 0 8px; color: #fff; line-height: 1;}
.lnd-price small { font-size: 1.2rem; color: var(--lnd-muted); font-weight: 500;}
.lnd-price-desc { color: var(--lnd-muted); margin-bottom: 32px; display: block; font-size: 1.05rem;}
.lnd-wrapper ul.lnd-clean { list-style: none; padding: 0; margin: 0 0 40px; flex-grow: 1; }
.lnd-wrapper ul.lnd-clean li { padding: 14px 0; border-top: 1px solid var(--lnd-line); color: var(--lnd-text); display: flex; align-items: center; gap: 12px; font-size: 1.05rem;}
.lnd-wrapper ul.lnd-clean li::before { content: "✓"; color: var(--lnd-accent); font-weight: bold; font-size: 1.2rem; }
.lnd-wrapper ul.lnd-clean li:first-child { border-top: none; }

.lnd-table-wrap { width: 100%; overflow-x: auto; background: var(--lnd-card); border-radius: 24px; border: 1px solid var(--lnd-line); margin-bottom: 24px;}
.lnd-table-wrap table { width: 100%; min-width: 600px; border-collapse: collapse; text-align: left; }
.lnd-table-wrap th, .lnd-table-wrap td { padding: 20px 24px; border-bottom: 1px solid var(--lnd-line); color: var(--lnd-text); }
.lnd-table-wrap th { background: rgba(255,255,255,.02); font-weight: 600; color: #fff; font-size: 1.05rem;}
.lnd-table-wrap tr:last-child td { border-bottom: none; }
.lnd-credit-table td:last-child { color: var(--lnd-accent); font-weight: 700; }
.lnd-savings-wrap { max-width: 800px; margin: 80px auto 0; text-align: center; }
.lnd-compare-table td:nth-child(2) { color: var(--lnd-danger); opacity: 0.8; text-decoration: line-through; }
.lnd-compare-table td:last-child { color: #10b981; font-weight: 700; background: rgba(16, 185, 129, 0.05); }

.lnd-faq-grid { display: grid; grid-template-columns: 1fr; gap: 16px; max-width: 800px; margin: 0 auto; }
.lnd-faq-item { background: var(--lnd-card); border: 1px solid var(--lnd-line); border-radius: 20px; padding: 32px; text-align: left; transition: 0.3s; }
.lnd-faq-item:hover { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.15); }
.lnd-faq-item h4 { margin: 0 0 16px; font-size: 1.25rem; color: #fff; letter-spacing: -0.01em; font-weight: 800;}
.lnd-faq-item p { margin: 0; color: var(--lnd-muted); line-height: 1.7; font-size: 1.05rem;}

.lnd-form-control { width: 100%; padding: 16px 20px; border-radius: 16px; background: rgba(0,0,0,0.2); border: 1px solid var(--lnd-line); color: #fff; font-family: inherit; font-size: 1rem; transition: all 0.3s; outline: none; }
.lnd-form-control::placeholder { color: rgba(255,255,255,.3); }
.lnd-form-control:focus { outline: none; border-color: var(--lnd-primary); background: rgba(0,0,0,0.4); box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.15); }

.lnd-global-cta { padding: 80px 0; margin-top: auto; }
.lnd-cta-banner { background: linear-gradient(135deg, rgba(59, 130, 246, 0.1), rgba(139, 92, 246, 0.1)); border: 1px solid rgba(255,255,255,.1); border-radius: 32px; padding: 64px; display: flex; justify-content: space-between; gap: 40px; align-items: center; box-shadow: var(--lnd-shadow); position: relative; overflow: hidden; }
.lnd-cta-banner::after { content: ''; position: absolute; right: -10%; top: -50%; width: 50%; height: 200%; background: radial-gradient(circle, rgba(255,255,255,0.05) 0%, transparent 70%); pointer-events: none; }
.lnd-cta-banner h3 { margin: 0 0 16px; font-size: 2.5rem; letter-spacing: -.03em; z-index: 1; position: relative; color: #fff; font-weight: 800;}
.lnd-cta-banner p { margin: 0; color: var(--lnd-muted); line-height: 1.6; font-size: 1.15rem; max-width: 45ch; z-index: 1; position: relative;}
.lnd-cta-actions { z-index: 1; position: relative; display: flex; gap: 16px;}

.lnd-footer { padding: 48px 0; color: var(--lnd-muted); border-top: 1px solid var(--lnd-line); text-align: center; background: #020617; }

@media (max-width: 1024px) {
    .lnd-bento-grid { grid-template-columns: repeat(2, 1fr); }
    .lnd-bento-item-large { grid-column: span 1; }
    .lnd-grid-4, .lnd-grid-3 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 960px) {
    .lnd-nav-inner { flex-wrap: wrap; }
    .lnd-brand { order: 1; }
    .lnd-nav-actions { order: 2; gap: 8px; }
    .lnd-nav-links { order: 3; width: 100%; display: none; background: rgba(3, 7, 18, 0.95); border-radius: 16px;}
    .lnd-menu-btn { display: inline-flex; }
    .lnd-nav.open .lnd-nav-links { display: flex; flex-direction: column; gap: 16px; padding: 24px; margin-top: 16px; border: 1px solid var(--lnd-line); }
}

@media (max-width: 640px) {
    .lnd-section { padding: 80px 0; }
    .lnd-hero, .lnd-page-header { padding: 120px 0 60px; }
    .lnd-hero h1, .lnd-page-header h1 { font-size: clamp(2.5rem, 10vw, 3rem); }
    .lnd-bento-grid, .lnd-grid-4, .lnd-grid-3 { grid-template-columns: 1fr; }
    .lnd-bento-item-tall { grid-row: span 1; }
    .lnd-btn { width: 100%; }
    .lnd-hero-cta { flex-direction: column; gap: 16px; }
    .lnd-problema { padding: 40px 24px; border-radius: 24px;}
    .lnd-cta-actions { flex-direction: column; width: 100%; }
    .lnd-card { padding: 32px 24px; }
    .lnd-step-item { flex-direction: column; text-align: center; gap: 16px; padding: 32px 24px; }
    .lnd-global-cta { padding: 60px 0 20px; }
    .lnd-price { font-size: 3.5rem; }
    .lnd-cta-banner { flex-direction: column; text-align: center; padding: 40px 24px; }
}
/* ... existing code ... */
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
    background: #94a3b8; 
}

/* =========================================
   NUEVO DISEÑO LANDING PAGE (web.html)
   ========================================= */
.lnd-wrapper {
    --lnd-bg: #030712;
    --lnd-card: rgba(15, 23, 42, 0.6);
    --lnd-text: #f8fafc;
    --lnd-muted: #94a3b8;
    --lnd-line: rgba(255, 255, 255, 0.08);
    --lnd-primary: #203B8B;
    --lnd-primary2: #162B6B;
    --lnd-accent: #10b981;
    --lnd-danger: #ef4444;
    --lnd-warning: #f59e0b;
    --lnd-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
    --lnd-radius: 32px;
    --lnd-max: 1200px;
    
    background-color: var(--lnd-bg);
    color: var(--lnd-text);
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    position: relative;
    overflow: hidden;
    padding-bottom: 0;
    text-align: left;
}
.lnd-wrapper * { box-sizing: border-box; }
.lnd-wrapper a { color: inherit; text-decoration: none; }
.lnd-wrapper p { margin-top: 0; }
.lnd-container { width: min(var(--lnd-max), calc(100% - 32px)); margin: 0 auto; position: relative; z-index: 1; }

.lnd-bg-mesh { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 0; overflow: hidden; pointer-events: none; }
.lnd-bg-mesh .lnd-blob { position: absolute; filter: blur(90px); opacity: 0.5; animation: lnd-float 20s infinite alternate ease-in-out; }
.lnd-blob-1 { top: -10%; left: -10%; width: 50vw; height: 50vw; background: rgba(32, 59, 139, 0.2); }
.lnd-blob-2 { bottom: -20%; right: -10%; width: 60vw; height: 60vw; background: rgba(139, 92, 246, 0.15); animation-delay: -5s; }
@keyframes lnd-float { 0% { transform: translate(0, 0) scale(1); } 100% { transform: translate(5%, 10%) scale(1.1); } }

/* Buttons */
.lnd-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.75rem; border: 1px solid transparent; cursor: pointer; padding: 16px 32px; border-radius: 999px; font-weight: 600; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); white-space: nowrap; font-size: 1.05rem; }
.lnd-btn-primary { background: linear-gradient(135deg, var(--lnd-primary), var(--lnd-primary2)); box-shadow: 0 10px 25px -5px rgba(32, 59, 139, 0.4); color: #fff; }
.lnd-btn-primary:hover { transform: translateY(-3px) scale(1.02); box-shadow: 0 20px 35px -5px rgba(32, 59, 139, 0.5); color: #fff; }
.lnd-btn-ghost { background: rgba(255,255,255,0.03); border-color: var(--lnd-line); color: var(--lnd-text); backdrop-filter: blur(10px); }
.lnd-btn-ghost:hover { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.2); color: var(--lnd-text); }
.lnd-pill { display: inline-flex; align-items: center; gap: 0.5rem; padding: 6px 16px; border-radius: 999px; background: rgba(255,255,255,0.05); border: 1px solid var(--lnd-line); color: var(--lnd-muted); font-size: 0.85rem; font-weight: 500; letter-spacing: 0.03em; text-transform: uppercase; }
.lnd-pill.lnd-danger { background: rgba(239, 68, 68, 0.1); border-color: rgba(239, 68, 68, 0.2); color: #fca5a5; }

/* Sections */
.lnd-section { padding: 120px 0; }
.lnd-page-header { padding: 100px 0 60px; text-align: center; border-bottom: 1px solid var(--lnd-line); }
.lnd-page-header h1 { font-size: clamp(3rem, 6vw, 4.5rem); margin: 0 0 20px; letter-spacing: -0.04em; color: #fff; line-height: 1.1; font-weight: 900;}
.lnd-page-header p { font-size: 1.25rem; color: var(--lnd-muted); max-width: 50ch; margin: 0 auto; line-height: 1.6; }
.lnd-section-head { display: flex; flex-direction: column; align-items: center; text-align: center; margin-bottom: 64px; }
.lnd-section-head h2 { margin: 16px 0; font-size: clamp(2.5rem, 5vw, 3.5rem); letter-spacing: -.04em; max-width: 25ch; line-height: 1.1; color: #fff; font-weight: 900;}
.lnd-section-head p { margin: 0; color: var(--lnd-muted); max-width: 55ch; line-height: 1.6; font-size: 1.15rem; }

/* Cards & Bento */
.lnd-card { background: var(--lnd-card); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid var(--lnd-line); border-radius: var(--lnd-radius); padding: 40px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); height: 100%; display: flex; flex-direction: column; position: relative; overflow: hidden; }
.lnd-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(180deg, rgba(255,255,255,0.03) 0%, transparent 100%); pointer-events: none; }
.lnd-card:hover { transform: translateY(-8px); border-color: rgba(32, 59, 139, 0.4); box-shadow: var(--lnd-shadow); }
.lnd-card h3 { margin: 24px 0 12px; font-size: 1.5rem; letter-spacing: -0.02em; color: #fff; font-weight: 800;}
.lnd-card p { margin: 0; color: var(--lnd-muted); line-height: 1.6; font-size: 1.05rem; }
.lnd-icon-box { width: 64px; height: 64px; border-radius: 20px; display: grid; place-items: center; background: rgba(255,255,255,0.03); border: 1px solid var(--lnd-line); font-size: 1.8rem; box-shadow: inset 0 2px 4px rgba(255,255,255,0.05); flex-shrink: 0;}
.lnd-bento-grid { display: grid; gap: 24px; grid-template-columns: repeat(3, 1fr); grid-auto-rows: minmax(280px, auto); }
.lnd-bento-item-large { grid-column: span 2; }
.lnd-bento-item-tall { grid-row: span 2; }

/* Hero Specifics */
.lnd-hero { padding: 120px 0 100px; text-align: center; position: relative; }
.lnd-hero h1 { margin: 24px auto; font-size: clamp(3.2rem, 7vw, 5.5rem); line-height: 1; letter-spacing: -.04em; max-width: 16ch; font-weight: 900; background: linear-gradient(180deg, #ffffff 0%, #94a3b8 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.lnd-hero p { color: var(--lnd-muted); font-size: 1.25rem; line-height: 1.6; max-width: 50ch; margin: 0 auto 48px; }
.lnd-hero-cta { display: flex; justify-content: center; gap: 16px; }

/* Social Proof */
.lnd-avatars-group { display: flex; align-items: center; justify-content: center; margin-top: 32px; gap: 12px; }
.lnd-avatars { display: flex; }
.lnd-avatar { width: 36px; height: 36px; border-radius: 50%; border: 2px solid var(--lnd-bg); background: var(--lnd-muted); margin-left: -12px; }
.lnd-avatar:first-child { margin-left: 0; background: #3b82f6; }
.lnd-avatar:nth-child(2) { background: #8b5cf6; }
.lnd-avatar:nth-child(3) { background: #10b981; }
.lnd-avatar:nth-child(4) { background: #f59e0b; }
.lnd-avatars-text { font-size: 0.9rem; color: var(--lnd-muted); font-weight: 500;}
.lnd-social-proof { margin-top: 80px; padding-top: 40px; border-top: 1px solid var(--lnd-line); display: flex; flex-direction: column; align-items: center; gap: 24px;}
.lnd-social-proof p { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--lnd-muted); margin: 0;}
.lnd-logos { display: flex; gap: 40px; opacity: 0.5; filter: grayscale(1); flex-wrap: wrap; justify-content: center; font-weight: bold; font-size: 1.2rem; color: #fff;}

/* Banner Problema */
.lnd-problema { background: linear-gradient(135deg, rgba(239, 68, 68, 0.05), transparent); border: 1px solid rgba(239, 68, 68, 0.2); border-radius: var(--lnd-radius); padding: 64px 40px; text-align: center; max-width: 900px; margin: 0 auto; position: relative; overflow: hidden; }
.lnd-problema h2 { font-size: 2.5rem; margin: 0 0 24px; color: #fff; letter-spacing: -0.03em; font-weight: 800;}
.lnd-problema p { font-size: 1.25rem; color: var(--lnd-muted); line-height: 1.7; margin: 0 auto; max-width: 60ch;}

/* Grids */
.lnd-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.lnd-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }

/* Audiencia */
.lnd-audience-wrap { background: rgba(255,255,255,.01); border-top: 1px solid var(--lnd-line); border-bottom: 1px solid var(--lnd-line); }
.lnd-audience-conclusion { text-align: center; margin-top: 64px; font-size: 1.5rem; color: var(--lnd-text); font-weight: 700; letter-spacing: -0.02em; }

/* Steps */
.lnd-steps-list { display: flex; flex-direction: column; gap: 16px; max-width: 800px; margin: 0 auto; }
.lnd-step-item { display: flex; align-items: center; gap: 24px; padding: 24px 32px; background: var(--lnd-card); border: 1px solid var(--lnd-line); border-radius: 24px; transition: transform 0.2s; }
.lnd-step-item:hover { transform: scale(1.02); background: rgba(255,255,255,0.05); }
.lnd-step-icon { width: 48px; height: 48px; border-radius: 16px; background: rgba(32, 59, 139, 0.1); border: 1px solid rgba(32, 59, 139, 0.3); color: var(--lnd-primary); display: grid; place-items: center; font-weight: 800; font-size: 1.2rem; flex-shrink: 0; }
.lnd-step-item p { margin: 0; font-size: 1.15rem; color: #fff; font-weight: 500; }

/* Video */
.lnd-video-container { position: relative; width: 100%; max-width: 1000px; margin: 0 auto; aspect-ratio: 16/10; background: #000; border-radius: var(--lnd-radius); border: 1px solid var(--lnd-line); overflow: hidden; box-shadow: 0 40px 80px rgba(0,0,0,0.6); display: flex; align-items: center; justify-content: center; background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" opacity="0.05"><rect width="100%" height="100%" fill="url(%23grid)"/><defs><pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse"><path d="M 40 0 L 0 0 0 40" fill="none" stroke="white" stroke-width="1"/></pattern></defs></svg>'); }
.lnd-play-btn { width: 96px; height: 96px; border-radius: 50%; background: rgba(255,255,255,0.1); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,0.2); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 2.5rem; cursor: pointer; transition: all 0.3s; padding-left: 8px; }
.lnd-play-btn:hover { transform: scale(1.1); background: var(--lnd-primary); border-color: var(--lnd-primary); }

/* Pricing */
.lnd-pricing-wrap { max-width: 1100px; margin: 0 auto; }
.lnd-pricing { position: relative; padding: 48px 40px; }
.lnd-pricing.popular { background: linear-gradient(180deg, rgba(32, 59, 139, 0.08) 0%, rgba(15, 23, 42, 0.8) 100%); border: 1px solid rgba(32, 59, 139, 0.4); transform: translateY(-12px); }
.lnd-pricing.popular:hover { transform: translateY(-16px); }
.lnd-price-badge { position: absolute; top: 24px; right: 24px; background: var(--lnd-primary); color: #fff; padding: 6px 14px; border-radius: 999px; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.05em;}
.lnd-price { font-size: 4rem; font-weight: 800; letter-spacing: -.05em; margin: 16px 0 8px; color: #fff; line-height: 1;}
.lnd-price small { font-size: 1.2rem; color: var(--lnd-muted); font-weight: 500;}
.lnd-price-desc { color: var(--lnd-muted); margin-bottom: 32px; display: block; font-size: 1.05rem;}
.lnd-wrapper ul.lnd-clean { list-style: none; padding: 0; margin: 0 0 40px; flex-grow: 1; }
.lnd-wrapper ul.lnd-clean li { padding: 14px 0; border-top: 1px solid var(--lnd-line); color: var(--lnd-text); display: flex; align-items: center; gap: 12px; font-size: 1.05rem;}
.lnd-wrapper ul.lnd-clean li::before { content: "✓"; color: var(--lnd-accent); font-weight: bold; font-size: 1.2rem; }
.lnd-wrapper ul.lnd-clean li:first-child { border-top: none; }

/* Tables */
.lnd-table-wrap { width: 100%; overflow-x: auto; background: var(--lnd-card); border-radius: 24px; border: 1px solid var(--lnd-line); margin-bottom: 24px;}
.lnd-table-wrap table { width: 100%; min-width: 600px; border-collapse: collapse; text-align: left; }
.lnd-table-wrap th, .lnd-table-wrap td { padding: 20px 24px; border-bottom: 1px solid var(--lnd-line); color: var(--lnd-text); }
.lnd-table-wrap th { background: rgba(255,255,255,.02); font-weight: 600; color: #fff; font-size: 1.05rem;}
.lnd-table-wrap tr:last-child td { border-bottom: none; }
.lnd-credit-table td:last-child { color: var(--lnd-accent); font-weight: 700; }
.lnd-savings-wrap { max-width: 800px; margin: 80px auto 0; text-align: center; }
.lnd-compare-table td:nth-child(2) { color: var(--lnd-danger); opacity: 0.8; text-decoration: line-through; }
.lnd-compare-table td:last-child { color: #10b981; font-weight: 700; background: rgba(16, 185, 129, 0.05); }

/* FAQ */
.lnd-faq-grid { display: grid; grid-template-columns: 1fr; gap: 16px; max-width: 800px; margin: 0 auto; }
.lnd-faq-item { background: var(--lnd-card); border: 1px solid var(--lnd-line); border-radius: 20px; padding: 32px; text-align: left; transition: 0.3s; }
.lnd-form-control { width: 100%; padding: 16px 20px; border-radius: 16px; background: rgba(0,0,0,0.2); border: 1px solid var(--lnd-line); color: #fff; font-family: inherit; font-size: 1rem; transition: all 0.3s; outline: none; }
.lnd-form-control::placeholder { color: rgba(255,255,255,.3); }
.lnd-form-control:focus { outline: none; border-color: var(--lnd-primary); background: rgba(0,0,0,0.4); box-shadow: 0 0 0 4px rgba(32, 59, 139, 0.15); }
.lnd-trust-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.lnd-trust-grid .lnd-card h3 { margin-top: 0; }
.lnd-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.lnd-contact-wrapper label { display: block; color: #e2e8f0; font-weight: 700; margin-bottom: 8px; }
.lnd-contact-wrapper select option { color: #0f172a; }
.lnd-consent { display: flex !important; gap: 12px; align-items: flex-start; margin: 20px 0; font-weight: 500 !important; line-height: 1.5; }
.lnd-consent input { width: 20px; height: 20px; flex: 0 0 auto; margin-top: 2px; }
.lnd-consent a { color: #93c5fd; text-decoration: underline; }
.lnd-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.lnd-form-status { min-height: 24px; margin: 16px 0 0 !important; text-align: center; font-weight: 700; }
.lnd-form-status.success { color: #6ee7b7; }
.lnd-form-status.error { color: #fca5a5; }

/* CTA */
.lnd-global-cta { padding: 80px 0; margin-top: auto; }
.lnd-cta-banner { background: linear-gradient(135deg, rgba(32, 59, 139, 0.1), rgba(139, 92, 246, 0.1)); border: 1px solid rgba(255,255,255,.1); border-radius: 32px; padding: 64px; display: flex; justify-content: space-between; gap: 40px; align-items: center; box-shadow: var(--lnd-shadow); position: relative; overflow: hidden; }
.lnd-cta-banner::after { content: ''; position: absolute; right: -10%; top: -50%; width: 50%; height: 200%; background: radial-gradient(circle, rgba(255,255,255,0.05) 0%, transparent 70%); pointer-events: none; }
.lnd-cta-banner h3 { margin: 0 0 16px; font-size: 2.5rem; letter-spacing: -.03em; z-index: 1; position: relative; color: #fff; font-weight: 800;}
.lnd-cta-banner p { margin: 0; color: var(--lnd-muted); line-height: 1.6; font-size: 1.15rem; max-width: 45ch; z-index: 1; position: relative;}
.lnd-cta-actions { z-index: 1; position: relative; display: flex; gap: 16px;}

/* Footer */
.lnd-footer { padding: 48px 0; color: var(--lnd-muted); border-top: 1px solid var(--lnd-line); text-align: center; background: #020617; }

/* Responsive */
@media (max-width: 1024px) {
    .lnd-bento-grid { grid-template-columns: repeat(2, 1fr); }
    .lnd-bento-item-large { grid-column: span 1; }
    .lnd-grid-4, .lnd-grid-3 { grid-template-columns: repeat(2, 1fr); }
    .lnd-trust-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .lnd-section { padding: 80px 0; }
    .lnd-hero, .lnd-page-header { padding: 80px 0 40px; }
    .lnd-hero h1, .lnd-page-header h1 { font-size: clamp(2.5rem, 10vw, 3rem); }
    .lnd-bento-grid, .lnd-grid-4, .lnd-grid-3 { grid-template-columns: 1fr; }
    .lnd-bento-item-tall { grid-row: span 1; }
    .lnd-btn { width: 100%; }
    .lnd-hero-cta { flex-direction: column; gap: 16px; }
    .lnd-problema { padding: 40px 24px; border-radius: 24px;}
    .lnd-cta-actions { flex-direction: column; width: 100%; }
    .lnd-card { padding: 32px 24px; }
    .lnd-step-item { flex-direction: column; text-align: center; gap: 16px; padding: 32px 24px; }
    .lnd-global-cta { padding: 60px 0 20px; }
    .lnd-price { font-size: 3.5rem; }
    .lnd-cta-banner { flex-direction: column; text-align: center; padding: 40px 24px; }
    .lnd-form-grid { grid-template-columns: 1fr; }
    .lnd-contact-wrapper { padding: 32px 20px !important; }
}

/* ==========================================================================
   SISTEMA VISUAL ASESORIA 2026
   Referencia: Inter + Sora, azul noche, azul eléctrico, amarillo y bento UI.
   Se limita al panel privado para conservar la landing pública existente.
   ========================================================================== */
:root {
    --color-primary: #0F1B3D !important;
    --color-primary-dark: #0A0F24 !important;
    --color-primary-hover: #1A2652 !important;
    --color-secondary: #FFD23F !important;
    --color-secondary-hover: #F0C32C !important;
    --color-accent: #3851FF !important;
    --bg-body: #F6F7FB;
    --bg-card: #FFFFFF;
    --bg-input: #F8F9FB;
    --text-main: #0F1B3D;
    --text-secondary: #69738A;
    --radius-sm: 12px;
    --radius-md: 20px;
    --shadow-sm: 0 4px 24px rgba(15, 27, 61, 0.055);
    --shadow-md: 0 10px 30px rgba(15, 27, 61, 0.10);
    --shadow-lg: 0 20px 60px rgba(15, 27, 61, 0.15);
    --sidebar-width: 264px;
    --nav-height: 72px;
    --sidebar-bg: #FFFFFF;
    --sidebar-text: #69738A;
    --sidebar-hover-bg: #F0F2FF;
    --app-line: rgba(15, 27, 61, 0.075);
    --app-blue-soft: #F0F2FF;
}

body.logged-in {
    background: #F6F7FB;
    color: #0F1B3D;
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
}

body.logged-in h1,
body.logged-in h2,
body.logged-in h3,
body.logged-in h4,
body.logged-in .alert-title {
    font-family: 'Sora', 'Inter', system-ui, sans-serif;
    letter-spacing: -0.025em;
}

body.logged-in .navbar {
    position: sticky !important;
    top: 0;
    min-height: var(--nav-height);
    height: var(--nav-height);
    padding: 0 clamp(1rem, 2.5vw, 2rem) !important;
    border-bottom: 1px solid var(--app-line) !important;
    background: rgba(255, 255, 255, 0.88) !important;
    box-shadow: 0 1px 0 rgba(255,255,255,.8) inset, 0 8px 32px rgba(15,27,61,.035);
    backdrop-filter: blur(20px) saturate(150%);
    -webkit-backdrop-filter: blur(20px) saturate(150%);
}

body.logged-in .navbar .logo img { max-height: 42px; }
body.logged-in .navbar button:not(.logo) {
    min-width: 40px;
    min-height: 40px;
    border: 1px solid var(--app-line) !important;
    border-radius: 12px;
    background: rgba(255,255,255,.78) !important;
    color: #0F1B3D !important;
    display: inline-grid;
    place-items: center;
}

body.logged-in #private-layout .app-container {
    /* La barra sticky ya ocupa su altura: no desplazar otra vez el dashboard. */
    padding-top: 0;
    min-height: calc(100vh - var(--nav-height));
    background: #F6F7FB;
}

body.logged-in #private-layout .main-content {
    padding: clamp(1.25rem, 3vw, 2.25rem) !important;
    background:
        radial-gradient(circle at 92% 2%, rgba(56,81,255,.055), transparent 22rem),
        #F6F7FB;
}

body.logged-in #private-layout .main-content > .view-section {
    width: min(1480px, 100%);
    margin-inline: auto;
}

body.logged-in .btn-primary {
    min-height: 42px;
    border: 1px solid rgba(255,255,255,.12) !important;
    border-radius: 12px !important;
    background: linear-gradient(145deg, #0F1B3D, #172855) !important;
    box-shadow: 0 7px 18px rgba(15,27,61,.22), inset 0 1px 0 rgba(255,255,255,.12) !important;
    color: #FFFFFF !important;
    font-weight: 700 !important;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease !important;
}

body.logged-in .btn-primary:hover {
    transform: translateY(-1px);
    background: linear-gradient(145deg, #162654, #213771) !important;
    box-shadow: 0 10px 24px rgba(15,27,61,.28), inset 0 1px 0 rgba(255,255,255,.15) !important;
}

body.logged-in .btn-ghost {
    min-height: 40px;
    border: 1px solid rgba(15,27,61,.09) !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.78) !important;
    color: #4E5870 !important;
    font-weight: 650;
}

body.logged-in .btn-ghost:hover {
    border-color: rgba(56,81,255,.22) !important;
    background: #F0F2FF !important;
    color: #3851FF !important;
}

body.logged-in button:focus-visible,
body.logged-in a:focus-visible,
body.logged-in input:focus-visible,
body.logged-in textarea:focus-visible,
body.logged-in select:focus-visible {
    outline: 3px solid rgba(56,81,255,.28) !important;
    outline-offset: 2px;
}

body.logged-in .card {
    height: auto;
    padding: 1.25rem;
    border: 1px solid var(--app-line);
    border-radius: 20px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 4px 24px rgba(15,27,61,.055);
}

body.logged-in .form-control {
    min-height: 44px;
    border: 1px solid rgba(15,27,61,.11);
    border-radius: 12px;
    background: #F8F9FB;
    color: #0F1B3D;
}

body.logged-in .form-control:focus {
    border-color: rgba(56,81,255,.52);
    background: #FFFFFF;
    box-shadow: 0 0 0 4px rgba(56,81,255,.11);
}

/* Navegación lateral compacta */
body.logged-in #app-sidebar {
    top: var(--nav-height) !important;
    width: var(--sidebar-width) !important;
    height: calc(100vh - var(--nav-height)) !important;
    border-right: 1px solid var(--app-line);
    background: rgba(255,255,255,.92);
    box-shadow: 8px 0 30px rgba(15,27,61,.03);
    backdrop-filter: blur(20px);
}

body.logged-in .sidebar-group {
    border-radius: 14px;
}

body.logged-in .sidebar-group.is-open,
body.logged-in .sidebar-group.has-active-item {
    border-color: rgba(56,81,255,.075);
    background: rgba(56,81,255,.025);
}

body.logged-in .sidebar-group-toggle {
    color: #717A91;
    font-size: .70rem;
    letter-spacing: .09em;
}

body.logged-in .sidebar-group-label > i { color: #3851FF; }
body.logged-in .sidebar-group-items::before { background: rgba(56,81,255,.13); }
body.logged-in .sidebar-group .sidebar-item {
    color: #5E687F !important;
    font-size: .84rem !important;
}

body.logged-in .sidebar-group .sidebar-item i {
    border-radius: 9px;
    background: rgba(56,81,255,.06) !important;
    color: #3851FF !important;
}

body.logged-in .sidebar-item:hover {
    transform: translateX(2px) !important;
    background: #F0F2FF !important;
    color: #3851FF !important;
}

body.logged-in .sidebar-item.active {
    background: #F0F2FF !important;
    color: #3851FF !important;
    box-shadow: inset 0 0 0 1px rgba(56,81,255,.10) !important;
}

body.logged-in .sidebar-item.active::before { background: #3851FF; }
body.logged-in .sidebar-item.active i {
    background: #3851FF !important;
    color: #FFFFFF !important;
    box-shadow: 0 4px 12px rgba(56,81,255,.28) !important;
}

body.logged-in .sidebar-group-toggle[aria-expanded="true"] .sidebar-group-chevron,
body.logged-in .sidebar-group.has-active-item > .sidebar-group-toggle { color: #3851FF; }
body.logged-in .sidebar-group.has-active-item > .sidebar-group-toggle .sidebar-group-label::after {
    background: #FFD23F;
    box-shadow: 0 0 0 3px rgba(255,210,63,.20);
}

/* Cabeceras de páginas */
.legal-page-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.25rem;
    margin-bottom: 1.45rem;
}

.legal-page-heading { min-width: 0; }
.legal-page-kicker {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .4rem;
    color: #3851FF;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .10em;
    text-transform: uppercase;
}

.legal-page-title-row { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; }
.legal-page-title-row h2 {
    margin: 0;
    color: #0F1B3D;
    font-size: clamp(2rem, 4vw, 2.65rem);
    font-weight: 800;
    line-height: 1.05;
}

.legal-page-heading > p {
    margin: .55rem 0 0;
    color: #70798F;
    font-size: .94rem;
}

.case-view-badge {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .38rem .68rem;
    border: 1px solid rgba(255,210,63,.36);
    border-radius: 999px;
    background: rgba(255,210,63,.18);
    color: #735A00;
    font-size: .68rem;
    font-weight: 800;
}

body.logged-in #app-main > section > .mb-8:first-child h2,
body.logged-in #app-main > section > h2:first-child {
    color: #0F1B3D !important;
    font-family: 'Sora', 'Inter', sans-serif;
    font-weight: 800 !important;
}

/* Dashboard bento */
body.logged-in .dashboard-hero {
    border: 1px solid rgba(56,81,255,.10);
    border-radius: 20px;
    background:
        radial-gradient(circle at 91% 15%, rgba(255,210,63,.20), transparent 14rem),
        linear-gradient(135deg, #FFFFFF, #F0F2FF);
    box-shadow: 0 8px 30px rgba(15,27,61,.06);
}

body.logged-in .dashboard-hero::after { background: rgba(56,81,255,.06); }
body.logged-in .dashboard-eyebrow,
body.logged-in .dashboard-section-kicker { color: #3851FF; }
body.logged-in .dashboard-quick-action {
    min-height: 84px;
    border-color: var(--app-line);
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(15,27,61,.045);
}

body.logged-in .dashboard-quick-action:hover {
    border-color: rgba(56,81,255,.25);
    box-shadow: 0 10px 28px rgba(56,81,255,.09);
}

body.logged-in .dashboard-quick-icon {
    border-radius: 11px;
    background: #0F1B3D;
    color: #FFFFFF;
    box-shadow: 0 5px 14px rgba(15,27,61,.18);
}

body.logged-in .dashboard-quick-action:nth-child(2) .dashboard-quick-icon { background: #3851FF; }
body.logged-in .dashboard-quick-action:nth-child(3) .dashboard-quick-icon { background: #FFD23F; color: #0F1B3D; }
body.logged-in .dashboard-quick-action:nth-child(4) .dashboard-quick-icon { background: #8B5CF6; }
body.logged-in .dashboard-quick-arrow { color: #3851FF; }

/* Casos: flujo y espacio de trabajo */
.case-page-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; }
#view-cases .case-help-toggle { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; min-height: 48px; padding: .7rem 1rem; border-radius: 12px; font-weight: 750; }
#view-cases .case-help-toggle[aria-expanded="true"] { border-color: #A5B4FC; background: #EEF2FF; color: #3730A3; }
#view-cases .case-help-content[hidden] { display: none !important; }
#view-cases .legal-help-card {
    position: relative;
    overflow: hidden;
    padding: 1.2rem;
    border: 1px solid rgba(56,81,255,.11);
    border-left: 0;
    border-radius: 18px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 4px 22px rgba(15,27,61,.04);
}

#view-cases .legal-help-card::after {
    content: '';
    position: absolute;
    width: 150px;
    height: 150px;
    right: -75px;
    top: -82px;
    border-radius: 50%;
    background: rgba(56,81,255,.055);
}

#view-cases .legal-help-card > i {
    display: grid;
    place-items: center;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    margin: 0;
    border-radius: 12px;
    background: #0F1B3D;
    color: #FFFFFF;
    box-shadow: 0 7px 18px rgba(15,27,61,.20);
}

#view-cases .legal-help-card strong {
    font-family: 'Sora', 'Inter', sans-serif;
    font-size: .95rem;
}

.case-flow-steps {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin: .8rem 0 .25rem;
}

.case-flow-steps span {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .35rem .62rem .35rem .38rem;
    border: 1px solid rgba(15,27,61,.07);
    border-radius: 999px;
    background: #F8F9FB;
    color: #566078;
    font-size: .70rem;
    font-weight: 700;
}

.case-flow-steps b {
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #0F1B3D;
    color: #FFFFFF;
    font-size: .65rem;
}

.case-workspace-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.case-workspace-grid:has(#case-detail:not(.hidden)) {
    grid-template-columns: minmax(280px, .62fr) minmax(0, 1.75fr);
}

.case-browser-panel {
    min-width: 0;
    padding: 1rem;
    border: 1px solid var(--app-line);
    border-radius: 20px;
    background: rgba(255,255,255,.92);
    box-shadow: 0 4px 24px rgba(15,27,61,.05);
}

.case-browser-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .8rem;
    padding: 0 .15rem;
}

.case-browser-heading div { display: flex; flex-direction: column; }
.case-browser-heading span { color: #0F1B3D; font-family: 'Sora',sans-serif; font-size: .82rem; font-weight: 700; }
.case-browser-heading small { margin-top: .1rem; color: #8A92A5; font-size: .68rem; }
.case-browser-heading > i { color: #3851FF; }

#view-cases .case-list-tabs {
    display: flex;
    width: 100%;
    margin-bottom: .85rem;
    padding: .26rem;
    border-color: rgba(15,27,61,.07);
    border-radius: 12px;
    background: #F6F7FB;
}

#view-cases .case-list-tabs button {
    flex: 1;
    justify-content: center;
    min-height: 38px;
    padding: .45rem .65rem;
    border-radius: 9px;
    color: #7A8398;
    font-size: .74rem;
}

#view-cases .case-list-tabs button.is-active {
    color: #3851FF;
    box-shadow: 0 3px 12px rgba(15,27,61,.07);
}

#view-cases .case-list-tabs button.is-active span { background: #3851FF; color: #FFFFFF; }

#view-cases #cases-list {
    gap: .65rem !important;
}

.case-workspace-grid:has(#case-detail:not(.hidden)) #cases-list {
    grid-template-columns: minmax(0, 1fr) !important;
}

#view-cases #cases-list > article {
    padding: .9rem !important;
    border: 1px solid rgba(15,27,61,.075) !important;
    border-left: 3px solid #3851FF !important;
    border-radius: 14px;
    background: #FBFBFD;
    box-shadow: none;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

#view-cases #cases-list > article:hover {
    transform: translateY(-2px);
    border-color: rgba(56,81,255,.22) !important;
    box-shadow: 0 8px 22px rgba(15,27,61,.07);
}

#view-cases #cases-list > article.is-selected {
    border-left: 4px solid #2563EB !important;
    background: rgba(239,246,255,.3) !important;
    box-shadow: 0 5px 18px rgba(37,99,235,.09);
}

#view-cases #cases-list > article > button h3 {
    font-family: 'Sora',sans-serif;
    font-size: .86rem;
    line-height: 1.35;
}

#view-cases #cases-list > article > button p { font-size: .72rem; }

#view-cases #case-detail {
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    border-radius: 20px;
    border-color: rgba(15,27,61,.075);
    box-shadow: 0 8px 34px rgba(15,27,61,.07);
}

#view-cases #case-detail > div:first-child {
    padding: 1.35rem 1.5rem 1rem;
    border-bottom: 1px solid rgba(15,27,61,.06);
    background: linear-gradient(180deg, #F8F9FF, #FFFFFF);
}

#view-cases #case-detail > div:first-child h3 {
    font-size: clamp(1.25rem, 2.4vw, 1.55rem);
}

#view-cases .case-detail-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

#view-cases .case-detail-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: .25rem .55rem;
    border-radius: 999px;
    font-size: .67rem;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: uppercase;
}

#view-cases .case-detail-badge.is-secondary { background: #F1F5F9; color: #475569; }
#view-cases .case-detail-badge.is-info { background: #DBEAFE; color: #1D4ED8; }
#view-cases .case-detail-badge.is-warning { background: #FEF3C7; color: #B45309; }

#view-cases #case-detail > .case-archive-banner { margin: 1rem 1.25rem 0; }

#view-cases .case-action-bar {
    display: flex;
    align-items: center;
    gap: .5rem;
    position: relative;
    z-index: 1;
    margin: .65rem 1.25rem 0;
    padding: .4rem;
    border-color: rgba(15,27,61,.075);
    border-radius: 14px;
    background: rgba(255,255,255,.90);
    box-shadow: 0 8px 24px rgba(15,27,61,.09);
    backdrop-filter: blur(16px);
}

#view-cases .case-action-bar button {
    min-height: 36px;
    padding: .5rem .72rem !important;
    border-radius: 10px !important;
    font-size: .74rem;
}

#view-cases .case-action-bar .btn-primary {
    background: #3B5BDB !important;
    box-shadow: 0 5px 14px rgba(59,91,219,.30) !important;
}

#view-cases .case-more-actions { position: relative; }

#view-cases .case-more-actions-menu {
    position: absolute;
    z-index: 20;
    top: calc(100% + .5rem);
    left: 0;
    right: auto;
    display: grid;
    min-width: 215px;
    max-width: min(270px, calc(100vw - 2rem));
    padding: .4rem;
    border: 1px solid rgba(15,27,61,.10);
    border-radius: 12px;
    background: #FFFFFF;
    box-shadow: 0 14px 30px rgba(15,27,61,.16);
}

#view-cases .case-more-actions-menu[hidden] { display: none; }

#view-cases .case-more-actions-menu button {
    width: 100%;
    border: 0;
    background: transparent;
    color: #334155;
    text-align: left;
}

#view-cases .case-more-actions-menu button:hover,
#view-cases .case-more-actions-menu button:focus-visible { background: #F1F5F9; }

#view-cases .case-more-actions-menu button.is-danger { color: #B45309; }

#view-cases #case-detail > .grid {
    gap: .65rem !important;
    margin: 0 !important;
    padding: 1.25rem 1.25rem .3rem;
}

#view-cases #case-detail > .grid > div {
    position: relative;
    overflow: hidden;
    padding: .9rem !important;
    border: 1px solid rgba(15,27,61,.06);
    border-radius: 14px !important;
    background: linear-gradient(135deg, rgba(56,81,255,.10), rgba(56,81,255,.025)) !important;
    text-align: left;
}

#view-cases #case-detail > .grid > div:nth-child(2) { background: linear-gradient(135deg, rgba(139,92,246,.12), rgba(139,92,246,.025)) !important; }
#view-cases #case-detail > .grid > div:nth-child(3) { background: linear-gradient(135deg, rgba(16,185,129,.12), rgba(16,185,129,.025)) !important; }
#view-cases #case-detail > .grid > div:nth-child(4) { background: linear-gradient(135deg, rgba(255,210,63,.22), rgba(255,210,63,.04)) !important; }
#view-cases #case-detail > .grid > div:nth-child(5) { background: linear-gradient(135deg, rgba(244,63,94,.10), rgba(244,63,94,.025)) !important; }
#view-cases #case-detail > .grid b { color: #0F1B3D; font-family: 'Sora',sans-serif; font-size: 1.35rem; }
#view-cases #case-detail > .grid small { margin-top: .12rem; font-size: .67rem; }

#view-cases #case-detail > h4,
#view-cases #case-detail > p,
#view-cases #case-detail > ul,
#view-cases #case-detail > div.mt-6 { margin-left: 1.25rem !important; margin-right: 1.25rem !important; }
#view-cases #case-detail > h4 { font-family: 'Sora',sans-serif; font-size: .84rem; }
#view-cases #case-detail > ul:last-child { padding-bottom: 1.35rem; }

/* Carga, documentos e historial del expediente */
#view-cases .case-document-dropzone {
    position: relative;
    display: flex;
    width: 100%;
    min-height: 112px;
    align-items: center;
    justify-content: center;
    padding: 1.1rem;
    border: 1.5px dashed rgba(56,81,255,.42);
    border-radius: 16px;
    background: rgba(56,81,255,.035);
    color: #3851FF;
    cursor: pointer;
    text-align: center;
    transition: background .16s ease, border-color .16s ease, box-shadow .16s ease;
}
#view-cases .case-document-dropzone:hover,
#view-cases .case-document-dropzone.is-dragging,
#view-cases .case-document-dropzone:focus-within { border-color: #3851FF; background: rgba(56,81,255,.08); box-shadow: 0 0 0 3px rgba(56,81,255,.08); }
.case-document-dropzone-content { display: flex; flex-direction: column; align-items: center; gap: .5rem; pointer-events: none; }
.case-document-dropzone-content > i { font-size: 1.35rem; }
.case-document-dropzone-content > span { display: grid; gap: .2rem; }
.case-document-dropzone-content strong { color: #0F1B3D; font-size: .86rem; }
.case-document-dropzone-content small { color: #64748B; font-size: .74rem; }
.case-dropzone-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.case-source-document-list { display: grid; gap: .65rem; }
.case-source-document-card,
.case-generated-document-item { display: flex; align-items: center; justify-content: space-between; gap: .75rem; border: 1px solid rgba(15,27,61,.08); border-radius: 12px; background: #fff; }
.case-source-document-card { flex-wrap: wrap; }
.case-source-document-card > div:first-child { flex: 1 1 100%; }
.case-source-document-card > div:last-child { display: flex; flex-wrap: wrap; gap: .5rem; width: 100%; }
.case-source-document-card > div:last-child > button { flex: 1 1 150px; justify-content: center; }
.case-document-status { display: inline-flex; align-items: center; width: fit-content; padding: .28rem .52rem; border: 1px solid transparent; border-radius: 999px; background: #F1F5F9; color: #475569; font-size: .65rem; font-weight: 800; line-height: 1.25; }
.case-document-status.is-success { border-color: #BBF7D0; background: #DCFCE7; color: #15803D; }
.case-document-status.is-pending { border-color: #FDE68A; background: #FEF3C7; color: #B45309; }
.case-generated-document-list { display: grid; gap: .55rem; padding: 0; list-style: none; }
.case-generated-document-item { min-width: 0; padding: .75rem .9rem; }
.case-generated-document-item a { min-width: 0; overflow-wrap: anywhere; }
.case-history-timeline { position: relative; display: grid; gap: 0; margin: 0 1.25rem 1.25rem; padding: .25rem 0 .25rem .2rem; list-style: none; }
.case-history-timeline::before { position: absolute; top: 1.1rem; bottom: 1.1rem; left: 15px; width: 1px; background: #E2E8F0; content: ''; }
.case-history-item { position: relative; display: flex; align-items: flex-start; gap: .75rem; padding: .55rem 0; }
.case-history-marker { position: relative; z-index: 1; display: grid; flex: 0 0 30px; width: 30px; height: 30px; place-items: center; border: 1px solid #DBEAFE; border-radius: 50%; background: #EFF6FF; color: #2563EB; font-size: .72rem; }
.case-history-content { display: flex; min-height: 30px; flex: 1; align-items: center; justify-content: space-between; gap: .5rem 1rem; padding: .15rem 0; }
.case-history-content strong { color: #334155; font-size: .78rem; }
.case-history-content time { flex: 0 0 auto; color: #94A3B8; font-size: .68rem; }
.case-history-empty { padding: .8rem 0; color: #64748B; font-size: .82rem; }
.case-mobile-back { display: none; }
body.dark-mode.logged-in #view-cases .case-document-dropzone,
body.dark-mode.logged-in #view-cases .case-source-document-card,
body.dark-mode.logged-in #view-cases .case-generated-document-item { border-color: rgba(255,255,255,.12); background: #111B36; }
body.dark-mode.logged-in .case-document-dropzone-content strong,
body.dark-mode.logged-in .case-history-content strong { color: #F8FAFC; }
body.dark-mode.logged-in .case-history-timeline::before { background: rgba(255,255,255,.15); }
body.dark-mode.logged-in .case-document-status.is-neutral { background: #1F2937; color: #CBD5E1; }
body.dark-mode.logged-in #view-cases #cases-list > article.is-selected { background: rgba(37,99,235,.14) !important; }

/* Indicadores interactivos del expediente */
#view-cases #case-detail > .case-stats-row {
    gap: .65rem !important;
    margin: 0 !important;
    padding: 1.25rem 1.25rem .3rem;
}
#view-cases .case-stat-card {
    display: flex;
    min-width: 0;
    min-height: 100px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: .25rem;
    padding: .85rem .9rem;
    border: 1px solid rgba(15,27,61,.07);
    border-radius: 14px;
    color: #0F1B3D;
    text-align: left;
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
#view-cases .case-stat-card:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(15,27,61,.09); }
#view-cases .case-stat-card:focus-visible { outline: 3px solid rgba(56,81,255,.48); outline-offset: 2px; }
#view-cases .case-stat-card > i { font-size: .9rem; opacity: .8; }
#view-cases .case-stat-card b { font-family: 'Sora',sans-serif; font-size: 1.35rem; line-height: 1.2; }
#view-cases .case-stat-card small { font-size: .68rem; color: #64748B; }
#view-cases .case-stat-card.is-blue { background: linear-gradient(135deg,rgba(56,81,255,.10),rgba(56,81,255,.025)); }
#view-cases .case-stat-card.is-purple { background: linear-gradient(135deg,rgba(139,92,246,.12),rgba(139,92,246,.025)); }
#view-cases .case-stat-card.is-green { background: linear-gradient(135deg,rgba(16,185,129,.12),rgba(16,185,129,.025)); }
#view-cases .case-stat-card.is-amber { background: linear-gradient(135deg,rgba(255,210,63,.22),rgba(255,210,63,.04)); }
#view-cases .case-stat-card.is-rose { background: linear-gradient(135deg,rgba(244,63,94,.10),rgba(244,63,94,.025)); }
#view-cases .case-description-empty { display: flex; align-items: flex-start; gap: .9rem; margin: .25rem 1.25rem 0; padding: 1rem 1.1rem; border: 1px dashed rgba(56,81,255,.28); border-radius: 14px; background: rgba(56,81,255,.035); }
#view-cases .case-description-empty-icon { display: grid; flex: 0 0 40px; width: 40px; height: 40px; place-items: center; border-radius: 12px; background: #EEF2FF; color: #3851FF; }
#view-cases .case-description-empty h4 { margin: 0 0 .25rem; color: #0F1B3D; font-family: 'Sora',sans-serif; font-size: .86rem; }
#view-cases .case-description-empty p { margin: 0 0 .6rem; color: #64748B; font-size: .82rem; }
#view-cases .case-description-empty small { color: #64748B; }
#view-cases .case-description-empty button { min-height: 36px; padding: .45rem .7rem; border: 1px solid rgba(56,81,255,.2); border-radius: 9px; color: #3851FF; font-size: .78rem; font-weight: 750; }
.case-audit-tooltip { position: relative; display: inline-flex; }
.case-audit-tooltip::after { position: absolute; z-index: 5; bottom: calc(100% + 8px); left: 50%; width: max-content; max-width: min(280px, 80vw); padding: .5rem .65rem; border-radius: 8px; background: #0F1B3D; color: #fff; content: attr(data-tooltip); font-size: .72rem; font-weight: 600; line-height: 1.35; opacity: 0; pointer-events: none; transform: translate(-50%, 4px); transition: opacity .15s ease, transform .15s ease; }
.case-audit-tooltip:hover::after, .case-audit-tooltip:focus-visible::after { opacity: 1; transform: translate(-50%, 0); }
.case-audit-tooltip button:disabled { cursor: not-allowed; opacity: .52; }

.case-stats-drawer { position: fixed; inset: 0; z-index: 12000; visibility: hidden; pointer-events: none; }
.case-stats-drawer.is-open { visibility: visible; pointer-events: auto; }
.case-stats-drawer-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(10,15,36,.58); opacity: 0; transition: opacity .22s ease; }
.case-stats-drawer.is-open .case-stats-drawer-backdrop { opacity: 1; }
.case-stats-drawer-panel { position: absolute; inset: 0 0 0 auto; display: flex; width: min(480px, 100vw); flex-direction: column; background: #fff; box-shadow: -18px 0 55px rgba(10,15,36,.2); transform: translateX(102%); transition: transform .24s ease; }
.case-stats-drawer.is-open .case-stats-drawer-panel { transform: translateX(0); }
.case-stats-drawer-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 1.4rem; border-bottom: 1px solid #E2E8F0; }
.case-stats-drawer-panel > header small { color: #64748B; font-size: .65rem; font-weight: 800; letter-spacing: .12em; }
.case-stats-drawer-panel > header h3 { margin: .15rem 0 0; color: #0F1B3D; font-family: 'Sora',sans-serif; font-size: 1.2rem; }
.case-stats-drawer-close { display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid #E2E8F0; border-radius: 12px; color: #475569; }
.case-stats-drawer-body { overflow-y: auto; padding: 1.25rem 1.4rem 2rem; }
.case-stats-drawer-list { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.case-stats-drawer-list li { padding: 1rem; border: 1px solid #E2E8F0; border-radius: 14px; background: #F8FAFC; overflow-wrap: anywhere; }
.case-stats-drawer-list li strong { display: block; color: #0F1B3D; font-size: .92rem; }
.case-stats-drawer-list li small { display: block; margin-top: .35rem; color: #64748B; }
.case-stats-drawer-list li p { margin: .65rem 0 0; color: #475569; font-size: .84rem; white-space: pre-line; }
.case-consultation-item { padding: 1.1rem !important; background: #fff !important; }
.case-research-item { padding: 1.1rem !important; background: #fff !important; }
.case-research-item > strong { display: block; color: #0F1B3D; font-size: .96rem; line-height: 1.55; }
.case-consultation-question { padding-bottom: .8rem; border-bottom: 1px solid #E2E8F0; color: #0F1B3D; font-size: .96rem; font-weight: 750; line-height: 1.55; }
.case-consultation-question > :first-child,
.case-consultation-answer > :first-child { margin-top: 0; }
.case-consultation-question > :last-child,
.case-consultation-answer > :last-child { margin-bottom: 0; }
.case-consultation-question p { margin: 0; }
.case-consultation-answer { padding-top: .8rem; color: #334155; font-size: .9rem; line-height: 1.7; overflow-wrap: anywhere; }
.case-consultation-answer h1,
.case-consultation-answer h2,
.case-consultation-answer h3,
.case-consultation-answer h4 { margin: 1rem 0 .45rem; color: #0F1B3D; font-weight: 800; line-height: 1.4; }
.case-consultation-answer h1 { font-size: 1.08rem; }
.case-consultation-answer h2 { font-size: 1rem; }
.case-consultation-answer h3,
.case-consultation-answer h4 { font-size: .93rem; }
.case-consultation-answer p { margin: .55rem 0; color: inherit; font-size: inherit; white-space: normal; }
.case-consultation-answer ul,
.case-consultation-answer ol { margin: .55rem 0; padding-left: 1.3rem; }
.case-consultation-answer ul { list-style: disc; }
.case-consultation-answer ol { list-style: decimal; }
.case-consultation-answer li { margin: .25rem 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
.case-consultation-answer blockquote { margin: .7rem 0; padding: .6rem .8rem; border-left: 3px solid #3851FF; background: #F1F5F9; color: #475569; }
.case-consultation-answer pre { max-width: 100%; overflow-x: auto; padding: .75rem; border-radius: .6rem; background: #0F172A; color: #F8FAFC; font-size: .8rem; }
.case-consultation-answer code { overflow-wrap: anywhere; padding: .08rem .25rem; border-radius: .25rem; background: #E2E8F0; font-size: .85em; }
body.dark-mode.logged-in .case-consultation-item { background: #1F2937 !important; }
body.dark-mode.logged-in .case-research-item { background: #1F2937 !important; }
body.dark-mode.logged-in .case-consultation-question { border-color: rgba(255,255,255,.12); color: #F8FAFC; }
body.dark-mode.logged-in .case-consultation-answer,
body.dark-mode.logged-in .case-consultation-answer h1,
body.dark-mode.logged-in .case-consultation-answer h2,
body.dark-mode.logged-in .case-consultation-answer h3,
body.dark-mode.logged-in .case-consultation-answer h4 { color: #E2E8F0; }
body.dark-mode.logged-in .case-consultation-answer blockquote { background: #111827; color: #CBD5E1; }
body.dark-mode.logged-in .case-consultation-answer code { background: #374151; color: #F8FAFC; }
.case-research-pdf-document { position: fixed; top: 0; left: 0; z-index: -1; box-sizing: border-box; width: 180mm; min-height: 250mm; padding: 12mm; background: #fff; color: #1E293B; font: 11pt/1.65 Arial, Helvetica, sans-serif; }
.case-research-pdf-document header { padding-bottom: 7mm; border-bottom: 1px solid #CBD5E1; }
.case-research-pdf-document .research-pdf-brand { color: #1E3A8A; font-size: 11pt; font-weight: 800; }
.case-research-pdf-document .research-pdf-brand span { color: #64748B; font-size: 9pt; font-weight: 500; }
.case-research-pdf-document .research-pdf-case,
.case-research-pdf-document .research-pdf-date { margin-top: 2mm; color: #64748B; font-size: 9pt; }
.case-research-pdf-document h1 { margin: 7mm 0 2mm; color: #0F1B3D; font-size: 18pt; line-height: 1.3; }
.case-research-pdf-document .research-pdf-source { margin: 6mm 0; padding: 4mm; border-left: 3px solid #3851FF; background: #F1F5F9; font-size: 9pt; }
.case-research-pdf-document .research-pdf-source p { margin: 1mm 0; }
.case-research-pdf-document .research-pdf-source small { color: #64748B; }
.case-research-pdf-document main { padding-top: 6mm; color: #1E293B; font-size: 10.5pt; }
.case-research-pdf-document main h1,
.case-research-pdf-document main h2,
.case-research-pdf-document main h3,
.case-research-pdf-document main h4 { break-after: avoid; page-break-after: avoid; color: #0F1B3D; }
.case-research-pdf-document main p,
.case-research-pdf-document main li { orphans: 3; widows: 3; }
.case-research-pdf-document footer { margin-top: 10mm; padding-top: 3mm; border-top: 1px solid #CBD5E1; color: #64748B; font-size: 8pt; }
.case-stats-empty { display: grid; justify-items: start; gap: .7rem; padding: 1.4rem 1rem; border: 1px dashed #CBD5E1; border-radius: 16px; background: #F8FAFC; }
.case-stats-empty-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 13px; background: #EEF2FF; color: #3851FF; }
.case-stats-empty h4 { margin: 0; color: #0F1B3D; font-family: 'Sora',sans-serif; }
.case-stats-empty p { margin: 0; color: #64748B; font-size: .88rem; line-height: 1.55; }
body.case-stats-drawer-open { overflow: hidden; }
body.dark-mode.logged-in .case-stats-drawer-panel { background: #111827; }
body.dark-mode.logged-in .case-stats-drawer-panel > header { border-color: rgba(255,255,255,.1); }
body.dark-mode.logged-in .case-stats-drawer-panel > header h3,
body.dark-mode.logged-in .case-stats-drawer-list li strong,
body.dark-mode.logged-in .case-stats-empty h4 { color: #F8FAFC; }
body.dark-mode.logged-in .case-stats-drawer-list li,
body.dark-mode.logged-in .case-stats-empty { border-color: rgba(255,255,255,.12); background: #1F2937; }
body.dark-mode.logged-in .case-stats-drawer-list li p,
body.dark-mode.logged-in .case-stats-empty p { color: #CBD5E1; }
body.dark-mode.logged-in #view-cases .case-description-empty { border-color: rgba(129,140,248,.3); background: rgba(56,81,255,.09); }
body.dark-mode.logged-in #view-cases .case-description-empty h4 { color: #F8FAFC; }
body.dark-mode.logged-in #view-cases .case-description-empty p,
body.dark-mode.logged-in #view-cases .case-description-empty small { color: #CBD5E1; }

.case-stats-drawer-panel:focus { outline: none; }
@media (prefers-reduced-motion: reduce) {
    .case-stats-drawer-backdrop, .case-stats-drawer-panel, #view-cases .case-stat-card { transition: none; }
}

/* Modales y formularios */
body.logged-in .alert-overlay.active {
    background: rgba(10,15,36,.64) !important;
    backdrop-filter: blur(9px) !important;
}

body.logged-in .alert-modal.legal-form-modal {
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 20px;
    background: #FFFFFF;
    box-shadow: 0 24px 80px rgba(10,15,36,.34);
}

body.logged-in .legal-form-header {
    border-bottom-color: rgba(15,27,61,.07);
    background: linear-gradient(180deg, rgba(248,249,255,.98), rgba(255,255,255,.96));
}

body.logged-in .legal-form-header h3 { color: #0F1B3D; }
body.logged-in .legal-form-header h3 i,
body.logged-in .legal-form-kicker { color: #3851FF; }
body.logged-in .legal-modal-close { background: #F1F2F6; color: #616B80; }
body.logged-in .legal-modal-close:hover { background: #E6E9F2; color: #0F1B3D; }
body.logged-in .legal-field > span > b { background: #F0F2FF; color: #3851FF; }
body.logged-in .case-progress-item.is-active { color: #3851FF; }
body.logged-in .case-progress-item.is-active > span {
    border-color: #3851FF;
    background: #3851FF;
    box-shadow: 0 0 0 4px rgba(56,81,255,.13);
}
body.logged-in .case-choice-card input:checked + span {
    border-color: #3851FF;
    background: #F0F2FF;
    box-shadow: 0 0 0 3px rgba(56,81,255,.12);
}
body.logged-in .case-choice-card input:checked + span i,
body.logged-in .case-choice-card input:checked + span b { color: #3851FF; }

/* Nueva actuación: composición inspirada en el formulario de referencia. */
body.logged-in .case-action-modal { max-width: 720px !important; }
body.logged-in .case-action-fields { display: flex; flex-direction: column; gap: 1rem; }
body.logged-in .case-action-two-columns { margin-top: 0; }
body.logged-in .case-action-dictate { align-self: flex-start; display: inline-flex; align-items: center; gap: .45rem; min-height: 2.25rem; padding: .4rem .8rem; border: 1px solid #AFC2FF; border-radius: .55rem; background: #EEF2FF; color: #2946CE; font-size: .78rem; font-weight: 800; cursor: pointer; }
body.logged-in .case-action-dictate:hover { background: #E3E9FF; }
body.logged-in .case-action-date-presets { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .55rem; }
body.logged-in .case-action-date-presets button { padding: .45rem .6rem; min-height: 2.2rem; border: 1px solid #CBD5E1; border-radius: .45rem; background: #F8FAFC; color: #475569; font-size: .68rem; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; cursor: pointer; }
body.logged-in .case-action-date-presets button:hover,
body.logged-in .case-action-date-presets button.is-active { border-color: #6B8DFF; background: #EDF2FF; color: #2448D8; }
body.logged-in .case-action-time-toggle { display: inline-flex; align-items: center; gap: .55rem; width: fit-content; color: #64748B; font-size: .75rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; }
body.logged-in .case-action-time-toggle input,
body.logged-in .case-action-assignee-row input { accent-color: #3851FF; width: 1rem; height: 1rem; }
body.logged-in .case-action-assignees { padding: 0; border: 0; }
body.logged-in .case-action-assignees legend { margin-bottom: .5rem; color: #475569; font-size: .75rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
body.logged-in .case-action-assignee-list { display: flex; flex-direction: column; gap: .4rem; padding: .4rem; border: 1px solid #D7DFEA; border-radius: .65rem; background: #FFF; }
body.logged-in .case-action-assignee-row { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .6rem .7rem; border: 1px solid transparent; border-radius: .5rem; }
body.logged-in .case-action-assignee-row.is-selected { border-color: #B5C7FF; background: #EEF3FF; }
body.logged-in .case-action-assignee-row > label { display: inline-flex; align-items: center; gap: .55rem; color: #24324B; font-size: .84rem; cursor: pointer; }
body.logged-in .case-action-assignee-row > label:first-child { min-width: 0; flex: 1; }
body.logged-in .case-action-assignee-row > label:first-child span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.logged-in .case-action-assignee-row .case-action-primary { color: #3157D5; font-size: .72rem; font-weight: 800; }
body.logged-in .case-action-assignee-row .case-action-primary input:disabled { opacity: .4; }
body.logged-in .case-action-assignee-summary { margin: .4rem 0 0; color: #64748B; font-size: .75rem; }
body.logged-in .case-action-modal :is(button, input, select, textarea):focus-visible { outline: 2px solid #3851FF; outline-offset: 2px; }
body.dark-mode.logged-in .case-action-dictate,
body.dark-mode.logged-in .case-action-date-presets button.is-active { border-color: #637AFF; background: #273766; color: #DCE5FF; }
body.dark-mode.logged-in .case-action-assignee-list { border-color: #344261; background: #101B35; }
body.dark-mode.logged-in .case-action-assignee-row.is-selected { border-color: #637AFF; background: #23345E; }
body.dark-mode.logged-in .case-action-assignee-row > label { color: #EEF2FF; }
body.dark-mode.logged-in .case-action-assignee-summary,
body.dark-mode.logged-in .case-action-assignees legend,
body.dark-mode.logged-in .case-action-time-toggle { color: #B6C4DB; }
@media (max-width: 640px) {
    body.logged-in .case-action-modal { max-height: calc(100vh - .5rem) !important; }
    body.logged-in .case-action-assignee-row { align-items: flex-start; }
    body.logged-in .case-action-date-presets button { flex: 1 0 calc(33.33% - .4rem); }
}

/* Dark mode del sistema 2026 */
body.dark-mode.logged-in {
    --sidebar-bg: #0E1633;
    --sidebar-text: rgba(255,255,255,.72);
    --sidebar-hover-bg: rgba(255,255,255,.055);
    --app-line: rgba(255,255,255,.075);
    background: #0A0F24 !important;
    color: rgba(255,255,255,.90);
}

body.dark-mode.logged-in .navbar,
body.dark-mode.logged-in #app-sidebar { background: rgba(14,22,51,.94) !important; }
body.dark-mode.logged-in #private-layout .app-container,
body.dark-mode.logged-in #private-layout .main-content {
    background: #0A0F24 !important;
}

body.dark-mode.logged-in .card,
body.dark-mode.logged-in .case-browser-panel,
body.dark-mode.logged-in .dashboard-quick-action,
body.dark-mode.logged-in #view-cases .legal-help-card,
body.dark-mode.logged-in .alert-modal.legal-form-modal {
    border-color: rgba(255,255,255,.075) !important;
    background: #111B36 !important;
    color: rgba(255,255,255,.88) !important;
}
body.dark-mode.logged-in #view-cases .case-help-toggle[aria-expanded="true"] { border-color: #818CF8; background: #1E293B; color: #C7D2FE; }

body.dark-mode.logged-in .legal-page-title-row h2,
body.dark-mode.logged-in .legal-page-heading > p,
body.dark-mode.logged-in #view-cases .legal-help-card strong,
body.dark-mode.logged-in #view-cases #cases-list h3,
body.dark-mode.logged-in #view-cases #case-detail h3,
body.dark-mode.logged-in #view-cases #case-detail h4,
body.dark-mode.logged-in #view-cases #case-detail > .grid b,
body.dark-mode.logged-in .case-browser-heading span { color: #FFFFFF !important; }

body.dark-mode.logged-in .dashboard-hero {
    border-color: rgba(56,81,255,.22);
    background: linear-gradient(135deg, #111B36, #131F45);
}

body.dark-mode.logged-in #view-cases #cases-list > article,
body.dark-mode.logged-in #view-cases #case-detail > div:first-child,
body.dark-mode.logged-in #view-cases .case-action-bar,
body.dark-mode.logged-in .legal-form-header,
body.dark-mode.logged-in .form-control {
    border-color: rgba(255,255,255,.075) !important;
    background: #0F1B3D !important;
    color: #FFFFFF !important;
}

body.dark-mode.logged-in #view-cases #case-detail > .grid > div { border-color: rgba(255,255,255,.06); }
body.dark-mode.logged-in .btn-ghost { border-color: rgba(255,255,255,.10) !important; background: rgba(255,255,255,.04) !important; color: rgba(255,255,255,.75) !important; }
body.dark-mode.logged-in .case-flow-steps span { border-color: rgba(255,255,255,.08); background: rgba(255,255,255,.04); color: rgba(255,255,255,.72); }

@media (max-width: 1180px) {
    .case-workspace-grid:has(#case-detail:not(.hidden)) { grid-template-columns: minmax(0, 1fr); }
    .case-workspace-grid:has(#case-detail:not(.hidden)) #cases-list { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}

@media (max-width: 1023px) {
    .case-workspace-grid:has(#case-detail:not(.hidden)) { display: block; }
    .case-workspace-grid:has(#case-detail:not(.hidden)) .case-browser-panel { display: none; }
    #view-cases #case-detail:not(.hidden) {
        position: fixed;
        z-index: 1200;
        inset: var(--nav-height,73px) 0 0;
        width: 100vw;
        height: calc(100dvh - var(--nav-height,73px));
        max-height: none;
        margin: 0 !important;
        padding: 1rem !important;
        overflow-x: hidden;
        overflow-y: auto;
        border-radius: 0;
        background: #FFFFFF;
        box-shadow: 0 16px 50px rgba(10,15,36,.24);
    }
    #view-cases .case-mobile-back {
        display: inline-flex;
        align-items: center;
        gap: .5rem;
        min-height: 40px;
        margin: 0 0 1rem;
        padding: .45rem .7rem;
        border: 1px solid rgba(56,81,255,.18);
        border-radius: 10px;
        background: #F8FAFF;
        color: #3851FF;
        font-size: .8rem;
        font-weight: 750;
    }
    body.dark-mode.logged-in #view-cases #case-detail:not(.hidden) { background: #0A0F24; }
    body.dark-mode.logged-in #view-cases .case-mobile-back { border-color: rgba(129,140,248,.25); background: #111B36; color: #C7D2FE; }
}

@media (max-width: 767px) {
    :root { --nav-height: 64px; }
    body.logged-in #private-layout .main-content { padding: 1rem !important; padding-bottom: 5rem !important; }
    .legal-page-header { align-items: stretch; flex-direction: column; }
    .legal-page-header > button { width: 100%; }
    #view-cases .case-page-actions { width: 100%; }
    #view-cases .case-page-actions > button { flex: 1 1 190px; }
    .legal-page-title-row h2 { font-size: 2rem; }
    #view-cases .legal-help-card { padding: 1rem; border-radius: 16px; }
    .case-flow-steps { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
    .case-workspace-grid:has(#case-detail:not(.hidden)) #cases-list { grid-template-columns: minmax(0,1fr) !important; }
    .case-browser-panel { padding: .75rem; border-radius: 16px; }
    #view-cases .case-action-bar { margin-inline: .75rem; overflow: visible; flex-wrap: wrap; }
    #view-cases .case-action-bar button { flex: 0 0 auto; white-space: nowrap; }
    #view-cases #case-detail > .grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; padding-inline: .85rem; }
    #view-cases #case-detail > .grid > div:last-child { grid-column: 1 / -1; }
    #view-cases #case-detail > h4,
    #view-cases #case-detail > p,
    #view-cases #case-detail > ul,
    #view-cases #case-detail > div.mt-6 { margin-left: .9rem !important; margin-right: .9rem !important; }
}

@media (prefers-reduced-motion: reduce) {
    body.logged-in .btn-primary,
    body.logged-in .dashboard-quick-action,
    #view-cases #cases-list > article { transition: none !important; }
}

/* Expediente: composición basada en el mockup y acciones directas por archivo. */
#view-cases .case-detail-content-grid { display: grid; gap: 1.25rem; padding: 1.15rem 1.25rem 1.5rem; container-type: inline-size; }
#view-cases .case-detail-main-column, #view-cases .case-detail-side-column { display: grid; min-width: 0; align-content: start; gap: 1.15rem; }
#view-cases .case-detail-content-panel { min-width: 0; overflow: hidden; border: 1px solid #E2E8F0; border-radius: 16px; background: #fff; }
#view-cases .case-detail-panel-header { display: flex; min-height: 54px; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1.1rem; border-bottom: 1px solid #E2E8F0; }
#view-cases .case-detail-panel-header h4 { margin: 0; color: #0F1B3D; font-family: 'Sora',sans-serif; font-size: .8rem; font-weight: 850; }
#view-cases .case-detail-description-panel > p { margin: 0; padding: 1rem 1.1rem 1.2rem; color: #475569; font-size: .88rem; line-height: 1.6; }
#view-cases .case-detail-description-panel .case-description-empty { margin: 1rem; }
#view-cases .case-detail-document-count { flex: 0 0 auto; padding: .3rem .6rem; border-radius: 999px; background: #F1F5F9; color: #475569; font-size: .68rem; font-weight: 800; }
#view-cases .case-detail-edit-description { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid #E2E8F0; border-radius: 9px; background: #fff; color: #64748B; }
#view-cases .case-detail-edit-description:hover, #view-cases .case-detail-edit-description:focus-visible { border-color: #A5B4FC; background: #EEF2FF; color: #3851FF; }
#view-cases .case-detail-upload-panel { margin: 0 !important; }
#view-cases .case-detail-tip { padding: 1.1rem; border-radius: 14px; background: #0F1B3D; color: #fff; }
#view-cases .case-detail-tip strong { font-size: .8rem; }
#view-cases .case-detail-tip p { margin: .4rem 0 0; color: #CBD5E1; font-size: .76rem; line-height: 1.55; }
@media (min-width: 1500px) { #view-cases .case-detail-content-grid { grid-template-columns: minmax(0, 1fr) 250px; } }

#view-cases .case-detail-documents-panel .case-source-document-list { display: block; margin: 0; overflow: visible; border: 0; border-radius: 0; }
#view-cases .case-detail-documents-panel .case-source-toolbar { gap: .55rem; padding: .8rem 1rem; background: #fff; }
#view-cases .case-detail-documents-panel .case-source-search, #view-cases .case-detail-documents-panel .case-source-filter { border-radius: 999px; }
#view-cases .case-source-table { min-width: 620px; }
#view-cases .case-source-table th { padding: .68rem .8rem; }
#view-cases .case-source-table td { min-width: 0; padding: .85rem .8rem; vertical-align: middle; }
#view-cases .case-source-table th:first-child, #view-cases .case-source-table td:first-child { min-width: 158px; width: 20%; white-space: nowrap; }
#view-cases .case-source-table th:nth-child(2), #view-cases .case-source-table td:nth-child(2) { min-width: 260px; width: auto; white-space: normal; }
#view-cases .case-source-table th:nth-child(3), #view-cases .case-source-table td:nth-child(3) { min-width: 82px; width: 12%; white-space: nowrap; }
#view-cases .case-source-table th:nth-child(4), #view-cases .case-source-table td:nth-child(4) { min-width: 76px; width: 11%; }
#view-cases .case-source-table th:last-child, #view-cases .case-source-table td:last-child { min-width: 54px; width: 54px; text-align: center; }
#view-cases .case-source-date { color: #64748B; font-size: .75rem; }
#view-cases .case-source-file { display: inline-flex; align-items: center; gap: .48rem; color: #3851FF; }
#view-cases .case-source-file i { margin: 0; }
#view-cases .case-source-name { max-width: 170px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: help; }
#view-cases .case-source-name:focus-visible { outline: 2px solid #3851FF; outline-offset: 3px; }
.case-source-name-tooltip { position: fixed; z-index: 10000002; max-width: min(420px, calc(100vw - 16px)); padding: .55rem .7rem; border-radius: 9px; background: #0F1B3D; color: #fff; box-shadow: 0 8px 24px rgba(15,23,42,.24); font-size: .75rem; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; pointer-events: none; }
.case-source-name-tooltip[hidden] { display: none; }
#view-cases .case-source-action-row { display: none; background: #F8FAFC; }
#view-cases .case-source-action-row.is-keyboard-open:not([hidden]) { display: table-row; }
#view-cases .case-source-document-row:hover + .case-source-action-row:not([hidden]), #view-cases .case-source-document-row:focus-within + .case-source-action-row:not([hidden]), #view-cases .case-source-action-row:hover:not([hidden]), #view-cases .case-source-action-row:focus-within:not([hidden]) { display: table-row; }
#view-cases .case-source-action-row td { width: auto !important; min-width: 0 !important; padding: .35rem .8rem .7rem !important; border-top: 0; white-space: normal !important; text-align: left !important; }
#view-cases .case-source-inline-actions { display: flex; flex-wrap: wrap; gap: .5rem; width: max-content; max-width: 100%; position: sticky; left: 0; }
#view-cases .case-source-icon-wrapper { display: inline-flex; }
#view-cases .case-source-inline-action { display: inline-grid; place-items: center; width: 44px; height: 44px; min-width: 44px; padding: 0; border: 1px solid #E2E8F0; border-radius: 8px; background: #fff; color: #3851FF; font-size: 1rem; white-space: nowrap; text-align: center; }
#view-cases .case-source-inline-action i { margin: 0; }
#view-cases .case-source-inline-action.is-secondary { color: #64748B; }
#view-cases .case-source-inline-action:hover:not(:disabled), #view-cases .case-source-inline-action:focus-visible { color: #233BC4; border-color: #A5B4FC; background: #EEF2FF; }
#view-cases .case-source-inline-action:focus-visible { outline: 2px solid #3851FF; outline-offset: 2px; }
#view-cases .case-source-inline-action:disabled { color: #94A3B8; cursor: not-allowed; }
#view-cases .case-source-hint { margin-left: 1.25rem; }
#view-cases .case-source-download { display: inline-grid; width: 34px; height: 34px; place-items: center; border: 1px solid #E2E8F0; border-radius: 9px; background: #fff; color: #3851FF; }
#view-cases .case-source-download:hover, #view-cases .case-source-download:focus-visible { border-color: #A5B4FC; background: #EEF2FF; }
@media (hover: none) { #view-cases .case-source-action-row:not([hidden]) { display: table-row; } }
@media (max-width: 700px) { #view-cases .case-source-table th:nth-child(3), #view-cases .case-source-table td:nth-child(3) { display: table-cell; } #view-cases .case-detail-content-grid { padding: .85rem; } }
body.dark-mode.logged-in #view-cases .case-detail-content-panel { border-color: #334155; background: #0F172A; }
body.dark-mode.logged-in #view-cases .case-detail-panel-header { border-color: #334155; }
body.dark-mode.logged-in #view-cases .case-detail-panel-header h4 { color: #F8FAFC; }
body.dark-mode.logged-in #view-cases .case-detail-description-panel > p { color: #CBD5E1; }
body.dark-mode.logged-in #view-cases .case-detail-document-count { background: #1E293B; color: #CBD5E1; }
body.dark-mode.logged-in #view-cases .case-detail-documents-panel .case-source-toolbar { background: #0F172A; }
body.dark-mode.logged-in #view-cases .case-source-action-row { background: #111827; }
body.dark-mode.logged-in #view-cases .case-source-inline-action { border-color: #334155; background: #0F172A; color: #C7D2FE; }
body.dark-mode.logged-in #view-cases .case-source-download, body.dark-mode.logged-in #view-cases .case-detail-edit-description { border-color: #475569; background: #111827; color: #C7D2FE; }

/* Consultas IA e Investigación: historial por documento, sin etiquetas de riesgo inferidas. */
.case-stats-drawer-panel { width: min(560px, 100vw); }
.case-stats-drawer-panel > header { flex: 0 0 auto; padding: 1.35rem 1.5rem 1.15rem; background: #fff; }
.case-stats-drawer-meta { display: flex; align-items: center; gap: .6rem; margin-top: .65rem; color: #64748B; font-size: .75rem; }
.case-stats-drawer-meta:empty, .case-stats-drawer-footer:empty { display: none; }
.case-analysis-count { padding: .3rem .62rem; border-radius: 999px; background: #0F1B3D; color: #fff; font-size: .7rem; font-weight: 800; }
.case-stats-drawer-body { min-height: 0; flex: 1 1 auto; padding: 0; background: #FCFCFD; }
.case-stats-drawer-body > .case-stats-empty, .case-stats-drawer-body > .case-stats-drawer-list:not(.case-analysis-list) { margin: 1.2rem; }
.case-analysis-toolbar { position: sticky; z-index: 2; top: 0; display: grid; gap: .8rem; padding: .9rem 1.2rem; border-bottom: 1px solid #E2E8F0; background: rgba(255,255,255,.97); }
.case-analysis-filter-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); align-items: end; gap: .65rem; }
.case-analysis-scope, .case-analysis-document-picker { min-width: 0; }
.case-analysis-scope > span, .case-analysis-picker-label { display: block; margin-bottom: .3rem; color: #475569; font-size: .69rem; font-weight: 800; }
.case-analysis-scope select, .case-analysis-picker-toggle { width: 100%; min-height: 42px; padding: .58rem .7rem; border: 1px solid #CBD5E1; border-radius: 10px; background: #fff; color: #0F1B3D; font-size: .78rem; font-weight: 750; }
.case-analysis-document-picker { position: relative; }
.case-analysis-picker-toggle { display: flex; align-items: center; gap: .5rem; text-align: left; }
.case-analysis-picker-toggle > span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.case-analysis-picker-toggle > i { color: #3851FF; }
.case-analysis-document-menu { position: absolute; z-index: 6; top: calc(100% + .35rem); right: 0; width: min(360px, calc(100vw - 2rem)); padding: .6rem; border: 1px solid #CBD5E1; border-radius: 12px; background: #fff; box-shadow: 0 14px 32px rgba(15,23,42,.18); }
.case-analysis-document-menu[hidden], .case-analysis-document-options button[hidden], .case-analysis-document-no-match[hidden], .case-analysis-clear[hidden], .case-analysis-document-picker[hidden] { display: none !important; }
.case-analysis-document-search { display: flex; align-items: center; gap: .45rem; padding: .55rem .65rem; border: 1px solid #CBD5E1; border-radius: 9px; color: #64748B; }
.case-analysis-document-search input { min-width: 0; width: 100%; border: 0; outline: 0; background: transparent; color: #0F1B3D; font-size: .78rem; }
.case-analysis-document-options { display: grid; gap: .15rem; max-height: min(300px, 40vh); margin-top: .5rem; overflow-y: auto; overscroll-behavior: contain; }
.case-analysis-document-options button { display: flex; align-items: center; justify-content: space-between; gap: .5rem; width: 100%; padding: .58rem .65rem; border: 0; border-radius: 8px; background: transparent; color: #334155; font-size: .75rem; text-align: left; }
.case-analysis-document-options button:hover, .case-analysis-document-options button.is-active { background: #EEF2FF; color: #233BC4; }
.case-analysis-document-options button span { min-width: 0; overflow-wrap: anywhere; }
.case-analysis-document-options button b { flex: 0 0 auto; padding: .1rem .4rem; border-radius: 999px; background: #E2E8F0; font-size: .66rem; }
.case-analysis-document-no-match { margin: .75rem .35rem .2rem; color: #64748B; font-size: .75rem; }
.case-analysis-filter-status { display: flex; align-items: center; justify-content: space-between; gap: .6rem; color: #64748B; font-size: .72rem; }
.case-analysis-clear { padding: .2rem 0; border: 0; background: transparent; color: #3851FF; font-size: .72rem; font-weight: 800; }
.case-analysis-scope select:focus-visible, .case-analysis-picker-toggle:focus-visible, .case-analysis-document-search:focus-within, .case-analysis-document-options button:focus-visible, .case-analysis-clear:focus-visible, .case-analysis-source-chip:focus-visible, .case-analysis-secondary-action:focus-visible, .case-analysis-expansion summary:focus-visible { outline: 2px solid #3851FF; outline-offset: 2px; }
.case-analysis-list { gap: .82rem; padding: 1rem 1.2rem 1.25rem; }
.case-stats-drawer-list .case-analysis-card { padding: 1rem; border: 1px solid #E2E8F0; border-left: 4px solid #3851FF; border-radius: 14px; background: #fff; box-shadow: 0 3px 14px rgba(15,23,42,.035); }
.case-stats-drawer-list .case-analysis-card.is-general { border-left-color: #F59E0B; }
.case-analysis-card[hidden], .case-analysis-filter-empty[hidden] { display: none; }

.case-analysis-card-top { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .45rem; }
.case-analysis-type { display: inline-flex; align-items: center; gap: .35rem; padding: .24rem .52rem; border-radius: 999px; background: #EEF2FF; color: #3851FF; font-size: .66rem; font-weight: 850; }
.case-analysis-card.is-general .case-analysis-type { background: #FFFBEB; color: #A16207; }
.case-analysis-card-top time { color: #94A3B8; font-size: .68rem; }
.case-analysis-source-line { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .72rem; }
.case-analysis-source-chip { display: inline-flex; max-width: 100%; align-items: center; gap: .4rem; padding: .36rem .58rem; border: 1px solid #E2E8F0; border-radius: 999px; background: #F8FAFC; color: #3851FF; font-size: .7rem; font-weight: 750; }
.case-analysis-source-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.case-analysis-source-chip:hover { border-color: #A5B4FC; background: #EEF2FF; }
.case-analysis-general-chip { color: #64748B; font-size: .7rem; }
.case-analysis-title { margin-top: .8rem; color: #0F1B3D; font-size: .86rem; font-weight: 800; line-height: 1.45; overflow-wrap: anywhere; }
.case-analysis-title > :first-child { margin-top: 0; }
.case-analysis-title > :last-child { margin-bottom: 0; }
.case-analysis-preview { max-height: 4.9em; overflow: hidden; margin-top: .45rem; padding: 0; color: #475569; font-size: .76rem; line-height: 1.65; mask-image: linear-gradient(#000 75%,transparent); }
.case-analysis-preview h1, .case-analysis-preview h2, .case-analysis-preview h3, .case-analysis-preview h4 { margin: .1rem 0; font-size: .77rem; }
.case-analysis-expansion { margin-top: .7rem; border-top: 1px solid #F1F5F9; }
.case-analysis-expansion summary { padding: .62rem 0 .1rem; color: #3851FF; font-size: .72rem; font-weight: 800; cursor: pointer; }
.case-analysis-expansion[open] .case-consultation-answer { padding: .7rem .1rem 0; font-size: .82rem; }
.case-analysis-no-content { color: #94A3B8; font-size: .75rem; }
.case-analysis-card-actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .75rem; }
.case-analysis-secondary-action { display: inline-flex; align-items: center; gap: .35rem; padding: .46rem .7rem; border: 1px solid #CBD5E1; border-radius: 999px; background: #fff; color: #334155; font-size: .7rem; font-weight: 750; }
.case-analysis-secondary-action:hover { border-color: #A5B4FC; color: #3851FF; }
.case-analysis-filter-empty { margin: 0 1.2rem 1.2rem; padding: 1.1rem; border: 1px dashed #CBD5E1; border-radius: 12px; color: #64748B; font-size: .8rem; text-align: center; }
.case-stats-drawer-footer { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: .65rem; padding: .9rem 1.2rem; border-top: 1px solid #E2E8F0; background: #fff; }
.case-stats-drawer-footer small { color: #94A3B8; font-size: .66rem; line-height: 1.35; }
.case-analysis-new-action { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .4rem; padding: .6rem .85rem; border: 0; border-radius: 999px; background: #3851FF; color: #fff; font-size: .75rem; font-weight: 800; }
.case-analysis-new-action:hover { background: #233BC4; }
body.dark-mode.logged-in .case-stats-drawer-panel > header, body.dark-mode.logged-in .case-stats-drawer-footer, body.dark-mode.logged-in .case-analysis-toolbar { border-color: #334155; background: #0F172A; }
body.dark-mode.logged-in .case-stats-drawer-body { background: #111827; }
body.dark-mode.logged-in .case-analysis-scope select, body.dark-mode.logged-in .case-analysis-picker-toggle, body.dark-mode.logged-in .case-analysis-document-menu, body.dark-mode.logged-in .case-analysis-document-search, body.dark-mode.logged-in .case-analysis-source-chip, body.dark-mode.logged-in .case-analysis-secondary-action { border-color: #334155; background: #1E293B; color: #E2E8F0; }
body.dark-mode.logged-in .case-analysis-scope > span, body.dark-mode.logged-in .case-analysis-picker-label { color: #CBD5E1; }
body.dark-mode.logged-in .case-analysis-document-search input, body.dark-mode.logged-in .case-analysis-document-options button { color: #E2E8F0; }
body.dark-mode.logged-in .case-analysis-document-options button:hover, body.dark-mode.logged-in .case-analysis-document-options button.is-active { background: #26346A; }
body.dark-mode.logged-in .case-stats-drawer-list .case-analysis-card { border-color: #334155; border-left-color: #818CF8; background: #0F172A; }
body.dark-mode.logged-in .case-stats-drawer-list .case-analysis-card.is-general { border-left-color: #FBBF24; }
body.dark-mode.logged-in .case-analysis-title { color: #F8FAFC; }
body.dark-mode.logged-in .case-analysis-preview { color: #CBD5E1; }
body.dark-mode.logged-in .case-analysis-expansion { border-color: #334155; }
@media (max-width: 580px) { .case-stats-drawer-panel > header { padding: 1.1rem; } .case-analysis-toolbar { padding: .75rem; } .case-analysis-filter-row { grid-template-columns: 1fr; } .case-analysis-document-menu { left: 0; right: auto; width: 100%; } .case-analysis-list { padding: .75rem; } .case-stats-drawer-footer { align-items: flex-start; flex-direction: column; } }

/* El control de plan no puede ser anulado por el estilo visual de los botones. */
#view-teams #legacy-team-create-button[hidden], #view-teams #organization-create-button[hidden] { display: none !important; }

/* Gestión jurídica: contexto, búsqueda y colaboración por persona. */
.legal-workspace-context { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .65rem; margin-bottom: 1.25rem; color: #64748B; font-size: .76rem; }
.legal-workspace-context > span { display: inline-flex; align-items: center; gap: .5rem; color: #0F1B3D; font-weight: 750; }
.legal-workspace-context small { font-size: .72rem; }
.legal-list-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin: 0 0 1.25rem; }
.legal-search { display: flex; flex: 1 1 270px; align-items: center; gap: .7rem; min-width: 0; padding: .8rem 1rem; border: 1px solid #CBD5E1; border-radius: 12px; background: #fff; color: #64748B; }
.legal-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: #0F1B3D; font: inherit; font-size: .85rem; }
.legal-search:focus-within { border-color: #3851FF; box-shadow: 0 0 0 3px rgba(56,81,255,.12); }
.legal-filter { display: flex; align-items: center; gap: .6rem; color: #64748B; font-size: .8rem; }
.legal-filter select { padding: .8rem; border: 1px solid #CBD5E1; border-radius: 12px; background: #fff; color: #0F1B3D; }
.legal-result-count { color: #64748B; font-size: .78rem; }
.legal-help-disclosure { margin: 1rem 0; border: 1px solid #E2E8F0; border-radius: 12px; background: rgba(255,255,255,.6); }
.legal-help-disclosure > summary { padding: .85rem 1rem; color: #475569; cursor: pointer; font-size: .82rem; font-weight: 650; }
.legal-help-disclosure > .legal-help-card { margin: 0; border: 0; border-top: 1px solid #E2E8F0; border-radius: 0 0 12px 12px; }
.legal-empty-state { grid-column: 1 / -1; padding: 2.4rem 1.4rem; border: 1px dashed #CBD5E1; border-radius: 18px; background: #F8FAFC; text-align: center; color: #64748B; }
.legal-empty-state > i { margin-bottom: 1rem; color: #3851FF; font-size: 1.7rem; }
.legal-empty-state h3 { margin: 0 0 .5rem; color: #0F1B3D; font-size: 1.1rem; font-weight: 800; }
.legal-empty-state p { max-width: 470px; margin: 0 auto 1rem; font-size: .85rem; line-height: 1.65; }
.legal-empty-state button { padding: .7rem 1rem; border-radius: 10px; }
.legal-client-card { display: grid; grid-template-columns: 42px minmax(0,1fr); gap: .8rem; align-items: start; padding: 1.25rem; text-align: left; }
.legal-client-avatar { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 12px; background: #EEF2FF; color: #3851FF; }
.legal-client-name { min-width: 0; }
.legal-client-name h3, .legal-portal-card h3, .legal-received-card h3 { margin: 0 0 .4rem; color: #0F1B3D; font-size: 1rem; font-weight: 800; overflow-wrap: anywhere; }
.legal-client-name small { color: #64748B; overflow-wrap: anywhere; }
.legal-pill { display: inline-flex; width: fit-content; align-items: center; padding: .3rem .6rem; border-radius: 999px; background: #EEF2FF; color: #3851FF; font-size: .7rem; font-weight: 750; }
.legal-pill.is-success { background: #DCFCE7; color: #166534; }
.legal-pill.is-muted { background: #F1F5F9; color: #475569; }
.legal-client-card > .legal-pill { grid-column: 2; }
.legal-card-link { display: flex; align-items: center; gap: .5rem; margin-top: .5rem; color: #3851FF; font-size: .78rem; font-weight: 750; }
.legal-client-card .legal-card-link { grid-column: 1 / -1; padding-top: .85rem; border-top: 1px solid #E2E8F0; }
.legal-client-card:hover { border-color: #A5B4FC; box-shadow: 0 10px 28px rgba(15,27,61,.08); }
.legal-detail-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1.2rem; }
.legal-detail-heading h3 { margin: .45rem 0; color: #0F1B3D; font-size: 1.4rem; font-weight: 800; }
.legal-detail-heading p { color: #64748B; font-size: .85rem; overflow-wrap: anywhere; }
.legal-detail-actions { display: flex; flex-wrap: wrap; align-items: start; gap: .5rem; }
.legal-detail-actions button { padding: .7rem .85rem; border-radius: 10px; font-size: .78rem; }
.legal-section-heading { display: flex; align-items: center; gap: .7rem; margin: 1.6rem 0 .8rem; color: #0F1B3D; font-weight: 750; }
.legal-client-cases { display: grid; gap: .6rem; }
.legal-client-case { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid #E2E8F0; border-radius: 12px; background: #fff; color: #0F1B3D; text-align: left; }
.legal-client-case small { display: block; margin-top: .3rem; color: #64748B; }
.legal-client-case:hover { border-color: #3851FF; background: #F8F9FF; }
.legal-client-document-list { display: grid; gap: .8rem; padding: 1rem; font-size: .85rem; }
.legal-client-document-list a { color: #3851FF; }
.legal-client-document-list small { display: block; color: #64748B; }
.legal-view-switch { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.2rem; }
.legal-view-switch button { display: flex; align-items: center; gap: .6rem; padding: .85rem 1rem; border: 1px solid #CBD5E1; border-radius: 12px; background: #fff; color: #475569; font-size: .85rem; font-weight: 750; }
.legal-view-switch button[aria-pressed="true"] { border-color: #0F1B3D; background: #0F1B3D; color: #fff; }
.legal-view-switch button > span { min-width: 24px; padding: .12rem .4rem; border-radius: 8px; background: rgba(128,128,128,.18); text-align: center; font-size: .72rem; }
.legal-portal-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(280px,100%),1fr)); gap: 1rem; }
.legal-portal-card, .legal-received-card { display: flex; flex-direction: column; align-items: stretch; padding: 1.3rem; text-align: left; }
.legal-portal-card-top { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.legal-portal-card-top > small { color: #64748B; font-size: .72rem; }
.legal-portal-client { margin-top: .35rem; color: #475569; font-size: .83rem; }
.legal-portal-recipient { margin-top: .35rem; color: #64748B; font-size: .78rem; overflow-wrap: anywhere; }
.legal-portal-card-metrics { display: flex; flex-wrap: wrap; gap: .8rem; margin: 1.2rem 0; padding: .8rem 0; border-top: 1px solid #E2E8F0; border-bottom: 1px solid #E2E8F0; color: #64748B; font-size: .72rem; }
.legal-portal-card-metrics b { color: #0F1B3D; }
.legal-portal-card > button { display: flex; align-items: center; justify-content: space-between; gap: .7rem; margin-top: auto; padding: .75rem 1rem; border-radius: 10px; font-size: .8rem; }
.legal-received-card > .legal-pill { margin-bottom: 1rem; }
.legal-received-card p, .legal-section-intro { margin: .5rem 0 1rem; color: #64748B; font-size: .85rem; line-height: 1.65; }
.case-detail-column { min-width: 0; }
.case-workspace-grid { grid-template-columns: minmax(280px,.62fr) minmax(0,1.75fr); }
.case-workspace-grid #cases-list { grid-template-columns: minmax(0,1fr) !important; }
.case-search { margin: .25rem 0 .85rem; }
.case-search input { font-size: .78rem; }
.case-selection-empty { min-height: 300px; padding-top: 3rem; }
.legal-case-journey { display: grid; gap: .75rem; width: fit-content; margin: 1.3rem auto 0; list-style: none; text-align: left; font-size: .8rem; }
.legal-case-journey b { display: inline-grid; place-items: center; width: 24px; height: 24px; margin-right: .5rem; border-radius: 8px; background: #EEF2FF; color: #3851FF; }
#portal-managed-panel[hidden], #portal-received-panel[hidden], #team-space-section[hidden], .legal-view-switch button[hidden] { display: none !important; }
.legal-client-card:focus-visible, .legal-client-case:focus-visible, .legal-view-switch button:focus-visible, .legal-help-disclosure summary:focus-visible, .legal-received-card:focus-visible { outline: 3px solid #3851FF; outline-offset: 3px; }
body.dark-mode .legal-workspace-context > span, body.dark-mode .legal-detail-heading h3, body.dark-mode .legal-section-heading, body.dark-mode .legal-client-name h3, body.dark-mode .legal-portal-card h3, body.dark-mode .legal-received-card h3, body.dark-mode .legal-empty-state h3, body.dark-mode .legal-portal-card-metrics b { color: #F8FAFC; }
body.dark-mode .legal-search, body.dark-mode .legal-filter select, body.dark-mode .legal-help-disclosure, body.dark-mode .legal-client-case, body.dark-mode .legal-view-switch button, body.dark-mode .legal-empty-state { border-color: #334155; background: #0F172A; color: #CBD5E1; }
body.dark-mode .legal-search input { color: #F8FAFC; }
body.dark-mode .legal-view-switch button[aria-pressed="true"] { background: #26346A; border-color: #818CF8; color: #fff; }
body.dark-mode .legal-help-disclosure summary, body.dark-mode .legal-workspace-context, body.dark-mode .legal-result-count, body.dark-mode .legal-portal-recipient, body.dark-mode .legal-portal-client, body.dark-mode .legal-client-name small, body.dark-mode .legal-detail-heading p, body.dark-mode .legal-section-intro { color: #CBD5E1; }
body.dark-mode .legal-portal-card-metrics, body.dark-mode .legal-client-card .legal-card-link { border-color: #334155; }
@media (max-width:1180px) { .case-workspace-grid { grid-template-columns: minmax(0,1fr); } }
@media (max-width:640px) { .legal-workspace-context small { width: 100%; font-size: .65rem; } .legal-view-switch { flex-direction: column; } .legal-view-switch button { justify-content: space-between; } .legal-list-toolbar { align-items: stretch; } .legal-search { flex-basis: 100%; } .case-selection-empty { display: none; } .legal-detail-actions { width: 100%; } .legal-detail-actions button { flex: 1 1 auto; } }
.legal-profile-disclosure { align-self: start; }
.legal-profile-disclosure summary { cursor: pointer; font-size: 1rem; }

/* Acciones privadas de IA para el destinatario de un documento compartido. */
#view-cases .case-source-inline-action.is-danger { color: #B91C1C; }
#view-cases .case-source-inline-action.is-danger:hover { background: #FEF2F2; }
body.dark-mode.logged-in #view-cases .case-source-inline-action.is-danger { color: #FCA5A5; }
body.dark-mode.logged-in #view-cases .case-source-inline-action.is-danger:hover { background: #451A1A; }
.portal-shared-document { padding: 1.15rem; border: 1px solid #E2E8F0; border-radius: 16px; background: #fff; }
.portal-shared-document h5 { font-weight: 800; overflow-wrap: anywhere; }
.portal-shared-document small, .portal-analysis-document small { display: block; margin-top: .4rem; color: #64748B; }
.portal-shared-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
.portal-shared-actions > *, #portal-analysis-submit { padding: .65rem .9rem; border-radius: 10px; font-size: .8rem; }
.portal-analysis-document { margin-bottom: 1rem; padding: 1rem; border-radius: 12px; background: #F1F5F9; overflow-wrap: anywhere; }
.portal-analysis-intro { color: #64748B; font-size: .83rem; line-height: 1.65; margin: .7rem 0 1rem; }
.portal-analysis-credit { display: grid; gap: .4rem; padding: 1rem; border-radius: 12px; background: #FFFBEB; color: #854D0E; margin: 1rem 0; font-size: .8rem; }
.portal-analysis-consent { display: flex; gap: .65rem; align-items: flex-start; margin: 1rem 0; font-size: .85rem; }
.portal-analysis-consent input { margin-top: .2rem; flex-shrink: 0; }
.portal-analysis-error { color: #B91C1C; font-size: .85rem; margin: .7rem 0; }
.portal-analysis-history-title { font-weight: 800; margin-top: 1.5rem; }
.portal-analysis-report { border: 1px solid #E2E8F0; padding: .9rem; border-radius: 12px; margin-top: .75rem; }
.portal-analysis-report summary { cursor: pointer; font-size: .85rem; font-weight: 700; overflow-wrap: anywhere; }
.portal-analysis-report summary small { display: block; margin-top: .4rem; color: #64748B; font-weight: 400; }
#portal-analysis-submit:disabled { opacity: .5; cursor: not-allowed; }
#portal-analysis-answer:not(:empty) { margin-top: 1rem; padding: 1rem; border: 1px solid #C7D2FE; border-radius: 12px; }
body.dark-mode .portal-shared-document, body.dark-mode .portal-analysis-report, body.dark-mode .portal-analysis-document { background: #0F172A; border-color: #334155; color: #F8FAFC; }
body.dark-mode .portal-analysis-intro, body.dark-mode .portal-analysis-document small, body.dark-mode .portal-shared-document small { color: #CBD5E1; }
body.dark-mode .portal-analysis-error { color: #FCA5A5; }
@media(max-width:640px) { .portal-shared-actions > * { flex: 1 1 auto; text-align: center; } }
/* Compartir expedientes con miembros activos: selector accesible y adaptable. */
.case-share-members { min-width: 0; border: 0; padding: 0; }
#case-member-users { max-height: 320px; overflow-y: auto; display: grid; gap: .6rem; }
.case-share-member { display: flex; gap: .8rem; align-items: flex-start; padding: .85rem; border: 1px solid #e2e8f0; border-radius: .8rem; cursor: pointer; }
.case-share-member[hidden] { display: none; }
.case-share-member input { margin-top: .3rem; width: 1.1rem; height: 1.1rem; accent-color: #2563eb; flex-shrink: 0; }
.case-share-member span { min-width: 0; }
.case-share-member strong, .case-share-member small { display: block; overflow-wrap: anywhere; }
.case-share-member small { color: #64748b; margin-top: .2rem; }
.case-share-member:focus-within { outline: 2px solid #2563eb; outline-offset: 2px; }
#case-member-modal .legal-form-actions { position: sticky; bottom: 0; z-index: 2; background: #fff; padding-bottom: .85rem; }
body.dark-mode #case-member-modal .legal-form-actions { background: #0f172a; }
body.dark-mode .case-share-member { border-color: #334155; }
body.dark-mode .case-share-member small { color: #cbd5e1; }
