/* =========================================================
   BOÍZIA — SISTEMA VISUAL GLOBAL
   ========================================================= */

:root {
    color-scheme: light;

    --boizia-wine: #5e0025;
    --boizia-wine-hover: #76002f;
    --boizia-wine-soft: #f3e7ec;

    --boizia-sidebar: #2a111a;
    --boizia-sidebar-text: #f3eaf0;
    --boizia-sidebar-active: #fff7fa;

    --page-background: #f5f5f6;
    --surface-background: #ffffff;
    --surface-secondary: #f9fafb;

    --text-primary: #1d2939;
    --text-secondary: #667085;
    --text-muted: #98a2b3;

    --border-color: #e4e7ec;
    --border-soft: #f0f1f3;

    --topbar-background: #ffffff;
    --input-background: #ffffff;

    --success-text: #067647;
    --success-background: #ecfdf3;
    --success-border: #abefc6;

    --warning-text: #93370d;
    --warning-background: #fffaeb;
    --warning-border: #fedf89;

    --danger-text: #b42318;
    --danger-background: #fef3f2;
    --danger-border: #fecdca;

    --info-text: #004c92;
    --info-background: #cfe7ff;
    --info-border: #9ecbff;

    --shadow-soft:
        0 1px 3px rgba(16, 24, 40, 0.08);

    --nav-attention-background: #facc15;
    --nav-attention-text: #422006;
    --boizia-radius: 10px;
    --boizia-radius-lg: 16px;

    --tblr-primary: #5e0025;
    --tblr-primary-rgb: 94, 0, 37;
}


html[data-bs-theme="dark"] {
    color-scheme: dark;

    --boizia-wine-soft: #321924;

    --page-background: #111318;
    --surface-background: #1b1e24;
    --surface-secondary: #22262d;

    --text-primary: #f2f4f7;
    --text-secondary: #aeb7c4;
    --text-muted: #858f9d;

    --border-color: #343a43;
    --border-soft: #2b3038;

    --topbar-background: #181b20;
    --input-background: #22262d;

    --success-text: #75e0a7;
    --success-background: #123524;
    --success-border: #286244;

    --warning-text: #fde68a;
    --warning-background: #44380d;
    --warning-border: #705d16;

    --danger-text: #ffaaa2;
    --danger-background: #421b1b;
    --danger-border: #713333;

    --info-text: #8bc5ff;
    --info-background: #17314c;
    --info-border: #315c87;

    --shadow-soft:
        0 1px 3px rgba(0, 0, 0, 0.32);
}


* {
    box-sizing: border-box;
}


html,
body {
    margin: 0;
    min-height: 100%;
}


body {
    font-family:
        Arial,
        sans-serif;

    background:
        var(--page-background);

    color:
        var(--text-primary);

    transition:
        background-color 0.18s ease,
        color 0.18s ease;
}


a {
    color:
        var(--boizia-wine);
}


html[data-bs-theme="dark"] a {
    color: #e5a7be;
}


/* =========================================================
   LOGOTIPOS
   ========================================================= */

.boizia-logo-component {
    display: block;
    width: 100%;
}


.boizia-logo {
    display: block;
    width: 100%;
    max-width: 260px;
    height: auto;
    object-fit: contain;
}


.boizia-logo-dark {
    display: none;
}


html[data-bs-theme="dark"]
.boizia-logo-light {
    display: none;
}


html[data-bs-theme="dark"]
.boizia-logo-dark {
    display: block;
}


.boizia-brand-logo {
    display: block;
    width: 100%;
    max-width: 430px;
}


.boizia-brand-logo .boizia-logo-component,
.boizia-brand-logo .boizia-logo {
    width: 100%;
    max-width: 100%;
    height: auto;
}


.workspace-brand-logo {
    display: block;
    max-width: 100%;
    max-height: 62px;
    width: auto;
    height: auto;
    object-fit: contain;
}


/* =========================================================
   APP INTERNA
   ========================================================= */

.app {
    min-height: 100vh;
    display: flex;
}


/* =========================================================
   SIDEBAR
   ========================================================= */

.sidebar {
    width: 250px;

    background:
        var(
            --workspace-sidebar-background,
            var(--boizia-sidebar)
        );

    color:
        var(
            --workspace-sidebar-text,
            var(--boizia-sidebar-text)
        );

    padding: 18px 14px 24px;

    flex-shrink: 0;

    transition:
        background-color 0.2s ease;
}


.brand-slot {
    width: 100%;
    min-height: 86px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 12px;
    margin-bottom: 7px;

    border-radius: 10px;

    background:
        var(--surface-background);

    overflow: hidden;
}


.brand-slot .boizia-logo-component {
    display: flex;
    justify-content: center;
    align-items: center;
}


.brand-slot .boizia-logo {
    max-height: 62px;
    width: auto;
    max-width: 100%;
}


.brand-caption {
    color:
        var(
            --workspace-sidebar-text,
            var(--boizia-sidebar-text)
        );

    opacity: 0.72;

    font-size: 11px;

    text-align: center;

    margin-bottom: 28px;
}


