/* Paleta institucional inspirada en la referencia bosque, piedra y marfil. */
:root {
    --brand-forest-deep: #151d16;
    --brand-forest: #233028;
    --brand-sage: #47544b;
    --brand-sage-light: #667269;
    --brand-beige: #d4c7bc;
    --brand-taupe: #bdb4ab;
    --brand-ivory: #f0f0ee;
    --brand-canvas: #f6f4f1;
    --brand-charcoal: #2e3830;
    --brand-muted: #756f63;
    --brand-line: #ddd7d0;
    --brand-white: #ffffff;
    --brand-soft-green: #e9ede9;
    --brand-soft-beige: #f2ece7;
    --brand-danger: #7b403b;
    --brand-danger-soft: #f4e9e7;
    --brand-warning: #806a4f;
    --brand-warning-soft: #f3ede3;
    --brand-success: #3f5949;
    --brand-success-soft: #e7eee9;
    --calendar-hearing: #3f648c;
    --calendar-hearing-soft: #e8f0f6;
    --calendar-appointment: #3c706b;
    --calendar-appointment-soft: #e5f1ef;
    --calendar-deadline: #8b5e3c;
    --calendar-deadline-soft: #f7ece3;
    --calendar-task: #3f6b50;
    --calendar-task-soft: #e7f1ea;
    --calendar-next-action: #6c5a78;
    --calendar-next-action-soft: #efeaf2;
    --calendar-external: #556274;
    --calendar-external-soft: #e9edf1;
    --stage-intake: #526b7a;
    --stage-review: #6f6275;
    --stage-hearing: #9a6a45;
    --stage-resolution: #3f6650;
    --stage-closed: #56605a;
}

::selection { color: var(--brand-white); background: var(--brand-sage); }
body { color: var(--brand-charcoal); background: var(--brand-canvas) !important; }
.main-wraper-bg {
    --ui-border: var(--brand-line) !important;
    --ui-muted: var(--brand-muted) !important;
    --ui-surface: var(--brand-white) !important;
    --ui-surface-soft: var(--brand-ivory) !important;
    --ui-title: var(--brand-charcoal) !important;
    background: var(--brand-canvas) !important;
}

/* Cabecera y navegacion. */
.header-area { background: var(--brand-forest) !important; box-shadow: 0 1px 0 rgba(21,29,22,.35) !important; }
.header-sidebar-toggle { background: rgba(255,255,255,.08) !important; border-color: rgba(255,255,255,.34) !important; }
.header-sidebar-toggle:hover,
.header-icon-button:hover,
.header-language-toggle:hover,
.header-mail-toggle:hover,
.header-notification-toggle:hover,
.header-user-toggle:hover { background: rgba(212,199,188,.16) !important; }
.header-search { border-color: rgba(212,199,188,.65) !important; background: rgba(255,255,255,.96) !important; }
.header-search > i { color: var(--brand-sage) !important; }
.header-search:focus-within { box-shadow: 0 0 0 3px rgba(212,199,188,.3) !important; }
.header-notification-count { border-color: var(--brand-forest) !important; background: var(--brand-danger) !important; }
.header-language .dropdown-item.active,
.header-language .dropdown-item:active { color: var(--brand-forest) !important; background: var(--brand-soft-beige) !important; }
.legal-avatar { color: var(--brand-forest) !important; background: var(--brand-beige) !important; }