.nav-item {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 10px;

    padding: 11px 12px;

    margin-bottom: 5px;

    border-radius: 6px;

    color:
        var(
            --workspace-sidebar-text,
            var(--boizia-sidebar-text)
        );

    text-decoration: none;

    font-size: 14px;

    transition:
        background-color 0.15s ease,
        color 0.15s ease;
}


.nav-item:hover {
    background:
        rgba(255, 255, 255, 0.10);

    color: #ffffff;
}


.nav-item.active {
    background:
        var(
            --workspace-sidebar-active,
            var(--boizia-sidebar-active)
        );

    color:
        var(
            --workspace-sidebar-background,
            var(--boizia-sidebar)
        );

    font-weight: 700;
}


.nav-item.disabled {
    opacity: 0.46;
    cursor: default;
}


.nav-item.disabled:hover {
    background: transparent;

    color:
        var(
            --workspace-sidebar-text,
            var(--boizia-sidebar-text)
        );
}


.nav-item-text {
    min-width: 0;
    overflow-wrap: anywhere;
}


.nav-alert-badge,
.nav-count-badge {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    min-width: 22px;
    height: 22px;

    padding: 0 7px;

    border-radius: 999px;

    background: var(--nav-attention-background);

    color: var(--nav-attention-text);

    font-size: 11px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1;

    flex-shrink: 0;
}


.nav-count-badge {
    background: var(--surface-secondary);
    color: var(--text-primary);
    border: 1px solid var(--border-color);
}

.nav-separator {
    height: 1px;

    background:
        rgba(255, 255, 255, 0.16);

    margin: 20px 0;
}


/* =========================================================
   ÁREA PRINCIPAL
   ========================================================= */

.main {
    flex: 1;
    min-width: 0;
}


.topbar {
    min-height: 64px;

    background:
        var(--topbar-background);

    border-bottom:
        1px solid var(--border-color);

    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 20px;

    padding: 0 28px;

    font-size: 13px;

    transition:
        background-color 0.18s ease,
        border-color 0.18s ease;
}


.workspace-name {
    font-weight: 700;

    color:
        var(--text-primary);
}


.topbar-right {
    display: flex;

    align-items: center;

    gap: 14px;
}


.user-menu {
    display: flex;

    align-items: center;

    gap: 10px;

    color:
        var(--text-secondary);
}


.user-name {
    font-weight: 600;

    color:
        var(--text-primary);
}


/* =========================================================
   SELECTOR DE TEMA
   ========================================================= */

.theme-control {
    display: inline-flex;

    align-items: center;

    gap: 4px;

    padding: 4px;

    border:
        1px solid var(--border-color);

    border-radius: 8px;

    background:
        var(--surface-secondary);
}


.theme-button {
    border: 0;

    border-radius: 6px;

    background: transparent;

    color:
        var(--text-secondary);

    padding: 6px 8px;

    font-size: 12px;

    cursor: pointer;
}


.theme-button:hover {
    background:
        var(--surface-background);
}


.theme-button.active {
    background:
        var(--surface-background);

    color:
        var(--boizia-wine);

    box-shadow:
        var(--shadow-soft);

    font-weight: 700;
}


html[data-bs-theme="dark"]
.theme-button.active {
    color: #f0b3c9;
}


/* =========================================================
   LOGOUT
   ========================================================= */

.logout-form {
    margin: 0;
    padding: 0;
    display: inline-flex;
}


.logout-button {
    border: 0;
    background: transparent;
    padding: 0;
    margin: 0;

    color:
        var(--boizia-wine);

    font: inherit;
    cursor: pointer;
}


html[data-bs-theme="dark"]
.logout-button {
    color: #e5a7be;
}


.logout-button:hover {
    background: transparent;
    text-decoration: underline;
}


/* =========================================================
   CONTENIDO
   ========================================================= */

.content {
    max-width: 1220px;
    margin: 0 auto;
    padding: 30px;
}


.page-header {
    margin-bottom: 26px;
}


.page-title {
    font-size: 28px;
    margin: 0 0 6px;
}


.page-description {
    font-size: 14px;

    color:
        var(--text-secondary);
}


/* =========================================================
   COMPONENTES GENERALES
   ========================================================= */

.card,
.profile-card,
.profile-form-card,
.password-card,
.name-card,
.request-card,
.history-card,
.task,
.empty {
    background:
        var(--surface-background);

    color:
        var(--text-primary);

    border-color:
        var(--border-color);
}


input,
select,
textarea {
    background:
        var(--input-background);

    color:
        var(--text-primary);

    border-color:
        var(--border-color);
}


button {
    padding: 7px 12px;

    border:
        1px solid var(--border-color);

    border-radius: 4px;

    background:
        var(--surface-background);

    color:
        var(--text-primary);

    cursor: pointer;
}


button:hover {
    background:
        var(--surface-secondary);
}


.notice {
    background:
        var(--warning-background);

    border:
        1px solid var(--warning-border);

    color:
        var(--warning-text);

    padding: 14px 16px;

    margin-bottom: 22px;

    border-radius: 6px;
}


.section-title {
    margin-top: 30px;
    margin-bottom: 12px;

    font-size: 19px;
    font-weight: 700;
}


.agreement {
    border:
        1px solid var(--info-border);

    background:
        var(--info-background);

    padding: 14px;

    border-radius: 6px;

    margin-bottom: 12px;
}


.agreement.read {
    background:
        var(--surface-background);

    border-color:
        var(--border-color);
}


.agreement-link {
    text-decoration: none;
    color: inherit;
    display: block;
}


.agreement-title {
    font-weight: 700;

    color:
        var(--info-text);

    margin-bottom: 8px;
}


.task {
    border:
        1px solid var(--border-color);

    padding: 14px;

    margin-bottom: 10px;

    border-radius: 6px;
}


.meta {
    font-size: 13px;

    color:
        var(--text-secondary);

    margin-top: 6px;
}


.empty {
    padding: 18px;

    border:
        1px solid var(--border-color);

    border-radius: 6px;

    color:
        var(--text-secondary);
}


/* =========================================================
   AUTENTICACIÓN
   ========================================================= */

.boizia-auth-page {
    min-height: 100vh;

    background:
        radial-gradient(
            circle at 12% 12%,
            rgba(94, 0, 37, 0.08),
            transparent 30%
        ),
        radial-gradient(
            circle at 88% 82%,
            rgba(94, 0, 37, 0.06),
            transparent 26%
        ),
        var(--page-background);
}


html[data-bs-theme="dark"]
.boizia-auth-page {
    background:
        radial-gradient(
            circle at 12% 12%,
            rgba(118, 0, 47, 0.22),
            transparent 30%
        ),
        radial-gradient(
            circle at 88% 82%,
            rgba(94, 0, 37, 0.18),
            transparent 26%
        ),
        var(--page-background);
}


.boizia-auth-shell {
    min-height: 100vh;

    display: grid;

    grid-template-columns:
        minmax(340px, 0.9fr)
        minmax(420px, 1.1fr);
}


.boizia-auth-brand {
    display: flex;
    align-items: center;
    justify-content: center;

    padding: 56px;

    background:
        var(--surface-background);

    border-right:
        1px solid var(--border-color);
}


.boizia-auth-brand-inner {
    width: 100%;
    max-width: 430px;
}


.boizia-auth-brand-copy {
    margin-top: 34px;
    max-width: 360px;
}


.boizia-auth-brand-copy h2 {
    margin: 0 0 10px;

    color:
        var(--text-primary);

    font-size: 28px;
    line-height: 1.2;
}


.boizia-auth-brand-copy p {
    margin: 0;

    color:
        var(--text-secondary);

    font-size: 15px;
    line-height: 1.6;
}


.boizia-auth-content {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 48px 36px;
}


.boizia-auth-card {
    width: 100%;
    max-width: 450px;

    padding: 34px;

    background:
        var(--surface-background);

    border:
        1px solid var(--border-color);

    border-radius:
        var(--boizia-radius-lg);

    box-shadow:
        0 18px 50px rgba(
            16,
            24,
            40,
            0.08
        );
}


html[data-bs-theme="dark"]
.boizia-auth-card {
    box-shadow:
        0 18px 50px rgba(
            0,
            0,
            0,
            0.24
        );
}


.boizia-auth-title {
    margin: 0 0 7px;

    color:
        var(--text-primary);

    font-size: 26px;
    font-weight: 700;
}


.boizia-auth-subtitle {
    margin: 0 0 28px;

    color:
        var(--text-secondary);

    line-height: 1.5;
}


.boizia-field {
    margin-bottom: 18px;
}


.boizia-field label {
    display: block;

    margin-bottom: 7px;

    color:
        var(--text-primary);

    font-size: 14px;
    font-weight: 600;
}


.boizia-field input,
.boizia-field select {
    width: 100%;
    min-height: 44px;

    border:
        1px solid var(--border-color);

    border-radius: 8px;
}


.boizia-field input::placeholder {
    color:
        var(--text-muted);

    font-style: italic;
}


.boizia-password-wrap {
    position: relative;
}


.boizia-password-wrap input {
    padding-right: 48px;
}


.boizia-password-toggle {
    position: absolute;

    top: 50%;
    right: 7px;

    transform:
        translateY(-50%);

    width: 34px;
    height: 34px;

    padding: 0;

    border: 0;
    border-radius: 7px;

    background: transparent;

    color:
        var(--text-secondary);

    display: flex;
    align-items: center;
    justify-content: center;
}


.boizia-password-toggle:hover {
    background:
        var(--boizia-wine-soft);

    color:
        var(--boizia-wine);
}


.boizia-theme-switcher {
    position: absolute;

    top: 22px;
    right: 24px;

    z-index: 20;

    display: inline-flex;

    gap: 3px;

    padding: 4px;

    border:
        1px solid var(--border-color);

    border-radius: 9px;

    background:
        var(--surface-background);

    box-shadow:
        var(--shadow-soft);
}