.dash-navbar-left { background: var(--brand-forest-deep) !important; box-shadow: 4px 0 18px rgba(21,29,22,.14) !important; }
.dash-navbar-left .dnl-nav > li > a { color: #dfe3df !important; }
.dash-navbar-left .dnl-nav > li > a:hover,
.dash-navbar-left .dnl-nav > li > a:focus,
.dash-navbar-left .dnl-nav li .dnl-sub-one li a:hover,
.dash-navbar-left .dnl-nav li .dnl-sub-one li a:focus { color: var(--brand-white) !important; background: var(--brand-forest) !important; }
.dash-navbar-left .dnl-nav > li.active-cta > a,
.dash-navbar-left .dnl-nav li .dnl-sub-one li.active > a {
    color: var(--brand-white) !important;
    background: var(--brand-sage) !important;
    box-shadow: inset 3px 0 0 var(--brand-beige) !important;
}
.dash-navbar-left .dnl-nav li .dnl-sub-one li a { color: #bac2bc !important; }
.dash-navbar-left .dnl-nav li .dnl-link-icon { color: var(--brand-beige) !important; }

/* Jerarquia general, superficies y enlaces. */
.page-title-area h2,
.dashboard-heading h2,
.single-panel-title h3,
.single-panel-title h4,
.modal-title,
.module-card h4 { color: var(--brand-charcoal) !important; }
.page-title-area p,
.dashboard-heading p,
.modal-subtitle { color: var(--brand-muted) !important; }
.eyebrow,
[class$="-head"] .eyebrow,
[class*="-head "] .eyebrow { color: var(--brand-sage) !important; }
.single-panel,
.module-card,
.modal-content,
.dropdown-menu { border-color: var(--brand-line) !important; }
.single-panel,
.single-panel-title,
.module-card,
.modal-content { background: var(--brand-white) !important; }
.module-filter-bar,
.case-card-meta,
.document-card footer,
.table thead th,
.workflow-stage-legend { background: var(--brand-ivory) !important; border-color: var(--brand-line) !important; }
.module-card:hover,
.agenda-item:hover,
.timeline-item:hover,
.kanban-card:hover { border-color: var(--brand-taupe) !important; box-shadow: 0 12px 28px rgba(35,48,40,.11) !important; }
.main-wraper-bg a:not(.btn):not(.dropdown-item),
.panel-link,
.case-code,
.text-primary { color: var(--brand-sage) !important; }

/* Acciones y controles. */
.btn-primary,
.badge-primary,
.bg-primary,
.pagination .page-item.active .page-link {
    color: var(--brand-white) !important;
    border-color: var(--brand-sage) !important;
    background: var(--brand-sage) !important;
    box-shadow: 0 5px 12px rgba(35,48,40,.18) !important;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.pagination .page-item.active .page-link:hover {
    border-color: var(--brand-forest) !important;
    background: var(--brand-forest) !important;
}
.btn-outline-primary { color: var(--brand-sage) !important; border-color: var(--brand-sage) !important; background: transparent !important; }
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active { color: var(--brand-white) !important; border-color: var(--brand-sage) !important; background: var(--brand-sage) !important; }
.btn-light,
.btn-outline-secondary { color: var(--brand-charcoal) !important; border-color: var(--brand-line) !important; background: var(--brand-ivory) !important; }
.btn-light:hover,
.btn-outline-secondary:hover { border-color: var(--brand-taupe) !important; background: var(--brand-soft-beige) !important; }
.form-control,
.custom-select { color: var(--brand-charcoal) !important; border-color: var(--brand-line) !important; }
.form-control:focus,
.custom-select:focus {
    border-color: var(--brand-sage) !important;
    box-shadow: 0 0 0 3px rgba(71,84,75,.14) !important;
}
input[type="checkbox"], input[type="radio"] { accent-color: var(--brand-sage); }
.progress-bar { background: var(--brand-sage) !important; }
.module-view-switcher { border-color: var(--brand-line) !important; background: var(--brand-ivory) !important; }
.module-view-switcher .btn.active,
[class*="tabs"] button.active { color: var(--brand-forest) !important; border-color: var(--brand-sage) !important; background: var(--brand-white) !important; }

/* Estados accesibles dentro de la misma familia cromatica. */
.alert-info,
.badge-info { color: var(--brand-forest) !important; border-color: var(--brand-taupe) !important; background: var(--brand-soft-green) !important; }
.alert-success,
.badge-success,
.status-active,
.status-completed,
.status-completada { color: var(--brand-success) !important; border-color: #bdccc1 !important; background: var(--brand-success-soft) !important; }
.alert-warning,
.badge-warning,
.status-pending,
.status-pendiente,
.status-normal { color: var(--brand-warning) !important; border-color: var(--brand-beige) !important; background: var(--brand-warning-soft) !important; }
.alert-danger,
.badge-danger,
.status-overdue,
.status-vencido,
.status-cancelled { color: var(--brand-danger) !important; border-color: #d9bbb7 !important; background: var(--brand-danger-soft) !important; }
.status-filter.active { color: var(--brand-forest) !important; border-color: var(--brand-taupe) !important; background: var(--brand-soft-green) !important; }

/* Dashboard, indicadores y tarjetas. */
[class*="-metrics"] article,
.homepage-sec1-single { border-color: var(--brand-line) !important; background: var(--brand-white) !important; }
[class*="-metrics"] article > i,
.homepage-sec1-single-icon,
.communication-card-icon,
.document-icon,
.case-timeline-icon,
.security-event-icon,
.security-review-icon {
    color: var(--brand-sage) !important;
    background: var(--brand-soft-green) !important;
}
[class*="-metrics"] article.is-danger > i { color: var(--brand-danger) !important; background: var(--brand-danger-soft) !important; }
[class*="-metrics"] article.is-success > i { color: var(--brand-success) !important; background: var(--brand-success-soft) !important; }
.report-card strong,
.organization-person-load strong { color: var(--brand-sage) !important; }
.module-card::after { background: linear-gradient(90deg, var(--brand-forest), var(--brand-beige)) !important; }
.organization-avatar { background: linear-gradient(145deg, var(--brand-sage), var(--brand-forest)) !important; }
.organization-load-bar span,
.document-requirements-progress span { background: linear-gradient(90deg, var(--brand-sage), var(--brand-beige)) !important; }

/* Inteligencia artificial y automatizacion. */
.ai-analysis-header { background: linear-gradient(135deg, var(--brand-forest), var(--brand-sage)) !important; }
.ai-summary-hero,
.ai-analysis-section,
.automation-insight-head,
.automation-answer { border-color: var(--brand-line) !important; background: var(--brand-white) !important; }
.ai-summary-hero-icon,
.ai-blue,
.automation-rule-icon,
.automation-run-state,
.automation-risk { color: var(--brand-sage) !important; background: var(--brand-soft-green) !important; }
.ai-orange { color: var(--brand-warning) !important; background: var(--brand-warning-soft) !important; }
.ai-red { color: var(--brand-danger) !important; background: var(--brand-danger-soft) !important; }
.ai-green { color: var(--brand-success) !important; background: var(--brand-success-soft) !important; }
.ai-section-eyebrow,
.ai-analysis-disclaimer i,
.ai-analysis-loading { color: var(--brand-sage) !important; }
.ai-entity-group em,
.automation-approval-bar,
.automation-draft-result pre { color: var(--brand-charcoal) !important; background: var(--brand-ivory) !important; }
.automation-sources a,
.automation-rule-actions-list span { color: var(--brand-forest) !important; background: var(--brand-soft-green) !important; }
.automation-ai-state.is-online,
.automation-ai-state.is-local { color: var(--brand-forest) !important; background: var(--brand-soft-green) !important; }

/* Modulos con cabeceras o acentos propios. */
.signature-head { background: linear-gradient(120deg, var(--brand-forest), var(--brand-sage)) !important; }
.signature-recommendation,
.wa-recommendation,
.reminder-recommended { color: var(--brand-forest) !important; border-color: #bdccc1 !important; background: var(--brand-success-soft) !important; }
.signature-recommendation > i,
.wa-recommendation > i { color: var(--brand-success) !important; }
.email-ai,
.organization-config-guide,
.automation-governance { color: var(--brand-forest) !important; border-color: var(--brand-taupe) !important; background: var(--brand-soft-green) !important; }
.email-item.unread,
.wa-conversation:hover,
.wa-conversation.active { background: var(--brand-soft-green) !important; }
.wa-message.outbound,
.communication-message.is-outbound { border-color: var(--brand-taupe) !important; background: var(--brand-soft-green) !important; }
.judicial-source,
.document-review-badge.status-in-review,
.document-review-badge.status-en-revision { color: var(--brand-forest) !important; background: var(--brand-soft-green) !important; }
.judicial-callout,
.request-review,
.calendar-conflicts,
.closure-override { color: var(--brand-warning) !important; border-color: var(--brand-beige) !important; background: var(--brand-warning-soft) !important; }
.finance-row-icon,
.calendar-sync-metrics i,
.reminder-rule-icon,
.closure-metrics i { color: var(--brand-sage) !important; background: var(--brand-soft-green) !important; }

/* Agenda: un color semantico y reconocible para cada clase de evento. */
.calendar-dot.hearing { background: var(--calendar-hearing) !important; }
.calendar-dot.appointment { background: var(--calendar-appointment) !important; }
.calendar-dot.deadline { background: var(--calendar-deadline) !important; }
.calendar-dot.task { background: var(--calendar-task) !important; }
.calendar-dot.next-action { background: var(--calendar-next-action) !important; }
.calendar-dot.external { background: var(--calendar-external) !important; }
.calendar-legend { flex-wrap: wrap; gap: 8px !important; }
.calendar-legend-item {
    align-items: center;
    display: inline-flex;
    min-height: 32px;
    padding: 5px 9px;
    border: 1px solid var(--brand-line);
    border-radius: 999px;
    background: var(--brand-white);
    font-weight: 600;
}
.calendar-legend-item.hearing { color: var(--calendar-hearing); background: var(--calendar-hearing-soft); }
.calendar-legend-item.appointment { color: var(--calendar-appointment); background: var(--calendar-appointment-soft); }
.calendar-legend-item.deadline { color: var(--calendar-deadline); background: var(--calendar-deadline-soft); }
.calendar-legend-item.task { color: var(--calendar-task); background: var(--calendar-task-soft); }
.calendar-legend-item.next-action { color: var(--calendar-next-action); background: var(--calendar-next-action-soft); }
.calendar-legend-item.external { color: var(--calendar-external); background: var(--calendar-external-soft); }
.calendar-dot { flex: 0 0 10px; width: 10px !important; height: 10px !important; box-shadow: 0 0 0 3px rgba(255,255,255,.7); }
.calendar-event {
    border-left: 4px solid currentColor !important;
    border-radius: 5px !important;
    font-weight: 650;
    transition: filter .16s ease, box-shadow .16s ease, transform .16s ease;
}
.calendar-event:hover,
.calendar-event:focus { filter: saturate(1.08); box-shadow: 0 5px 12px rgba(35,48,40,.12); transform: translateY(-1px); }
.calendar-event.hearing { color: var(--calendar-hearing) !important; background: var(--calendar-hearing-soft) !important; }
.calendar-event.appointment { color: var(--calendar-appointment) !important; background: var(--calendar-appointment-soft) !important; }
.calendar-event.deadline { color: var(--calendar-deadline) !important; background: var(--calendar-deadline-soft) !important; }
.calendar-event.task { color: var(--calendar-task) !important; background: var(--calendar-task-soft) !important; }
.calendar-event.next-action { color: var(--calendar-next-action) !important; background: var(--calendar-next-action-soft) !important; }
.calendar-event.external { color: var(--calendar-external) !important; background: var(--calendar-external-soft) !important; }
.calendar-agenda-item { border-left: 5px solid var(--calendar-type-color, var(--brand-sage)) !important; }
.calendar-agenda-item.hearing { --calendar-type-color: var(--calendar-hearing); --calendar-type-soft: var(--calendar-hearing-soft); }
.calendar-agenda-item.appointment { --calendar-type-color: var(--calendar-appointment); --calendar-type-soft: var(--calendar-appointment-soft); }
.calendar-agenda-item.deadline { --calendar-type-color: var(--calendar-deadline); --calendar-type-soft: var(--calendar-deadline-soft); }
.calendar-agenda-item.task { --calendar-type-color: var(--calendar-task); --calendar-type-soft: var(--calendar-task-soft); }
.calendar-agenda-item.next-action { --calendar-type-color: var(--calendar-next-action); --calendar-type-soft: var(--calendar-next-action-soft); }
.calendar-agenda-item.external { --calendar-type-color: var(--calendar-external); --calendar-type-soft: var(--calendar-external-soft); }
.calendar-agenda-item .calendar-agenda-date { color: var(--calendar-type-color) !important; background: var(--calendar-type-soft) !important; }
.calendar-agenda-type { color: var(--calendar-type-color) !important; background: var(--calendar-type-soft) !important; }
.calendar-time-format-note {
    align-items: center;
    display: inline-flex;
    gap: 6px;
    min-height: 32px;
    margin-left: auto;
    padding: 5px 9px;
    color: var(--brand-muted);
    border: 1px dashed var(--brand-taupe);
    border-radius: 999px;
    background: var(--brand-ivory);
    font-size: 11px;
    white-space: nowrap;
}
.calendar-time-format-note i { color: var(--brand-sage); font-size: 15px; }
.legal-calendar { border-color: var(--brand-line) !important; border-radius: 14px !important; box-shadow: 0 10px 28px rgba(35,48,40,.07); }
.calendar-weekdays { color: var(--brand-forest); border-color: var(--brand-line) !important; background: linear-gradient(180deg, var(--brand-ivory), var(--brand-soft-green)) !important; }
.calendar-weekdays span { padding: 11px 6px !important; color: var(--brand-forest) !important; font-size: 12px !important; letter-spacing: .05em; }
.calendar-day { min-height: 142px !important; padding: 9px !important; border-color: var(--brand-line) !important; background: var(--brand-white) !important; transition: background .16s ease, box-shadow .16s ease; }
.calendar-day:nth-child(7n + 1),
.calendar-day:nth-child(7n) { background: color-mix(in srgb, var(--brand-ivory) 72%, var(--brand-white)) !important; }
.calendar-day.has-events:hover { z-index: 1; background: var(--brand-ivory) !important; box-shadow: inset 0 0 0 2px var(--brand-taupe); }
.calendar-day-head { align-items: center; display: flex; justify-content: space-between; min-height: 30px; margin-bottom: 7px; }
.calendar-day-head small { color: var(--brand-muted); font-size: 9px; font-weight: 650; }
.calendar-day-number {
    align-items: center;
    display: inline-flex !important;
    justify-content: center;
    width: 29px;
    height: 29px;
    margin: 0 !important;
    border-radius: 50%;
    color: var(--brand-charcoal) !important;
    font-size: 13px !important;
    text-align: center !important;
}
.calendar-day.is-today { background: var(--brand-soft-green) !important; box-shadow: inset 0 0 0 2px var(--brand-sage) !important; }
.calendar-day.is-today .calendar-day-number { color: var(--brand-white) !important; background: var(--brand-sage); box-shadow: 0 4px 10px rgba(35,48,40,.2); }
.calendar-events { gap: 5px !important; }
.calendar-event { display: grid !important; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 5px; min-height: 31px; padding: 5px 7px !important; }
.calendar-event b { min-width: max-content; font-size: 9px !important; font-variant-numeric: tabular-nums; }
.calendar-event span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-agenda { gap: 9px !important; }
.calendar-agenda-item { min-height: 76px; padding: 11px 14px !important; border-radius: 12px !important; background: var(--brand-white); box-shadow: 0 4px 14px rgba(35,48,40,.05); transition: transform .16s ease, box-shadow .16s ease, background .16s ease; }
.calendar-agenda-item:hover,
.calendar-agenda-item:focus { background: var(--calendar-type-soft, var(--brand-ivory)) !important; box-shadow: 0 9px 22px rgba(35,48,40,.1); transform: translateY(-1px); }
.calendar-agenda-main { display: grid; flex: 1; gap: 2px; min-width: 0; }
.calendar-agenda-main > strong { color: var(--brand-charcoal); font-size: 14px; }
.calendar-agenda-main > small { overflow: hidden; color: var(--brand-muted) !important; text-overflow: ellipsis; white-space: nowrap; }
.calendar-agenda-time { align-items: center; display: inline-flex; gap: 5px; width: fit-content; color: var(--calendar-type-color); font-size: 11px; font-weight: 750; font-variant-numeric: tabular-nums; }
.calendar-agenda-type { align-items: center; display: inline-flex; min-height: 27px; padding: 4px 9px !important; border-radius: 999px !important; font-size: 10px !important; font-weight: 750; }

/* Carga publica y documentos generados fuera del layout autenticado. */
.public-upload-page { color: var(--brand-charcoal) !important; background: linear-gradient(135deg, var(--brand-ivory), var(--brand-soft-beige)) !important; }
.public-upload-card { border-color: var(--brand-line) !important; }
.public-upload-logo { background: var(--brand-forest) !important; }
.public-upload-card header small { color: var(--brand-sage) !important; }
.public-upload-request small { color: var(--brand-forest) !important; background: var(--brand-soft-beige) !important; }
.public-upload-drop { border-color: var(--brand-taupe) !important; background: var(--brand-ivory) !important; }
.public-upload-drop.dragover { border-color: var(--brand-sage) !important; background: var(--brand-soft-green) !important; }
.public-upload-drop i { color: var(--brand-sage) !important; }

.footer-area { color: var(--brand-muted) !important; border-color: var(--brand-line) !important; background: var(--brand-ivory) !important; }
.footer-area a { color: var(--brand-sage) !important; }

/* Acceso: la primera pantalla tambien forma parte de la identidad visual. */
.login-page {
    --login-navy: var(--brand-forest);
    --login-navy-deep: var(--brand-forest-deep);
    --login-gold: var(--brand-beige);
    --login-paper: var(--brand-ivory);
    color: var(--brand-charcoal) !important;
    background: var(--brand-canvas) !important;
}
.login-identity { background: linear-gradient(145deg, var(--brand-forest-deep), var(--brand-forest) 56%, var(--brand-sage)) !important; }
.login-identity::after { border-color: rgba(212,199,188,.5) !important; box-shadow: 0 0 0 52px rgba(212,199,188,.04), 0 0 0 105px rgba(212,199,188,.03) !important; }
.login-firm-seal { color: var(--brand-beige) !important; border-color: rgba(212,199,188,.75) !important; }
.login-eyebrow,
.login-card .login-eyebrow { color: var(--brand-sage) !important; }
.login-identity .login-eyebrow { color: var(--brand-beige) !important; }
.login-trust-list i { color: var(--brand-ivory) !important; background: rgba(212,199,188,.18) !important; }
.login-card { border-color: var(--brand-line) !important; background: rgba(255,255,255,.97) !important; box-shadow: 0 26px 68px rgba(35,48,40,.13) !important; }
.login-card h2,
.login-card label,
.login-card input { color: var(--brand-charcoal) !important; }
.login-input-wrap { border-color: var(--brand-line) !important; }
.login-input-wrap:focus-within { border-color: var(--brand-sage) !important; box-shadow: 0 0 0 4px rgba(71,84,75,.14) !important; }
.login-password-toggle:hover,
.login-security-note span,
.login-footer a:hover,
.login-footer a:focus { color: var(--brand-sage) !important; }
.login-submit { background: linear-gradient(115deg, var(--brand-sage), var(--brand-forest)) !important; box-shadow: 0 10px 20px rgba(35,48,40,.22) !important; }
.login-submit:hover { box-shadow: 0 14px 24px rgba(35,48,40,.3) !important; }
.login-security-note { border-color: var(--brand-line) !important; }

/*
 * Modales y espacios de trabajo emergentes.
 * La cabecera bosque identifica con claridad la ventana activa; el cuerpo
 * conserva marfil y blanco para mantener una lectura amplia y descansada.
 */
.modal-backdrop,
.modal-backdrop.show { background: var(--brand-forest-deep) !important; }
.modal-backdrop.show { opacity: .58 !important; }
.modal-content {
    color: var(--brand-charcoal) !important;
    border: 1px solid var(--brand-sage) !important;
    background: var(--brand-white) !important;
    box-shadow: 0 24px 70px rgba(21,29,22,.28) !important;
}
.modal:not(.legal-dialog-modal) .modal-header {
    color: var(--brand-white) !important;
    border-bottom-color: rgba(212,199,188,.38) !important;
    background: linear-gradient(135deg, var(--brand-forest), var(--brand-sage)) !important;
}
.modal:not(.legal-dialog-modal) .modal-header::before { background: var(--brand-beige) !important; }
.modal:not(.legal-dialog-modal) .modal-header .modal-title,
.modal:not(.legal-dialog-modal) .modal-header h4,
.modal:not(.legal-dialog-modal) .modal-header h5 { color: var(--brand-white) !important; }
.modal:not(.legal-dialog-modal) .modal-header .modal-subtitle,
.modal:not(.legal-dialog-modal) .modal-header p,
.modal:not(.legal-dialog-modal) .modal-header small { color: rgba(255,255,255,.76) !important; }
.modal:not(.legal-dialog-modal) .modal-header .close {
    color: var(--brand-white) !important;
    border-color: rgba(255,255,255,.28) !important;
    background: rgba(255,255,255,.08) !important;
    opacity: 1 !important;
}
.modal:not(.legal-dialog-modal) .modal-header .close:hover,
.modal:not(.legal-dialog-modal) .modal-header .close:focus { color: var(--brand-forest) !important; background: var(--brand-beige) !important; }
.modal-body {
    color: var(--brand-charcoal) !important;
    background: var(--brand-white) !important;
    scrollbar-color: var(--brand-sage) var(--brand-ivory);
}
.modal-footer,
.legal-dialog-actions {
    color: var(--brand-muted) !important;
    border-top-color: var(--brand-line) !important;
    background: var(--brand-ivory) !important;
}
.modal hr { border-top-color: var(--brand-line) !important; }
.modal-body label,
.modal-body legend,
.modal-body h5,
.modal-body h6 { color: var(--brand-charcoal) !important; }
.modal-body .form-text,
.modal-body .text-muted,
.modal-body small { color: var(--brand-muted) !important; }
.modal-body .form-control,
.modal-body .custom-select,
.modal-body select,
.modal-body textarea {
    color: var(--brand-charcoal) !important;
    border-color: var(--brand-line) !important;
    background-color: var(--brand-white) !important;
}
.modal-body .form-control:focus,
.modal-body .custom-select:focus,
.modal-body select:focus,
.modal-body textarea:focus {
    border-color: var(--brand-sage) !important;
    box-shadow: 0 0 0 3px rgba(71,84,75,.14) !important;
}
.modal-body input[readonly],
.modal-body input:disabled,
.modal-body select:disabled,
.modal-body textarea:disabled { color: var(--brand-muted) !important; background: var(--brand-ivory) !important; }
.modal .input-group-text,
.modal .input-group-addon { color: var(--brand-forest) !important; border-color: var(--brand-line) !important; background: var(--brand-soft-green) !important; }
.modal .btn-success { color: var(--brand-white) !important; border-color: var(--brand-success) !important; background: var(--brand-success) !important; }
.modal .btn-success:hover,
.modal .btn-success:focus { border-color: var(--brand-forest) !important; background: var(--brand-forest) !important; }
.modal .btn-danger { color: var(--brand-white) !important; border-color: var(--brand-danger) !important; background: var(--brand-danger) !important; }
.modal .btn-outline-danger { color: var(--brand-danger) !important; border-color: #c89f9a !important; background: transparent !important; }
.modal .btn-outline-danger:hover { color: var(--brand-white) !important; border-color: var(--brand-danger) !important; background: var(--brand-danger) !important; }
.modal a:not(.btn) { color: var(--brand-sage) !important; }

/* Secciones internas de formularios y selectores compuestos. */
#module-modal .module-form-section > div,
.intake-form-section,
.communication-template-picker,
.case-template-picker,
.signature-placement-note,
.template-placeholder-help,
.workflow-stage-legend {
    color: var(--brand-forest) !important;
    border-color: var(--brand-taupe) !important;
    background: var(--brand-soft-green) !important;
}
#module-modal .module-form-section span,
.intake-form-section span,
.communication-template-picker label,
.case-template-picker-heading h5 { color: var(--brand-forest) !important; }
.intake-form-section { border-left-color: var(--brand-sage) !important; }
/* Checklists, radios y selectores de opciones multiples. */
.legal-choice-input {
    appearance: none !important;
    -webkit-appearance: none !important;
    align-self: center;
    flex: 0 0 24px;
    width: 24px !important;
    height: 24px !important;
    min-width: 24px;
    margin: 0 !important;
    border: 2px solid #8d938f !important;
    border-radius: 6px !important;
    background: var(--brand-white) !important;
    box-shadow: inset 0 0 0 2px var(--brand-white);
    cursor: pointer;
    display: inline-grid;
    place-content: center;
    transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}
input[type="radio"].legal-choice-input { border-radius: 50% !important; }
.legal-choice-input::after {
    content: "";
    width: 7px;
    height: 12px;
    border: solid var(--brand-white);
    border-width: 0 3px 3px 0;
    opacity: 0;
    transform: translateY(-1px) rotate(45deg) scale(.7);
    transition: opacity .14s ease, transform .14s ease;
}
input[type="radio"].legal-choice-input::after {
    width: 10px;
    height: 10px;
    border: 0;
    border-radius: 50%;
    background: var(--brand-white);
    transform: scale(.55);
}
.legal-choice-input:checked {
    border-color: var(--brand-sage) !important;
    background: linear-gradient(145deg, var(--brand-sage-light), var(--brand-forest)) !important;
    box-shadow: 0 4px 11px rgba(35,48,40,.22);
}
.legal-choice-input:checked::after { opacity: 1; transform: translateY(-1px) rotate(45deg) scale(1); }
input[type="radio"].legal-choice-input:checked::after { transform: scale(1); }
.legal-choice-input:focus-visible { outline: 3px solid rgba(212,199,188,.72) !important; outline-offset: 3px; }
.legal-choice-input:disabled { cursor: not-allowed; filter: grayscale(.35); opacity: .55; }

.legal-choice-row { color: var(--brand-charcoal) !important; cursor: pointer; }
.legal-choice-card {
    align-items: center !important;
    display: flex !important;
    gap: 14px !important;
    min-height: 58px;
    margin: 0 0 8px !important;
    padding: 12px 14px !important;
    border: 1px solid var(--brand-line) !important;
    border-radius: 11px !important;
    background: var(--brand-white) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.45;
    transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
}
.legal-choice-card:hover { border-color: var(--brand-taupe) !important; background: var(--brand-ivory) !important; }
.legal-choice-card.is-selected,
.legal-choice-card:has(.legal-choice-input:checked) {
    border-color: #aebbb1 !important;
    background: linear-gradient(105deg, var(--brand-soft-green), #f8f8f6) !important;
    box-shadow: inset 4px 0 0 var(--brand-sage), 0 5px 14px rgba(35,48,40,.07) !important;
}
.legal-choice-card.is-disabled { cursor: not-allowed; opacity: .62; }
.legal-choice-card > span { min-width: 0; }
.legal-choice-card strong { color: var(--brand-charcoal) !important; font-size: 14px !important; line-height: 1.4 !important; }
.legal-choice-card small { color: var(--brand-muted) !important; font-size: 12px !important; line-height: 1.45 !important; }
.legal-choice-compact {
    align-items: center !important;
    display: inline-flex !important;
    gap: 9px !important;
    min-height: 38px;
    margin: 0 !important;
    padding: 6px 9px !important;
    border: 1px solid transparent;
    border-radius: 9px;
    background: transparent;
    font-size: 13px !important;
}
.legal-choice-compact:hover,
.legal-choice-compact.is-selected { border-color: var(--brand-line); background: var(--brand-soft-green); }
.legal-choice-compact .legal-choice-input { flex-basis: 20px; width: 20px !important; height: 20px !important; min-width: 20px; border-radius: 5px !important; }

.multi-select-source {
    display: block !important;
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    border: 0 !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    overflow: hidden !important;
    white-space: nowrap !important;
}
.multi-select-control { position: relative; }
.multi-select-trigger {
    align-items: center;
    display: flex;
    justify-content: space-between;
    gap: 14px;
    width: 100%;
    min-height: 62px;
    padding: 10px 14px;
    color: var(--brand-charcoal) !important;
    border: 1px solid var(--brand-line) !important;
    border-radius: 11px !important;
    background: var(--brand-white) !important;
    text-align: left;
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.multi-select-trigger-copy { display: grid; gap: 2px; min-width: 0; }
.multi-select-trigger-copy strong { color: var(--brand-charcoal); font-size: 15px; font-weight: 600; }
.multi-select-trigger-copy small { overflow: hidden; color: var(--brand-muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.multi-select-trigger > i { color: var(--brand-forest) !important; font-size: 24px; transition: transform .18s ease; }
.multi-select-control.has-selection .multi-select-trigger { border-color: var(--brand-sage) !important; background: linear-gradient(105deg, var(--brand-white), var(--brand-soft-green)) !important; }
.multi-select-trigger:hover,
.multi-select-trigger:focus,
.multi-select-control.is-open .multi-select-trigger { border-color: var(--brand-sage) !important; box-shadow: 0 0 0 3px rgba(71,84,75,.12) !important; outline: 0; }
.multi-select-control.is-open .multi-select-trigger > i { transform: rotate(180deg); }
.multi-select-control.is-invalid .multi-select-trigger { border-color: var(--brand-danger) !important; box-shadow: 0 0 0 3px rgba(123,64,59,.12) !important; }
.multi-select-menu {
    display: none;
    position: absolute;
    z-index: 1080;
    right: 0;
    left: 0;
    max-height: 360px;
    margin-top: 7px;
    padding: 10px;
    overflow: hidden;
    color: var(--brand-charcoal) !important;
    border: 1px solid var(--brand-line) !important;
    border-radius: 12px !important;
    background: var(--brand-white) !important;
    box-shadow: 0 18px 38px rgba(35,48,40,.18) !important;
}
.multi-select-control.is-open .multi-select-menu { display: block; }
.multi-select-tools { display: grid; gap: 8px; margin-bottom: 9px; padding-bottom: 9px; border-bottom: 1px solid var(--brand-line); }
.multi-select-tools > label { align-items: center; display: flex; gap: 8px; margin: 0; padding: 0 10px; border: 1px solid var(--brand-line); border-radius: 9px; background: var(--brand-ivory); }
.multi-select-tools > label > i { color: var(--brand-sage); }
.multi-select-search { width: 100%; height: 38px; padding: 0; border: 0; outline: 0; color: var(--brand-charcoal); background: transparent; font-size: 13px; }
.multi-select-tools > div { display: flex; justify-content: flex-end; gap: 7px; }
.multi-select-tools button { padding: 4px 8px; border: 0; border-radius: 6px; color: var(--brand-forest); background: var(--brand-soft-green); font-size: 11px; font-weight: 700; }
.multi-select-tools button:hover { background: var(--brand-soft-beige); }
.multi-select-options { display: grid; gap: 7px; max-height: 245px; padding-right: 3px; overflow-y: auto; scrollbar-color: var(--brand-sage) var(--brand-ivory); }
.multi-select-option { min-height: 52px; margin: 0 !important; color: var(--brand-charcoal) !important; }
.multi-select-option:hover { background: var(--brand-ivory) !important; }
.multi-select-option > span { font-size: 14px; }
.multi-select-empty { display: block; padding: 18px 12px; color: var(--brand-muted); text-align: center; }
.multi-select-hint { display: block; margin-top: 5px; color: var(--brand-muted) !important; font-size: 11px !important; }

/* Los checklist funcionales conservan su estructura, pero comparten el nuevo lenguaje visual. */
.checklist-item,
.case-template-options > label,
.automation-suggestion { border-color: var(--brand-line) !important; background: var(--brand-white) !important; }
.checklist-item.is-done,
.checklist-item.is-selected,
.case-template-options > label.is-selected,
.automation-suggestion.is-selected { border-color: #aebbb1 !important; background: var(--brand-soft-green) !important; }
.checklist-item.is-done strong { color: var(--brand-success) !important; }

@media (max-width: 767px) {
    .legal-choice-card { min-height: 56px; padding: 11px 12px !important; font-size: 15px !important; }
    .legal-choice-input { flex-basis: 26px; width: 26px !important; height: 26px !important; min-width: 26px; }
    .multi-select-trigger { min-height: 60px; }
    .multi-select-menu { position: relative; z-index: 2; max-height: none; margin-top: 7px; }
    .multi-select-options { max-height: min(42vh, 320px); }
    .multi-select-tools > div { justify-content: stretch; }
    .multi-select-tools button { flex: 1; min-height: 36px; }
}

/* Carga de archivos y pasos dentro de modales. */
.document-dropzone {
    color: var(--brand-charcoal) !important;
    border-color: var(--brand-taupe) !important;
    background: var(--brand-ivory) !important;
}
.document-dropzone:hover,
.document-dropzone.dragover { border-color: var(--brand-sage) !important; background: var(--brand-soft-green) !important; }
.document-dropzone > i { color: var(--brand-sage) !important; }
.document-dropzone small { color: var(--brand-muted) !important; }
.upload-step { color: var(--brand-muted) !important; }
.upload-step strong { color: var(--brand-muted) !important; border-color: var(--brand-taupe) !important; background: var(--brand-ivory) !important; }
.upload-step.active { color: var(--brand-forest) !important; }
.upload-step.active strong { color: var(--brand-white) !important; border-color: var(--brand-sage) !important; background: var(--brand-sage) !important; }
.document-file-name { color: var(--brand-forest) !important; border-color: var(--brand-taupe) !important; background: var(--brand-soft-green) !important; }

/* Detalle de expedientes, historial y etapas. */
.case-detail-tabs { border-bottom-color: var(--brand-line) !important; background: var(--brand-ivory) !important; }
.case-detail-tabs button { color: var(--brand-muted) !important; }
.case-detail-tabs button:hover,
.case-detail-tabs button.active { color: var(--brand-forest) !important; border-bottom-color: var(--brand-sage) !important; background: var(--brand-white) !important; }
.case-summary-item,
.case-detail-description,
.case-history-card,
.workflow-stage-config-row,
.provider-row,
.signature-recipient-row {
    border-color: var(--brand-line) !important;
    background: var(--brand-ivory) !important;
}
.case-history-icon,
.signature-recipient-order { color: var(--brand-white) !important; background: var(--brand-sage) !important; }
.case-history-entry:not(:last-child)::before { border-color: var(--brand-taupe) !important; }
.case-history-change { border-color: var(--brand-line) !important; }
.case-history-before { color: var(--brand-muted) !important; background: var(--brand-soft-beige) !important; }
.case-history-after { color: var(--brand-forest) !important; background: var(--brand-soft-green) !important; }
.workflow-stage-config-row { background: var(--brand-ivory) !important; }
.workflow-stage-handle,
.workflow-stage-active,
.workflow-stage-automations label small { color: var(--brand-muted) !important; }
.workflow-stage-active input { accent-color: var(--brand-sage) !important; }
.workflow-stage-create-form { border-top-color: var(--brand-line) !important; }
.case-stage-summary { border-left: 4px solid var(--stage-color) !important; background: color-mix(in srgb, var(--stage-color) 10%, var(--brand-white)) !important; }
.case-stage-summary > strong,
.case-workflow-heading > strong {
    align-items: center;
    display: inline-flex;
    gap: 6px;
    width: fit-content;
    padding: 4px 8px;
    border: 1px solid color-mix(in srgb, var(--stage-color) 45%, var(--brand-white));
    border-radius: 999px;
    color: var(--stage-color) !important;
    background: color-mix(in srgb, var(--stage-color) 10%, var(--brand-white));
    font-weight: 750;
}
.case-stage-summary > strong::before,
.case-workflow-heading > strong::before { content: ""; flex: 0 0 8px; width: 8px; height: 8px; border-radius: 50%; background: var(--stage-color); }
.case-workflow-progress { border-color: var(--brand-line) !important; background: color-mix(in srgb, var(--stage-color) 5%, var(--brand-white)) !important; }
.case-stage-track { height: 7px !important; background: var(--brand-line) !important; }
.case-stage-track > b { background: linear-gradient(90deg, color-mix(in srgb, var(--stage-color) 68%, var(--brand-white)), var(--stage-color)) !important; }
.case-stage-node.is-current > i { box-shadow: 0 0 0 4px color-mix(in srgb, var(--stage-color) 22%, transparent) !important; }
.workflow-stage-config-row { border-left: 5px solid var(--stage-color, var(--brand-sage)) !important; }
.workflow-stage-config-row input[type="color"] { border-color: var(--stage-color, var(--brand-sage)) !important; }
.case-stage-badge {
    align-items: center;
    display: inline-flex;
    gap: 6px;
    width: fit-content;
    padding: 5px 9px;
    border: 1px solid color-mix(in srgb, var(--stage-color) 45%, var(--brand-white));
    border-radius: 999px;
    color: var(--stage-color) !important;
    background: color-mix(in srgb, var(--stage-color) 10%, var(--brand-white));
    font-size: 11px;
    font-weight: 750;
    white-space: nowrap;
}
.case-stage-badge::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--stage-color); }

/* Previsualizacion y editor de documentos. */
.document-preview-modal .modal-body,
.document-preview-modal .modal-body:has(.document-word-editor:not(.d-none)),
.word-editor-workspace { background: var(--brand-soft-beige) !important; }
.document-preview-loading,
.document-preview-media > i,
.document-preview-unsupported > i { color: var(--brand-sage) !important; }
.document-preview-media,
.word-editor-toolbar,
.word-editor-status { color: var(--brand-charcoal) !important; border-color: var(--brand-line) !important; background: var(--brand-white) !important; }
.word-editor-toolbar button,
.word-toolbar-select,
.word-color-control { color: var(--brand-charcoal) !important; border-color: var(--brand-line) !important; background: var(--brand-ivory) !important; }
.word-editor-toolbar button:hover,
.word-editor-toolbar button.is-active { color: var(--brand-white) !important; border-color: var(--brand-sage) !important; background: var(--brand-sage) !important; }
.word-editor-page { color: var(--brand-charcoal) !important; border-color: var(--brand-taupe) !important; box-shadow: 0 9px 30px rgba(35,48,40,.14) !important; }
.word-editor-page:focus { border-color: var(--brand-sage) !important; box-shadow: 0 9px 34px rgba(35,48,40,.2) !important; }
.word-editor-page blockquote { color: var(--brand-muted) !important; border-left-color: var(--brand-sage) !important; }
.word-editor-page td,
.word-editor-page th { border-color: var(--brand-taupe) !important; }
.word-editor-status.is-dirty { color: var(--brand-warning) !important; }
.word-editor-status.is-saving { color: var(--brand-sage) !important; }
.word-editor-status.is-saved { color: var(--brand-success) !important; }

/* Dialogos de confirmacion, exito, advertencia y error. */
.legal-dialog { border-color: var(--brand-line) !important; background: var(--brand-white) !important; box-shadow: 0 24px 70px rgba(21,29,22,.3) !important; }
.legal-dialog-title { color: var(--brand-charcoal) !important; }
.legal-dialog-message { color: var(--brand-muted) !important; }
.legal-dialog-icon { color: var(--brand-sage) !important; background: var(--brand-soft-green) !important; }
.legal-dialog-success .legal-dialog-icon { color: var(--brand-success) !important; background: var(--brand-success-soft) !important; }
.legal-dialog-warning .legal-dialog-icon,
.legal-dialog-question .legal-dialog-icon { color: var(--brand-warning) !important; background: var(--brand-warning-soft) !important; }
.legal-dialog-error .legal-dialog-icon { color: var(--brand-danger) !important; background: var(--brand-danger-soft) !important; }
.legal-dialog-input { border-color: var(--brand-line) !important; }
.legal-dialog-input:focus { border-color: var(--brand-sage) !important; box-shadow: 0 0 0 3px rgba(71,84,75,.14) !important; }
.legal-dialog-validation { color: var(--brand-danger) !important; }

/* Modales de IA: conserva el encabezado oscuro y armoniza todas las tarjetas. */
.ai-analysis-modal { border-color: var(--brand-sage) !important; box-shadow: 0 24px 70px rgba(21,29,22,.3) !important; }
.ai-analysis-body { background: var(--brand-ivory) !important; }
.ai-analysis-footer { border-top-color: var(--brand-line) !important; background: var(--brand-white) !important; }
.ai-analysis-status { color: var(--brand-white) !important; border-color: rgba(212,199,188,.7) !important; background: rgba(21,29,22,.18) !important; }
.ai-summary-hero,
.ai-analysis-section { border-color: var(--brand-line) !important; background: var(--brand-white) !important; }
.ai-analysis-list li { border-bottom-color: var(--brand-line) !important; }

@media (max-width: 767px) {
    .modal-content { border-color: var(--brand-line) !important; }
    .modal:not(.legal-dialog-modal) .modal-header { background: var(--brand-forest) !important; }
}

/* Globo informativo comun para todos los eventos del calendario. */
.calendar-event-cloud {
    --calendar-event-accent: var(--brand-sage);
    color: var(--brand-charcoal) !important;
    border: 1px solid var(--brand-line) !important;
    border-top: 4px solid var(--calendar-event-accent) !important;
    background: var(--brand-white) !important;
    box-shadow: 0 18px 46px rgba(21,29,22,.24) !important;
}
.calendar-event-cloud[data-event-type="hearing"] { --calendar-event-accent: var(--calendar-hearing); }
.calendar-event-cloud[data-event-type="appointment"] { --calendar-event-accent: var(--calendar-appointment); }
.calendar-event-cloud[data-event-type="deadline"] { --calendar-event-accent: var(--calendar-deadline); }
.calendar-event-cloud[data-event-type="task"] { --calendar-event-accent: var(--calendar-task); }
.calendar-event-cloud[data-event-type="next-action"] { --calendar-event-accent: var(--calendar-next-action); }
.calendar-event-cloud[data-event-type="external"] { --calendar-event-accent: var(--calendar-external); }
.calendar-event-cloud::after { background: var(--brand-white) !important; border-color: var(--brand-line) !important; }
.calendar-event-cloud > header > span { color: var(--brand-forest) !important; font-size: 12px !important; }
.calendar-event-cloud > header > span i,
.calendar-event-cloud-context > div > i { color: var(--calendar-event-accent) !important; }
.calendar-event-cloud > header em { color: var(--brand-charcoal) !important; font-size: 11px !important; background: var(--brand-ivory) !important; }
.calendar-event-cloud > header em.status-completed,
.calendar-event-cloud > header em.status-confirmed,
.calendar-event-cloud > header em.status-ready { color: var(--brand-success) !important; background: var(--brand-success-soft) !important; }
.calendar-event-cloud > header em.status-cancelled,
.calendar-event-cloud > header em.status-expired,
.calendar-event-cloud > header em.status-no_show { color: var(--brand-danger) !important; background: var(--brand-danger-soft) !important; }
.calendar-event-cloud > header em.status-pending,
.calendar-event-cloud > header em.status-requested,
.calendar-event-cloud > header em.status-rescheduled { color: var(--brand-warning) !important; background: var(--brand-warning-soft) !important; }
.calendar-event-cloud h4 { color: var(--brand-charcoal) !important; font-size: 17px !important; line-height: 1.4 !important; }
.calendar-event-cloud > p { color: var(--brand-muted) !important; font-size: 14px !important; line-height: 1.55 !important; }
.calendar-event-cloud-context { border: 1px solid var(--brand-line) !important; background: var(--brand-ivory) !important; }
.calendar-event-cloud-context small { color: var(--brand-muted) !important; font-size: 10px !important; }
.calendar-event-cloud-context strong { color: var(--brand-charcoal) !important; font-size: 13px !important; line-height: 1.45 !important; }
.calendar-event-cloud > footer { color: var(--brand-muted) !important; font-size: 12px !important; }
.calendar-event-cloud-actions button { color: var(--brand-charcoal) !important; border-color: var(--brand-line) !important; background: var(--brand-ivory) !important; }
.calendar-event-cloud-actions a { color: var(--brand-white) !important; border-color: var(--calendar-event-accent) !important; background: var(--calendar-event-accent) !important; }
.calendar-event-cloud-actions a:hover { color: var(--brand-white) !important; filter: brightness(.92); }
.calendar-event[data-calendar-event-key]:focus-visible,
.calendar-agenda-item[data-calendar-event-key]:focus-visible { outline: 3px solid var(--brand-beige) !important; outline-offset: 2px; }

@media (max-width: 767px), (hover: none) {
    .calendar-event-cloud {
        border-right: 0 !important;
        border-bottom: 0 !important;
        border-left: 0 !important;
        border-top-width: 5px !important;
        border-radius: 20px 20px 0 0 !important;
    }
    .calendar-event-cloud::before { background: var(--brand-taupe) !important; }
    .calendar-event-cloud h4 { font-size: 20px !important; }
    .calendar-event-cloud > p { font-size: 16px !important; line-height: 1.55 !important; }
    .calendar-event-cloud-context small { font-size: 11px !important; }
    .calendar-event-cloud-context strong { font-size: 14px !important; }
    .calendar-event-cloud > footer { font-size: 13px !important; }
    .calendar-event-cloud-actions { grid-template-columns: minmax(0,1fr) minmax(0,1.35fr); }
    .calendar-event-cloud-actions button:only-child { grid-column: 1 / -1; }
    .calendar-legend { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 5px; scrollbar-width: thin; }
    .calendar-legend-item { flex: 0 0 auto; }
    .calendar-agenda-type { display: inline-flex !important; }
    .calendar-time-format-note { flex: 0 0 auto; margin-left: 0; }
    .calendar-toolbar { align-items: stretch !important; }
    .calendar-actions { display: grid !important; grid-template-columns: minmax(0,1fr) minmax(0,1fr) repeat(4,auto); gap: 7px !important; }
    .calendar-actions select { width: 100% !important; min-width: 0; grid-column: span 3; }
    .calendar-actions .btn { min-height: 42px; }
    .legal-calendar { overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-color: var(--brand-sage) var(--brand-ivory); }
    .legal-calendar .calendar-weekdays,
    .legal-calendar .calendar-grid { min-width: 760px; }
    .calendar-day { min-height: 126px !important; }
    .calendar-agenda-item { align-items: flex-start !important; display: grid !important; grid-template-columns: 48px minmax(0,1fr) auto; gap: 10px !important; }
    .calendar-agenda-main > strong { font-size: 15px; line-height: 1.35; }
    .calendar-agenda-main > small { white-space: normal; }
    .calendar-agenda-type { align-self: start; }
}

@media (max-width: 480px) {
    .calendar-actions { grid-template-columns: repeat(4,1fr) !important; }
    .calendar-actions select { grid-column: 1 / -1; }
    .calendar-actions #calendar-view-toggle,
    .calendar-actions #calendar-today { grid-column: span 2; }
    .calendar-agenda-item { grid-template-columns: 44px minmax(0,1fr); }
    .calendar-agenda-type { grid-column: 2; justify-self: start; }
}