.boizia-theme-button {
    border: 0;
    background: transparent;

    color:
        var(--text-secondary);

    min-width: 34px;
    height: 30px;

    padding: 0 8px;

    border-radius: 6px;

    cursor: pointer;

    font-size: 13px;
}


.boizia-theme-button:hover,
.boizia-theme-button.active {
    color:
        var(--boizia-wine);

    background:
        var(--boizia-wine-soft);
}


.boizia-theme-button.active {
    font-weight: 700;
}


.btn-boizia {
    background:
        var(--boizia-wine);

    border-color:
        var(--boizia-wine);

    color: #ffffff;
}


.btn-boizia:hover,
.btn-boizia:focus {
    background:
        var(--boizia-wine-hover);

    border-color:
        var(--boizia-wine-hover);

    color: #ffffff;
}


.boizia-link {
    color:
        var(--boizia-wine);

    text-decoration: none;

    font-weight: 600;
}


.boizia-link:hover {
    color:
        var(--boizia-wine-hover);

    text-decoration: underline;
}


.boizia-error {
    margin-bottom: 18px;

    padding: 10px 12px;

    border:
        1px solid var(--danger-border);

    border-radius: 8px;

    background:
        var(--danger-background);

    color:
        var(--danger-text);

    font-size: 13px;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 900px) {
    .theme-control {
        display: none;
    }

    .boizia-auth-shell {
        grid-template-columns: 1fr;
    }

    .boizia-auth-brand {
        padding: 34px 28px 24px;

        border-right: 0;

        border-bottom:
            1px solid var(--border-color);
    }

    .boizia-auth-brand-inner {
        max-width: 420px;
    }

    .boizia-auth-brand-copy {
        margin-top: 20px;
    }

    .boizia-auth-content {
        padding: 56px 20px 30px;
    }
}


@media (max-width: 800px) {
    .sidebar {
        width: 190px;
    }

    .content {
        padding: 20px;
    }

    .user-name {
        display: none;
    }
}


@media (max-width: 520px) {
    .boizia-brand-logo {
        max-width: 320px;
        margin: 0 auto;
    }

    .boizia-auth-brand-copy {
        display: none;
    }

    .boizia-auth-brand {
        padding: 24px 20px;
    }

    .boizia-auth-card {
        padding: 24px 20px;
    }

    .boizia-theme-switcher {
        top: 14px;
        right: 14px;
    }
}


/* =========================================================
   CONTROLES Y SUPERFICIES TEMÁTICAS COMPARTIDAS
   ========================================================= */
:root {
    --input-placeholder: var(--text-muted);
    --input-disabled-background: var(--surface-secondary);
    --focus-border: var(--boizia-wine);
    --focus-ring: rgba(94, 0, 37, 0.22);
    --backdrop-background: rgba(16, 24, 40, 0.48);
}

html[data-bs-theme="dark"] {
    --focus-border: #e5a7be;
    --focus-ring: rgba(229, 167, 190, 0.24);
    --backdrop-background: rgba(0, 0, 0, 0.68);
}

.form-control,
.form-select,
input:not([type="checkbox"]):not([type="radio"]),
select,
textarea {
    background-color: var(--input-background);
    color: var(--text-primary);
    border-color: var(--border-color);
    caret-color: var(--text-primary);
}

.form-control::placeholder,
input::placeholder,
textarea::placeholder {
    color: var(--input-placeholder);
    opacity: 1;
}

.form-control:focus,
.form-select:focus,
input:focus,
select:focus,
textarea:focus,
:focus-visible {
    border-color: var(--focus-border);
    box-shadow: 0 0 0 3px var(--focus-ring);
    outline: none;
}

.form-control:disabled,
.form-select:disabled,
input:disabled,
select:disabled,
textarea:disabled,
.form-control[readonly],
input[readonly],
textarea[readonly] {
    background-color: var(--input-disabled-background);
    color: var(--text-secondary);
    opacity: 1;
}

select option {
    background: var(--input-background);
    color: var(--text-primary);
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
select:-webkit-autofill {
    -webkit-text-fill-color: var(--text-primary);
    box-shadow: 0 0 0 1000px var(--input-background) inset;
    transition: background-color 9999s ease-out 0s;
}

.modal-overlay,
.app-backdrop {
    background: var(--backdrop-background);
}

.modal-box,
.dropdown-menu,
.popover,
.floating-panel {
    background: var(--surface-background);
    color: var(--text-primary);
    border-color: var(--border-color);
}

.button,
.button-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 13px;
    border: 1px solid var(--border-color);
    border-radius: 7px;
    background: var(--surface-background);
    color: var(--text-primary);
    text-decoration: none;
    font: inherit;
    cursor: pointer;
}

.button:hover,
.button-secondary:hover { background: var(--surface-secondary); }
.button-primary { background: var(--boizia-wine); border-color: var(--boizia-wine); color: #fff; }
.button-primary:hover { background: var(--boizia-wine-hover); border-color: var(--boizia-wine-hover); color: #fff; }

.dashboard-hero { text-align: center; margin: 4px auto 30px; }
.dashboard-brand { width: min(360px, 82vw); margin: 0 auto 18px; }
.dashboard-brand .workspace-brand-logo,
.dashboard-brand .boizia-logo { margin-inline: auto; max-height: 92px; width: auto; max-width: 100%; }
.dashboard-navigation-search { position: relative; width: min(560px, 100%); margin: 0 auto 12px; }
.dashboard-navigation-search input { width: 100%; min-height: 46px; padding: 10px 14px 10px 42px; border: 1px solid var(--border-color); border-radius: 10px; }
.dashboard-search-icon { position: absolute; left: 15px; top: 12px; z-index: 2; color: var(--text-secondary); font-size: 20px; }
.dashboard-navigation-results { position: absolute; top: calc(100% + 6px); inset-inline: 0; z-index: 50; padding: 6px; border: 1px solid var(--border-color); border-radius: 10px; background: var(--surface-background); box-shadow: 0 12px 30px rgba(16, 24, 40, 0.18); text-align: left; }
.dashboard-module-result { display: block; padding: 10px 12px; border-radius: 7px; color: var(--text-primary); text-decoration: none; }
.dashboard-module-result:hover { background: var(--surface-secondary); }
.dashboard-module-empty { padding: 10px 12px; color: var(--text-secondary); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.inline-action-form { margin-top: 10px; }

.case-list-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.case-filters { display: grid; grid-template-columns: minmax(240px, 2fr) minmax(160px, 1fr) minmax(220px, 1.5fr) auto; gap: 14px; align-items: end; padding: 18px; margin-bottom: 14px; border: 1px solid var(--border-color); border-radius: var(--boizia-radius); background: var(--surface-background); }
.form-field label { display: block; margin-bottom: 6px; color: var(--text-secondary); font-size: 13px; font-weight: 600; }
.form-field input, .form-field select { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid var(--border-color); border-radius: 7px; }
.case-filter-actions { display: flex; gap: 8px; }
.case-summary { margin: 12px 0; color: var(--text-secondary); }
.case-group-summary { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.case-group-chip { padding: 7px 10px; border: 1px solid var(--border-color); border-radius: 999px; background: var(--surface-background); color: var(--text-secondary); text-decoration: none; }
.case-group-chip.active, .case-group-chip:hover { border-color: var(--boizia-wine); color: var(--text-primary); background: var(--boizia-wine-soft); }
.case-group { margin: 30px 0; }
.case-group-title { display: flex; gap: 10px; align-items: baseline; margin-bottom: 14px; color: var(--text-primary); }
.case-group-title span { color: var(--text-secondary); font-size: 14px; }
.case-court-group { margin-bottom: 20px; border: 1px solid var(--border-color); border-radius: var(--boizia-radius); overflow: hidden; background: var(--surface-background); }
.case-court-title { display: flex; justify-content: space-between; gap: 12px; margin: 0; padding: 12px 16px; border-bottom: 1px solid var(--border-color); background: var(--surface-secondary); color: var(--text-primary); font-size: 16px; }
.case-count { min-width: 28px; text-align: center; }
.case-cards { padding: 0 16px; }
.case-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, auto); gap: 18px; padding: 16px 0; border-bottom: 1px solid var(--border-soft); }
.case-card-variant { grid-template-columns: auto minmax(0, 1fr) minmax(190px, auto); margin-left: clamp(18px, 4vw, 46px); padding-left: 14px; border-left: 3px solid var(--border-color); background: var(--surface-secondary); }
.case-variant-marker { align-self: flex-start; color: var(--text-secondary); font-size: 1.25rem; font-weight: 700; }
.case-card:last-child { border-bottom: 0; }
.case-number { font-size: 17px; font-weight: 700; }
.case-parties-compact { margin-top: 4px; color: var(--text-primary); font-size: 14px; line-height: 1.35; }
.case-client-identifier { display: inline-flex; max-width: 100%; margin-top: 7px; padding: 4px 9px; border: 1px solid var(--border-color); border-radius: 999px; background: var(--surface-secondary); color: var(--text-primary); font-size: 12px; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; }
.party-group + .party-group { margin-top: 14px; }
.party-role-label { color: var(--text-secondary); font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.party-source-note { margin-top: 14px; color: var(--text-secondary); font-size: 13px; }
.notification-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.notification-actions form { margin: 0; }
.case-header-actions, .case-footer-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.case-footer-actions { justify-content: space-between; margin-top: 20px; }
.button-danger { border-color: #b42318; background: #b42318; color: #fff; }
.button-danger:hover { background: #912018; color: #fff; }
.withdrawal-confirmation { max-width: 720px; }
.case-card-status { text-align: right; }
.case-latest-agreement { grid-column: 1 / -1; padding-top: 10px; border-top: 1px solid var(--border-soft); }

.notification-list { display: grid; gap: 12px; }
.notification-card { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 16px; border: 1px solid var(--border-color); border-radius: var(--boizia-radius); background: var(--surface-background); }
.notification-card p { margin: 5px 0; color: var(--text-secondary); }
.notification-unread { border-left: 4px solid var(--boizia-wine); background: var(--boizia-wine-soft); }

@media (max-width: 900px) {
    .case-filters { grid-template-columns: 1fr 1fr; }
    .case-filter-search { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
    .app { display: block; }
    .sidebar { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding: 12px; }
    .brand-slot, .brand-caption { grid-column: 1 / -1; }
    .brand-slot { min-height: 68px; margin-bottom: 0; }
    .brand-caption { margin-bottom: 10px; }
    .sidebar .nav-item { margin: 0; }
    .case-list-header { display: grid; }
    .case-filters { grid-template-columns: 1fr; }
    .case-filter-search { grid-column: auto; }
    .case-card { grid-template-columns: 1fr; }
    .case-card-variant { grid-template-columns: auto minmax(0, 1fr); margin-left: 10px; }
    .case-card-variant .case-latest-agreement { grid-column: 2; }
    .case-card-status { text-align: left; }
    .notification-card { align-items: flex-start; flex-direction: column; }
}


/* Expedientes: filtros dependientes, orden judicial y acordeones */
.case-group-title {
    padding-bottom: 9px;
    border-bottom: 2px solid var(--boizia-wine);
    font-size: 24px;
    font-weight: 750;
}
.case-group-name { color: var(--text-primary); }
.case-group-total { color: var(--text-secondary); font-size: 14px; }
.case-court-group > summary { list-style: none; }
.case-court-group > summary::-webkit-details-marker { display: none; }
.case-court-title { cursor: pointer; user-select: none; }
.case-court-title:hover { background: var(--boizia-wine-soft); }
.case-court-title:focus-visible { position: relative; z-index: 1; }
.case-court-name { display: inline-flex; min-width: 0; align-items: center; gap: 9px; }
.case-court-group:not([open]) .case-court-title { border-bottom: 0; }


/* Expedientes: exportación y presentación judicial */
.case-filter-actions { flex-wrap: wrap; }
.case-court-name { font-family: inherit; font-size: 15px; font-weight: 700; letter-spacing: .015em; }
.court-gavel-icon { width: 20px; height: 20px; flex: 0 0 20px; fill: currentColor; stroke: none; color: currentColor; }
.case-print-page { margin: 0; background: #fff; color: #161616; font-family: Arial, sans-serif; }
.case-print-document { width: min(1200px, calc(100% - 40px)); margin: 24px auto; }
.case-print-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding-bottom: 18px; border-bottom: 2px solid #7a1735; }
.case-print-header h1, .case-print-header p { margin: 0 0 6px; }
.case-print-group { margin-top: 26px; break-inside: avoid-page; }
.case-print-group h2 { padding-bottom: 7px; border-bottom: 2px solid #7a1735; font-size: 20px; }
.case-print-group h2 span, .case-print-court h3 span { color: #555; font-size: .8em; }
.case-print-court { margin-top: 18px; break-inside: avoid-page; }
.case-print-court h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 14px; }
.case-print-court table { width: 100%; border-collapse: collapse; font-size: 11px; }
.case-print-court th, .case-print-court td { padding: 7px; border: 1px solid #bbb; text-align: left; vertical-align: top; }
.case-print-court th { background: #eee; }
@media print {
    @page { size: landscape; margin: 12mm; }
    .case-print-action { display: none !important; }
    .case-print-document { width: 100%; margin: 0; }
    .case-print-court { break-inside: auto; }
    .case-print-court tr { break-inside: avoid; }
}


/* Quick agreement reading and notification center */
.agreement-dialog [hidden], .dashboard-previous-agreements [hidden] { display:none !important; }
.notification-filters { display:flex; gap:8px; flex-wrap:wrap; margin:16px 0; }
.notification-filters [aria-current="page"] { border-color:var(--boizia-wine); font-weight:700; }
.notification-kind { font-size:12px; color:var(--text-secondary); margin-bottom:6px; }
.dashboard-previous-agreements { margin:20px 0; }
.agreement-dialog { border:1px solid var(--border-color); border-radius:var(--boizia-radius-lg); padding:0; width:min(760px,calc(100vw - 24px)); max-height:calc(100dvh - 32px); background:var(--surface-background); color:var(--text-primary); box-shadow:var(--shadow-soft); }
.agreement-dialog::backdrop { background:rgb(0 0 0 / .6); }
.agreement-dialog-panel { position:relative; padding:28px; overflow-wrap:anywhere; }
.agreement-dialog-panel h2 { padding-right:36px; margin-top:0; }
.agreement-dialog-x { position:absolute; right:12px; top:10px; border:0; background:transparent; color:var(--text-primary); font-size:28px; cursor:pointer; }
.agreement-detail-parties { display:grid; gap:12px; margin:18px 0; }
.agreement-detail-dates { display:flex; flex-wrap:wrap; gap:12px 24px; }
.agreement-detail-dates dt { color:var(--text-secondary); font-size:12px; }
.agreement-detail-dates dd { margin:4px 0; font-weight:600; }
.agreement-detail-text { white-space:pre-wrap; line-height:1.65; margin:20px 0; }
.agreement-dialog-footer { display:flex; justify-content:flex-end; margin-top:18px; }
.agreement-print-options { display:flex; gap:12px; align-items:end; flex-wrap:wrap; border:1px solid var(--border-color); border-radius:var(--boizia-radius); padding:12px; margin:20px 0 12px; }
.agreement-print-options label { display:grid; gap:6px; }
.agreement-print-options label { flex:1; min-width:145px; }
.agreement-print-options select { width:100%; max-width:100%; min-height:36px; padding:6px 8px; border:1px solid var(--border-color); border-radius:6px; background:var(--input-background); color:var(--text-primary); font:inherit; }
.agreement-print-document { max-width:900px; padding:30px; margin:24px auto; background:var(--surface-background); border:1px solid var(--border-color); }
.agreement-print-brand { border-bottom:1px solid var(--border-color); margin-bottom:20px; padding-bottom:12px; }
.agreement-print-brand .boizia-logo, .agreement-print-brand .workspace-brand-logo { width:auto; max-width:220px; max-height:85px; object-fit:contain; }
@media (max-width:640px) { .agreement-dialog-panel { padding:20px; } .agreement-print-document { padding:20px; margin:0; } }

/* Case history modal: one header, selectable chronological rows. */
.court-gavel-icon { display:inline-block; vertical-align:-.2em; }
.agreement-case-header .agreement-detail-parties { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem 1.2rem; margin:.8rem 0; }
.agreement-case-header .party-group { margin:0; }
.agreement-court { display:flex; align-items:center; gap:.4rem; }
.agreement-timeline-head, .agreement-timeline-row { display:grid; grid-template-columns:135px minmax(0,1fr); gap:1rem; }
.agreement-timeline-head { padding:.6rem; font-size:.75rem; font-weight:700; color:var(--text-secondary); }
.agreement-timeline-row { padding:.8rem .6rem; border-bottom:1px solid var(--border-color); border-left:3px solid transparent; }
.agreement-timeline-row.is-selected { border-left-color:var(--info-text); background:var(--boizia-wine-soft); }
.agreement-timeline-date { display:flex; flex-direction:column; gap:.2rem; font-size:.83rem; }
.agreement-timeline-date small, .agreement-timeline-state { color:var(--text-secondary); font-size:.75rem; }
.agreement-timeline-select { appearance:none; background:transparent; border:0; color:var(--text-primary); text-align:left; padding:0; width:100%; font:inherit; white-space:pre-wrap; overflow-wrap:anywhere; cursor:pointer; }
.agreement-timeline-select:focus-visible { outline:2px solid var(--info-text); outline-offset:3px; }
.agreement-timeline-state { display:flex; gap:.8rem; margin-top:.4rem; }
.agreement-timeline-state [data-selected-label], .agreement-variant-label { color:var(--info-text); font-weight:700; }
.agreement-variant-label { display:block; margin-bottom:.3rem; font-size:.75rem; }
.agreement-history-pagination { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-top:1rem; }
.agreement-dialog-footer { display:flex; gap:.6rem; justify-content:flex-end; position:sticky; bottom:0; padding:.8rem 0; background:var(--surface-background); border-top:1px solid var(--border-color); }
.agreement-export-dialog { max-width:430px; }
.agreement-export-dialog .agreement-print-options { display:grid; gap:.7rem; }
.agreement-dialog [hidden] { display:none !important; }
@media(max-width:480px) { .agreement-case-header .agreement-detail-parties { grid-template-columns:1fr; } .agreement-timeline-head,.agreement-timeline-row { grid-template-columns:95px minmax(0,1fr); gap:.6rem; } .agreement-history-pagination { flex-wrap:wrap; } }

/* Reading and selection are independent, wrapping states in every theme. */
.agreement-timeline-state { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
.agreement-timeline-state .agreement-badge { display:inline-flex; padding:.2rem .5rem; border-radius:.4rem; background:var(--surface-background); border:1px solid var(--border-color); }
.agreement-timeline-state [data-selected-label] { background:var(--info-background); color:var(--info-text); border-color:var(--info-border); }
.agreement-timeline-state [hidden] { display:none; }

.operation-actions {display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:1rem 0;}
.operational-print-dialog {background:var(--surface-background);color:var(--text-primary);border:1px solid var(--border-color);border-radius:.75rem;padding:1.5rem;width:min(440px,calc(100vw - 2rem));max-height:90vh;overflow:auto;box-sizing:border-box;}
.operational-print-dialog::backdrop {background:rgba(0,0,0,.55);}
.operational-print-dialog label {display:block;margin:.8rem 0;}
.operational-print-dialog select,.task-assignee-filter select {background:var(--input-background);color:var(--text-primary);border:1px solid var(--border-color);padding:.6rem;border-radius:.4rem;max-width:100%;}
.operational-print-dialog select {display:block;width:100%;}
.activity-summary a {display:flex;flex-direction:column;gap:.35rem;text-decoration:none;color:var(--text-primary);background:var(--surface-background);border:1px solid var(--border-color);border-radius:.6rem;padding:1rem;}
.activity-summary a:focus-visible {outline:3px solid var(--info-border);outline-offset:3px;}
.activity-section,#activity-feed {scroll-margin-top:1.5rem;}
html {scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce) {html {scroll-behavior:auto;}}
.bulletin-table-wrap {overflow-x:auto;border:1px solid var(--border-color);border-radius:.6rem;}
.bulletin-table {width:100%;min-width:58rem;border-collapse:collapse;font-size:.9rem;}
.bulletin-table th:first-child,.bulletin-table td:first-child {min-width:9rem;}
.bulletin-table th:nth-child(3),.bulletin-table td:nth-child(3) {min-width:8rem;}
.bulletin-table th,.bulletin-table td {padding:.75rem;border-bottom:1px solid var(--border-color);vertical-align:top;text-align:left;overflow-wrap:anywhere;}
.bulletin-table th {background:var(--surface-secondary);color:var(--text-primary);}
.bulletin-table .bulletin-excerpt {min-width:16rem;max-width:32rem;white-space:pre-wrap;}
.bulletin-table .bulletin-parties {min-width:12rem;max-width:22rem;}
.bulletin-table .bulletin-court {min-width:12rem;max-width:20rem;}
.bulletin-table details summary {cursor:pointer;color:var(--text-primary);}
.export-actions {display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0;align-items:center;}
.process-route {border:1px solid var(--border-color);border-radius:.6rem;background:var(--surface-background);padding:1rem;margin:1rem 0;}
.process-route ol {display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;}
.process-route li {display:flex;gap:.4rem;align-items:center;padding:.5rem;border:1px solid var(--border-color);border-radius:.4rem;color:var(--text-secondary);}
.process-route li.is-current {color:var(--info-text);background:var(--info-background);border:2px solid var(--info-border);font-weight:bold;}
.process-route .process-optional {border-inline-start:3px dashed var(--info-border);padding-inline-start:.75rem;color:var(--text-secondary);}
.operational-update {padding:1rem 0;border-bottom:1px solid var(--border-color);}
.operation-note-text {white-space:pre-wrap;overflow-wrap:anywhere;}
.operational-note-editor {padding-inline-start:1.5rem;list-style-type:circle;}
.operational-note-editor li {margin-bottom:.5rem;}
.operational-note-editor input {background:var(--input-background);color:var(--text-primary);border:1px solid var(--border-color);}
.activity-kind-badge {display:inline-block;border:1px solid var(--border-color);border-radius:.35rem;padding:.2rem .5rem;background:var(--surface-background);}
.task-assignee-filter {display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin:1rem 0;}

/* Shared procedure/task forms: all colors follow the resolved theme. */
[data-parallel-route] .form-group { margin-block: 1rem; }
[data-parallel-route] input:not([type="checkbox"]), [data-parallel-route] select, [data-parallel-route] textarea,
.case-form-container input:not([type="checkbox"]), .case-form-container select, .case-form-container textarea {
  max-width: 100%; color: var(--text-primary); background: var(--surface-background);
  border: 1px solid var(--border-color); border-radius: .4rem; padding: .5rem;
}
.task-assignee-filter { display:flex; align-items:center; flex-wrap:wrap; gap:.55rem; margin-block:1rem; }
.task-assignee-filter select { color:var(--text-primary); background:var(--surface-background); border:1px solid var(--border-color); border-radius:.4rem; padding:.45rem; max-width:100%; }
[data-authority-court][hidden], [data-authority-prosecutor][hidden], [data-authority-administrative][hidden] { display:none!important; }

.task-completed{transition:background-color .3s ease,border-color .3s ease;border-color:var(--bs-success,#34845b);background:var(--surface-background);}
.task-completed [data-task-complete] button{opacity:.8;}.task-completed [role="status"]{color:var(--text-primary);}
@media(prefers-reduced-motion:reduce){.task-completed{transition:none;}}

.sidebar-navigation-search{position:relative;padding:0 1rem;margin:1rem 0;}.sidebar-navigation-search input{width:100%;max-width:100%;box-sizing:border-box;background:var(--input-background);color:var(--text-primary);border:1px solid var(--border-color);border-radius:.5rem;padding:.5rem;}.sidebar-navigation-search .dashboard-navigation-results{left:1rem;right:1rem;top:100%;z-index:50;}.dashboard-navigation-search{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;}.dashboard-navigation-search label{flex-basis:100%;}.dashboard-navigation-search input{flex:1;min-width:0;}.dashboard-navigation-search button{position:static;flex-shrink:0;}
