@font-face {
    font-family: "FarenetRockwell";
    src: url("../fonts/rockwell-extra-bold-regular.ttf") format("truetype");
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

:root {
    --farenet-blue: #052A79;
    --farenet-blue-strong: #031d55;
    --farenet-yellow: #F6CC1B;
    --crm-bg: #f5f7fb;
    --crm-surface: #ffffff;
    --crm-text: #101827;
    --crm-muted: #667085;
    --crm-border: #d9e1ec;
    --crm-shadow: 0 16px 40px rgba(15, 23, 42, .10);
    --crm-radius: 1.25rem;
    --crm-touch: 48px;
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
    background: var(--crm-bg);
}

.crm-body {
    min-height: 100%;
    margin: 0;
    background: radial-gradient(circle at top left, rgba(246, 204, 27, .18), transparent 28rem), linear-gradient(180deg, #f8fafc 0%, var(--crm-bg) 42%, #eef3fb 100%);
    color: var(--crm-text);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    padding-bottom: calc(5rem + env(safe-area-inset-bottom));
    overflow-x: hidden;
}

img,
svg,
video,
canvas,
iframe {
    max-width: 100%;
}

.container,
.container-fluid,
.row,
.card,
.crm-card,
.crm-main {
    min-width: 0;
}

.btn,
.form-control,
.form-select,
.form-check-input {
    min-height: var(--crm-touch);
}

textarea.form-control {
    min-height: calc(var(--crm-touch) * 2);
}

.btn-sm {
    min-height: 2.25rem;
}

.table-responsive {
    border-radius: 1rem;
}

.table {
    margin-bottom: 0;
}

    .table th,
    .table td {
        vertical-align: middle;
    }

.crm-json {
    background: #0f172a;
    color: #e5e7eb;
    border-radius: 1rem;
    padding: 1rem;
    max-height: 360px;
    overflow: auto;
    font-size: .85rem;
}

    .crm-json code {
        color: inherit;
    }

.crm-notification-list {
    display: grid;
    gap: 1rem;
}

.crm-notification.is-unread {
    border-left: 5px solid var(--farenet-yellow);
}

.crm-notification.is-read {
    opacity: .75;
}

.kpi-card .card-body {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    min-height: 120px;
}

.kpi-card strong {
    font-size: 2rem;
    line-height: 1;
}

.kpi-card small {
    color: #64748b;
}

.kpi-card.warning {
    border-left: 5px solid #f59e0b !important;
}

.kpi-card.danger {
    border-left: 5px solid #dc2626 !important;
}

.dashboard-bars {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.dashboard-bar-row {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

    .dashboard-bar-row .progress {
        height: .65rem;
        background: #e5e7eb;
        border-radius: 999px;
    }

    .dashboard-bar-row .progress-bar {
        background: var(--farenet-blue);
        border-radius: 999px;
    }

        .dashboard-bar-row .progress-bar.secondary {
            background: #64748b;
        }

.dashboard-handoff-list dt,
.dashboard-handoff-list dd {
    padding-top: .4rem;
    padding-bottom: .4rem;
    border-bottom: 1px solid #e5e7eb;
}

.crm-container {
    max-width: 1180px;
}

.crm-main {
    padding-top: 1rem;
    padding-bottom: 2rem;
}

a {
    text-decoration: none;
}

    a:hover {
        text-decoration: underline;
    }

.crm-topbar {
    background: var(--farenet-blue);
    box-shadow: 0 8px 24px rgba(3, 29, 85, .22);
}

.crm-brand {
    display: inline-grid;
    align-items: center;
    gap: .08rem;
    color: #fff;
    min-height: 3rem;
    line-height: 1;
}

    .crm-brand:hover,
    .crm-brand:focus {
        color: #fff;
        text-decoration: none;
    }

.brand-wordmark {
    color: var(--farenet-yellow);
    font-family: "FarenetRockwell", Rockwell, "Rockwell Extra Bold", Georgia, serif;
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.brand-subtitle {
    color: rgba(255, 255, 255, .82);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.crm-toggler {
    border-color: rgba(255, 255, 255, .35);
    min-width: var(--crm-touch);
    min-height: var(--crm-touch);
}

    .crm-toggler:focus {
        box-shadow: 0 0 0 .2rem rgba(246, 204, 27, .35);
    }

    .crm-toggler .navbar-toggler-icon {
        filter: invert(1) grayscale(1) brightness(2);
    }

.crm-nav .nav-link {
    color: rgba(255, 255, 255, .86);
    font-weight: 700;
    border-radius: 999px;
    padding: .65rem .9rem;
}

    .crm-nav .nav-link:hover,
    .crm-nav .nav-link:focus,
    .crm-nav .nav-link.active {
        color: var(--farenet-blue);
        background: var(--farenet-yellow);
        text-decoration: none;
    }

.crm-nav .nav-cta {
    color: var(--farenet-blue);
    background: var(--farenet-yellow);
}

.crm-page-header {
    margin: .25rem 0 1rem;
}

    .crm-page-header.compact {
        margin-bottom: .85rem;
    }

.crm-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: var(--farenet-blue);
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

    .crm-eyebrow::before {
        content: "";
        width: .55rem;
        height: .55rem;
        border-radius: 999px;
        background: var(--farenet-yellow);
        box-shadow: 0 0 0 .25rem rgba(246, 204, 27, .18);
    }

.crm-back-link {
    display: inline-flex;
    color: var(--farenet-blue);
    font-weight: 800;
    margin-bottom: .55rem;
}

.crm-card,
.crm-empty,
.crm-hero {
    border-radius: var(--crm-radius);
    background: rgba(255, 255, 255, .94);
    box-shadow: var(--crm-shadow);
}

.crm-hero {
    margin-bottom: 1rem;
    background: linear-gradient(135deg, rgba(5, 42, 121, .96), rgba(3, 29, 85, .92)), var(--farenet-blue);
    color: #fff;
}

    .crm-hero .crm-eyebrow,
    .crm-hero .lead {
        color: rgba(255, 255, 255, .86);
    }

        .crm-hero .crm-eyebrow::before {
            background: var(--farenet-yellow);
        }

.crm-step-card {
    border: 0;
    border-radius: var(--crm-radius);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .08);
}

.step-number {
    display: grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    margin-bottom: .75rem;
    border-radius: .8rem;
    background: rgba(5, 42, 121, .10);
    color: var(--farenet-blue);
    font-weight: 900;
}

.btn,
.form-control,
.form-select {
    min-height: var(--crm-touch);
}

.btn {
    font-weight: 800;
    border-radius: .95rem;
}


.btn-farenet {
    color: var(--farenet-blue);
    background: var(--farenet-yellow);
    border-color: var(--farenet-yellow);
    box-shadow: 0 10px 18px rgba(246, 204, 27, .22);
}

    .btn-farenet:hover,
    .btn-farenet:focus {
        color: var(--farenet-blue);
        background: #ffd832;
        border-color: #ffd832;
    }

.btn-outline-farenet {
    color: var(--farenet-blue);
    border-color: rgba(5, 42, 121, .36);
    background: #fff;
}

    .btn-outline-farenet:hover,
    .btn-outline-farenet:focus {
        color: #fff;
        background: var(--farenet-blue);
        border-color: var(--farenet-blue);
    }

.btn-soft {
    color: var(--farenet-blue);
    background: rgba(5, 42, 121, .08);
    border-color: transparent;
}

.btn-danger-soft {
    color: #991b1b;
    background: #fee2e2;
    border-color: #fecaca;
}

    .btn-danger-soft:hover,
    .btn-danger-soft:focus {
        color: #fff;
        background: #dc2626;
        border-color: #dc2626;
    }

.badge {
    border-radius: 999px;
    padding: .55rem .75rem;
    font-weight: 800;
}

.badge-soft-blue {
    color: var(--farenet-blue);
    background: rgba(5, 42, 121, .10);
}

.badge-soft-yellow {
    color: #6b4e00;
    background: rgba(246, 204, 27, .25);
}

.badge-soft-success {
    color: #166534;
    background: #dcfce7;
}

.badge-soft-danger {
    color: #991b1b;
    background: #fee2e2;
}

.badge-office-pending {
    color: #6b4e00;
    background: rgba(246, 204, 27, .25);
}

.badge-office-registered {
    color: #166534;
    background: #dcfce7;
}

.badge-office-observed {
    color: #92400e;
    background: #fef3c7;
}


.crm-form {
    display: grid;
    gap: 1rem;
}

    .crm-form fieldset {
        margin: 0;
        padding: 0;
    }

    .crm-form legend {
        float: none;
    }

.form-control,
.form-select {
    border-color: var(--crm-border);
    border-radius: .95rem;
}

    .form-control:focus,
    .form-select:focus {
        border-color: var(--farenet-blue);
        box-shadow: 0 0 0 .22rem rgba(5, 42, 121, .16);
    }

.crm-actions {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    align-items: center;
}

.sticky-actions {
    position: sticky;
    bottom: calc(4.85rem + env(safe-area-inset-bottom));
    z-index: 15;
    margin-top: .25rem;
    padding: .85rem;
    border: 1px solid rgba(217, 225, 236, .9);
    border-radius: 1.15rem;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 -10px 28px rgba(15, 23, 42, .11);
    backdrop-filter: blur(12px);
}

.detail-label {
    display: block;
    color: var(--crm-muted);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: .2rem;
}

.crm-address-box {
    padding: 1rem;
    border-radius: 1rem;
    background: #f8fafc;
    border: 1px solid var(--crm-border);
}

.crm-validation-actions {
    display: grid;
    gap: .75rem;
}

.crm-payload-box {
    border: 1px solid var(--crm-border);
    border-radius: 1rem;
    background: #f8fafc;
    overflow: hidden;
}

    .crm-payload-box summary {
        cursor: pointer;
        padding: .85rem 1rem;
        color: var(--farenet-blue);
        font-weight: 900;
    }

    .crm-payload-box pre {
        margin: 0;
        max-height: 18rem;
        overflow: auto;
        padding: 1rem;
        border-top: 1px solid var(--crm-border);
        background: #0f172a;
        color: #e5e7eb;
        font-size: .78rem;
        white-space: pre-wrap;
        word-break: break-word;
    }

.status-line {
    padding: .85rem 1rem;
    border-radius: 1rem;
    background: #f8fafc;
    border: 1px solid var(--crm-border);
}

    .status-line.ok,
    .ok {
        color: #166534 !important;
        background: #dcfce7 !important;
        border-color: #bbf7d0 !important;
    }

    .status-line.warning,
    .warning {
        color: #92400e !important;
        background: #fef3c7 !important;
        border-color: #fde68a !important;
    }

.hidden {
    display: none !important;
}

.min-w-0 {
    min-width: 0;
}

.crm-alert {
    border-radius: 1rem;
    box-shadow: 0 10px 22px rgba(15, 23, 42, .08);
}

.crm-kanban-summary {
    display: flex;
    gap: .5rem;
    overflow-x: auto;
    padding-bottom: .25rem;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
}

    .crm-kanban-summary .badge {
        flex: 0 0 auto;
        scroll-snap-align: start;
    }

.crm-kanban-scroll {
    overflow-x: auto;
    padding-bottom: 1.25rem;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
}
    .crm-kanban-scroll:focus {
        outline: .2rem solid rgba(5, 42, 121, .16);
        outline-offset: .25rem;
    }
.crm-kanban-accordion-item .accordion-body {
    padding-bottom: 1.25rem;
}
.crm-kanban-board {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(280px, 320px);
    gap: 1rem;
    align-items: start;
    min-height: 60vh;
}

.crm-kanban-column {
    border: 1px solid rgba(217, 225, 236, .9);
    border-radius: var(--crm-radius);
    background: rgba(255, 255, 255, .72);
    padding: .75rem;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .07);
    scroll-snap-align: start;
}

.crm-kanban-column-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .75rem;
    color: var(--farenet-blue);
}

.crm-kanban-card {
    box-shadow: 0 8px 20px rgba(15, 23, 42, .08);
    touch-action: pan-y;
    contain: content;
}
    .crm-kanban-card:focus-within {
        outline: .18rem solid rgba(5, 42, 121, .14);
        outline-offset: .18rem;
    }
    .crm-kanban-card .stretched-card-link {
        position: relative;
        z-index: 1;
    }

    .crm-kanban-card .form-select,
    .crm-kanban-card .form-control,
    .crm-kanban-card .btn {
        position: relative;
        z-index: 2;
    }
    .crm-kanban-card.is-overdue {
        border: 1px solid #fecaca !important;
    }

.kanban-next {
    display: grid;
    gap: .15rem;
    margin-bottom: .85rem;
    padding: .75rem .85rem;
    border: 1px solid var(--crm-border);
    border-left: 5px solid var(--farenet-blue);
    border-radius: .9rem;
    background: #fff;
}

    .kanban-next strong {
        color: var(--farenet-blue);
        font-size: .95rem;
    }

    .kanban-next span,
    .kanban-next small {
        color: var(--crm-muted);
    }

.kanban-next-label {
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.kanban-next.is-burning {
    border-color: #fecaca;
    border-left-color: #dc2626;
    background: #fef2f2;
}

    .kanban-next.is-burning strong {
        color: #991b1b;
    }

.kanban-next.is-today {
    border-color: rgba(246, 204, 27, .55);
    border-left-color: var(--farenet-yellow);
    background: rgba(246, 204, 27, .12);
}

.crm-kanban-meta {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: .25rem .5rem;
    font-size: .84rem;
}

    .crm-kanban-meta dt {
        color: var(--crm-muted);
        font-weight: 900;
    }

    .crm-kanban-meta dd {
        margin: 0;
    }

.crm-kanban-move-form {
    padding-top: .75rem;
    border-top: 1px solid var(--crm-border);
}

.crm-kanban-accordion-item {
    border: 0;
    border-radius: 1rem !important;
    overflow: hidden;
    margin-bottom: .75rem;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .08);
}

.crm-kanban-mobile .accordion-button {
    min-height: var(--crm-touch);
    color: var(--farenet-blue);
    font-weight: 800;
}

    .crm-kanban-mobile .accordion-button:not(.collapsed) {
        background: rgba(5, 42, 121, .08);
        box-shadow: inset 0 -1px 0 var(--crm-border);
    }

.crm-overdue-actions {
    display: grid;
    gap: .65rem;
}

.crm-overdue-filter {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-height: var(--crm-touch);
    margin: 0;
    padding: .65rem .9rem;
    border: 1px solid var(--crm-border);
    border-radius: .95rem;
    background: #fff;
}

    .crm-overdue-filter.form-switch {
        padding-left: .9rem;
    }

    .crm-overdue-filter .form-check-input {
        flex: 0 0 auto;
        width: 2.6rem;
        height: 1.4rem;
        min-height: 1.4rem;
        margin: 0;
        cursor: pointer;
        border-color: #b9c6d8;
    }

        .crm-overdue-filter .form-check-input:focus {
            border-color: var(--farenet-blue);
            box-shadow: 0 0 0 .22rem rgba(5, 42, 121, .16);
        }

        .crm-overdue-filter .form-check-input:checked {
            background-color: var(--farenet-blue);
            border-color: var(--farenet-blue);
        }

    .crm-overdue-filter .form-check-label {
        cursor: pointer;
    }

.crm-document-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
}

.crm-document-card {
    display: grid;
    gap: .85rem;
    padding: .85rem;
    border: 1px solid var(--crm-border);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 8px 20px rgba(15, 23, 42, .06);
    content-visibility: auto;
    contain-intrinsic-size: 320px;
}

.crm-document-grid-compact {
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: .85rem;
}

.crm-document-preview {
    position: relative;
    overflow: hidden;
    min-height: 220px;
    border: 1px solid rgba(217, 225, 236, .9);
    border-radius: .9rem;
    background: linear-gradient(135deg, rgba(5, 42, 121, .08), rgba(246, 204, 27, .12));
}

    .crm-document-preview img,
    .crm-document-preview iframe {
        display: block;
        width: 100%;
        height: 220px;
        border: 0;
        object-fit: contain;
        background: #fff;
    }
.crm-document-open-hint {
    color: var(--crm-muted);
}
.crm-document-placeholder {
    min-height: 220px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: .55rem;
    color: var(--farenet-blue);
    text-align: center;
    font-weight: 800;
}

.crm-document-icon {
    display: grid;
    place-items: center;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 1rem;
    background: var(--farenet-blue);
    color: var(--farenet-yellow);
    font-size: .85rem;
    letter-spacing: .08em;
}

.crm-document-meta {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    align-items: start;
}

.crm-bottom-nav {
    position: fixed;
    left: .75rem;
    right: .75rem;
    bottom: calc(.65rem + env(safe-area-inset-bottom));
    z-index: 30;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(3.25rem, 1fr));
    gap: .35rem;
    padding: .45rem;
    border-radius: 1.25rem;
    background: rgba(3, 29, 85, .96);
    box-shadow: 0 16px 36px rgba(3, 29, 85, .30);
    backdrop-filter: blur(14px);
}

    .crm-bottom-nav a,
    .crm-bottom-nav button {
        display: grid;
        place-items: center;
        min-height: 3rem;
        width: 100%;
        border: 0;
        color: rgba(255, 255, 255, .88);
        font-size: .78rem;
        font-weight: 900;
        border-radius: 1rem;
        background: transparent;
        text-decoration: none;
    }

        .crm-bottom-nav a:hover,
        .crm-bottom-nav a:focus,
        .crm-bottom-nav button:hover,
        .crm-bottom-nav button:focus {
            color: var(--farenet-blue);
            background: var(--farenet-yellow);
            text-decoration: none;
        }

    .crm-bottom-nav .bottom-nav-primary:not(.bottom-nav-active) {
        color: #fff;
        background: rgba(255, 255, 255, .10);
        box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16);
    }

    .crm-bottom-nav .bottom-nav-active {
        color: var(--farenet-blue);
        background: var(--farenet-yellow);
        text-decoration: none;
    }

.crm-bottom-nav-form {
    margin: 0;
    min-width: 0;
}

@media (max-width: 380px) {
    .crm-bottom-nav {
        left: .45rem;
        right: .45rem;
        gap: .25rem;
        padding: .35rem;
    }

        .crm-bottom-nav a,
        .crm-bottom-nav button {
            min-height: 2.9rem;
            font-size: .75rem;
            padding-inline: .15rem;
        }
}

@media (min-width: 992px) {
    .crm-body {
        padding-bottom: 0;
    }

    .crm-main {
        padding-top: 1.5rem;
        padding-bottom: 3rem;
    }

    .sticky-actions {
        bottom: 1rem;
    }
}

@media (max-width: 575.98px) {
    :root {
        --crm-radius: 1rem;
        --crm-touch: 50px;
    }

    .crm-container {
        padding-left: .75rem;
        padding-right: .75rem;
    }

    .crm-main {
        padding-top: .85rem;
    }

    .crm-page-header {
        margin-bottom: .85rem;
    }

        .crm-page-header h1,
        .crm-hero h1 {
            font-size: 1.55rem;
            line-height: 1.15;
        }

    .lead {
        font-size: 1rem;
    }

    .card-body {
        padding: 1rem;
    }

    .form-label {
        margin-bottom: .35rem;
    }

    .form-text,
    .text-secondary.small,
    .small {
        line-height: 1.35;
    }

    .btn-lg,
    .form-control-lg,
    .form-select-lg {
        font-size: 1rem;
    }

    .crm-form {
        gap: .85rem;
    }

        .crm-form fieldset + fieldset {
            margin-top: .85rem;
        }

    .crm-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: .65rem;
    }

        .crm-actions .btn {
            width: 100%;
        }

    .sticky-actions {
        left: .75rem;
        right: .75rem;
        bottom: calc(4.85rem + env(safe-area-inset-bottom));
        padding: .65rem;
        border-radius: 1rem;
        background: rgba(255, 255, 255, .94);
        box-shadow: 0 12px 28px rgba(15, 23, 42, .12);
        backdrop-filter: blur(12px);
    }

    .kanban-next {
        display: grid;
        gap: .15rem;
        margin-bottom: .85rem;
        padding: .75rem .85rem;
        border: 1px solid var(--crm-border);
        border-left: 5px solid var(--farenet-blue);
        border-radius: .9rem;
        background: #fff;
    }

        .kanban-next strong {
            color: var(--farenet-blue);
            font-size: .95rem;
        }

        .kanban-next span,
        .kanban-next small {
            color: var(--crm-muted);
        }

    .kanban-next-label {
        font-size: .72rem;
        font-weight: 900;
        letter-spacing: .04em;
        text-transform: uppercase;
    }

    .kanban-next.is-burning {
        border-color: #fecaca;
        border-left-color: #dc2626;
        background: #fef2f2;
    }

        .kanban-next.is-burning strong {
            color: #991b1b;
        }

    .kanban-next.is-today {
        border-color: rgba(246, 204, 27, .55);
        border-left-color: var(--farenet-yellow);
        background: rgba(246, 204, 27, .12);
    }

    .crm-kanban-meta {
        grid-template-columns: 76px minmax(0, 1fr);
        font-size: .8rem;
    }

    .crm-kanban-summary {
        margin-left: -.75rem;
        margin-right: -.75rem;
        padding-inline: .75rem;
    }

    .crm-document-grid,
    .crm-document-grid-compact {
        grid-template-columns: 1fr;
    }

    .crm-document-preview,
    .crm-document-preview img,
    .crm-document-preview iframe,
    .crm-document-placeholder {
        min-height: 180px;
        height: 180px;
    }

    .crm-document-meta {
        display: grid;
    }

        .crm-document-meta .btn {
            width: 100%;
        }

    .crm-nav {
        padding-top: .75rem;
    }

        .crm-nav .nav-link {
            border-radius: .9rem;
        }
}

.detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 420px);
    gap: 1rem;
}

.detail-list {
    display: grid;
    grid-template-columns: 140px minmax(0, 1fr);
    gap: .45rem .75rem;
    margin: 0 0 1rem 0;
}

    .detail-list dt {
        font-weight: 700;
        color: #475569;
    }

    .detail-list dd {
        margin: 0;
        color: #0f172a;
    }

.activity-form {
    display: grid;
    gap: .75rem;
}

    .activity-form label {
        font-weight: 700;
        color: #334155;
    }

    .activity-form select,
    .activity-form input,
    .activity-form textarea {
        width: 100%;
    }

.section-title {
    display: flex;
    justify-content: space-between;
    align-items: start;
    gap: 1rem;
    margin-bottom: 1rem;
}

.timeline {
    position: relative;
    display: grid;
    gap: 1rem;
}

.timeline-item {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: .75rem;
}

.timeline-dot {
    width: 12px;
    height: 12px;
    margin-top: .35rem;
    border-radius: 999px;
    background: var(--farenet-blue, #052A79);
    box-shadow: 0 0 0 4px rgba(5, 42, 121, .12);
}

.timeline-content {
    border: 1px solid #e2e8f0;
    border-radius: 1rem;
    padding: .9rem 1rem;
    background: #fff;
}

.timeline-content-button {
    display: block;
    width: 100%;
    color: inherit;
    cursor: pointer;
    appearance: none;
}

    .timeline-content-button:hover,
    .timeline-content-button:focus {
        border-color: var(--farenet-blue);
        box-shadow: 0 10px 24px rgba(5, 42, 121, .12);
        outline: none;
    }

.crm-modal-content {
    border: 0;
    border-radius: 1.25rem;
    overflow: hidden;
}

    .crm-modal-content .modal-header {
        background: linear-gradient(135deg, rgba(5, 42, 121, .08), rgba(246, 204, 27, .18));
    }


.timeline-header {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    font-size: .95rem;
}

    .timeline-header span,
    .timeline-meta {
        color: #64748b;
        font-size: .85rem;
    }

.timeline-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem .75rem;
    margin-top: .35rem;
}

.timeline-content p {
    margin: .6rem 0 0;
}

@media (max-width: 860px) {
    .detail-grid {
        grid-template-columns: 1fr;
    }

    .detail-list {
        grid-template-columns: 1fr;
    }
}
.btn,
a {
    touch-action: manipulation;
}
.crm-bottom-nav a,
.crm-bottom-nav button {
    font-size: .80rem;
}

.crm-bottom-nav .bottom-nav-active {
    color: var(--farenet-blue);
    background: var(--farenet-yellow);
    text-decoration: none;
}

.crm-kanban-summary {
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}

    .crm-kanban-summary .badge {
        scroll-snap-align: start;
        flex-shrink: 0;
    }

@media (max-width: 575.98px) {
    .kpi-card .card-body {
        padding-top: 1.15rem;
    }
}

.auth-shell {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(100dvh - 72px);
    padding: 1rem;
}

.auth-card {
    width: 100%;
    max-width: 420px;
    background: rgba(255, 255, 255, .96);
    border-radius: var(--crm-radius);
    box-shadow: var(--crm-shadow);
    padding: 2rem 1.75rem;
}

.auth-brand {
    display: flex;
    align-items: center;
    gap: .85rem;
    margin-bottom: 2rem;
}

    .auth-brand h1 {
        font-size: 1.45rem;
        font-weight: 900;
        margin: 0;
        color: var(--farenet-blue);
    }

    .auth-brand p {
        margin: 0;
        font-size: .8rem;
        color: var(--crm-muted);
    }

.auth-card .form {
    display: grid;
    gap: 1rem;
}

.auth-card label {
    display: block;
    font-size: .82rem;
    font-weight: 800;
    color: var(--crm-muted);
    text-transform: uppercase;
    letter-spacing: .07em;
    margin-bottom: .3rem;
}

.auth-card input {
    display: block;
    width: 100%;
    padding: .75rem 1rem;
    font-size: 1rem;
    border: 1.5px solid var(--crm-border);
    border-radius: .95rem;
    background: #fff;
    color: var(--crm-text);
    transition: border-color .18s, box-shadow .18s;
    min-height: var(--crm-touch);
}

    .auth-card input:focus {
        outline: none;
        border-color: var(--farenet-blue);
        box-shadow: 0 0 0 .22rem rgba(5, 42, 121, .16);
    }

.auth-card .btn.primary {
    display: block;
    width: 100%;
    padding: .85rem;
    font-size: 1rem;
    font-weight: 900;
    color: var(--farenet-blue);
    background: var(--farenet-yellow);
    border: none;
    border-radius: .95rem;
    cursor: pointer;
    box-shadow: 0 10px 18px rgba(246, 204, 27, .22);
    transition: background .15s, transform .1s;
    min-height: var(--crm-touch);
}

    .auth-card .btn.primary:hover,
    .auth-card .btn.primary:focus {
        background: #ffd832;
        transform: translateY(-1px);
    }

    .auth-card .btn.primary:active {
        transform: translateY(0);
    }

.auth-card .validation-summary {
    padding: .75rem 1rem;
    border-radius: .85rem;
    background: #fee2e2;
    color: #991b1b;
    font-size: .88rem;
    border: 1px solid #fecaca;
}

.crm-nav .nav-link.active {
    color: var(--farenet-blue);
    background: var(--farenet-yellow);
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

[data-valmsg-summary="true"].validation-summary-valid {
    display: none !important;
}

[data-valmsg-summary="true"].validation-summary-errors {
    display: block;
}

[data-valmsg-summary="true"] ul {
    margin-bottom: 0;
    padding-left: 1.15rem;
}

[data-valmsg-summary="true"] li:empty {
    display: none;
}

.crm-eligibility-card {
    display: flex;
    gap: .85rem;
    align-items: flex-start;
    border: 1px solid rgba(15, 23, 42, .12);
    border-left-width: .45rem;
    border-radius: 1rem;
    padding: 1rem;
    background: #fff;
    box-shadow: 0 .75rem 1.75rem rgba(15, 23, 42, .07);
}

.crm-eligibility-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    flex: 0 0 auto;
}

.crm-eligibility-success {
    border-left-color: #198754;
    background: linear-gradient(90deg, rgba(25, 135, 84, .08), #fff 48%);
}

.crm-eligibility-warning {
    border-left-color: #F6CC1B;
    background: linear-gradient(90deg, rgba(246, 204, 27, .16), #fff 48%);
}

.crm-eligibility-danger {
    border-left-color: #dc3545;
    background: linear-gradient(90deg, rgba(220, 53, 69, .08), #fff 48%);
}

.crm-eligibility-success .crm-eligibility-icon {
    color: #fff;
    background: #198754;
}

.crm-eligibility-warning .crm-eligibility-icon {
    color: #052A79;
    background: #F6CC1B;
}

.crm-eligibility-danger .crm-eligibility-icon {
    color: #fff;
    background: #dc3545;
}

.crm-eligibility-badge-success {
    color: #fff;
    background: #198754;
}

.crm-eligibility-badge-warning {
    color: #052A79;
    background: #F6CC1B;
}

.crm-eligibility-badge-danger {
    color: #fff;
    background: #dc3545;
}

@media (max-width: 575.98px) {
    .crm-eligibility-card {
        padding: .9rem;
        border-radius: .85rem;
    }
}

.handoff-discount-form .form-control[readonly] {
    background: #f8fafc;
    color: #334155;
    font-weight: 700;
}

.handoff-switch {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-height: var(--crm-touch);
    margin: 0;
    padding: .7rem .9rem;
    border: 1px solid var(--crm-border);
    border-radius: .95rem;
    background: #fff;
}

    .handoff-switch.form-switch {
        padding-left: .9rem;
    }

    .handoff-switch .form-check-input {
        flex: 0 0 auto;
        width: 2.6rem;
        height: 1.4rem;
        min-height: 1.4rem;
        margin: 0;
        cursor: pointer;
        border-color: #b9c6d8;
    }

        .handoff-switch .form-check-input:focus {
            border-color: var(--farenet-blue);
            box-shadow: 0 0 0 .22rem rgba(5, 42, 121, .16);
        }

        .handoff-switch .form-check-input:checked {
            background-color: var(--farenet-blue);
            border-color: var(--farenet-blue);
        }

.handoff-plant-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: .65rem;
}

.handoff-check-card {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-height: var(--crm-touch);
    margin: 0;
    padding: .75rem .9rem;
    border: 1px solid var(--crm-border);
    border-radius: 1rem;
    background: #fff;
    color: #334155;
    font-weight: 800;
    cursor: pointer;
}

    .handoff-check-card:hover,
    .handoff-check-card:focus-within {
        border-color: rgba(5, 42, 121, .42);
        box-shadow: 0 0 0 .18rem rgba(5, 42, 121, .08);
    }

    .handoff-check-card .form-check-input {
        flex: 0 0 auto;
        width: 1.25rem;
        height: 1.25rem;
        min-height: 1.25rem;
        margin: 0;
    }

.handoff-detail-rows {
    display: grid;
    gap: 1rem;
}

.handoff-detail-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
    padding: 1rem;
    border: 1px solid var(--crm-border);
    border-radius: 1rem;
    background: #f8fafc;
}

.handoff-active-cell,
.handoff-remove-cell {
    display: flex;
    align-items: end;
}

    .handoff-remove-cell .btn {
        width: 100%;
    }

@media (max-width: 991.98px) {
    .handoff-detail-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .handoff-plant-grid,
    .handoff-detail-row {
        grid-template-columns: 1fr;
    }

    .handoff-active-cell,
    .handoff-remove-cell {
        align-items: stretch;
    }
}
/* PR-01 Clean & Lean: landing operativo, CTA unico y Kanban desktop compacto */
.crm-topbar-form {
    margin: 0;
}

    .crm-topbar-form .nav-link {
        border: 0;
        background: transparent;
        width: 100%;
        text-align: start;
    }

.crm-new-menu .dropdown-toggle {
    border: 0;
}

.crm-new-menu .dropdown-menu {
    border: 0;
    border-radius: 1rem;
    padding: .5rem;
    box-shadow: var(--crm-shadow);
}

.crm-new-menu .dropdown-item {
    border-radius: .75rem;
    font-weight: 800;
    padding: .65rem .8rem;
}

    .crm-new-menu .dropdown-item:hover,
    .crm-new-menu .dropdown-item:focus {
        color: var(--farenet-blue);
        background: rgba(246, 204, 27, .28);
    }

.crm-kanban-toolbar .card-body {
    padding: .9rem;
}

.crm-kanban-toolbar .form-label {
    margin-bottom: .3rem;
    font-size: .82rem;
}

.crm-kanban-toolbar .form-control,
.crm-kanban-toolbar .form-select,
.crm-kanban-toolbar .btn {
    min-height: 2.65rem;
}

.crm-kanban-scroll {
    margin-inline: -.35rem;
    padding-inline: .35rem;
}

.crm-kanban-board {
    grid-auto-columns: minmax(292px, 336px);
    gap: .85rem;
    min-height: calc(100vh - 250px);
}

.crm-kanban-column {
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 260px);
    max-height: calc(100vh - 210px);
    padding: .7rem;
}

.crm-kanban-column-header {
    flex: 0 0 auto;
    align-items: flex-start;
    margin-bottom: .65rem;
    padding-bottom: .65rem;
    border-bottom: 1px solid rgba(217, 225, 236, .85);
}

.crm-kanban-column-body {
    min-height: 0;
    overflow-y: auto;
    padding-right: .2rem;
    overscroll-behavior-y: contain;
}

.crm-kanban-card .card-body {
    padding: .85rem;
}
.crm-kanban-card-details {
    display: block;
}

.crm-kanban-card-summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: .65rem;
    padding: .7rem .8rem;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

    .crm-kanban-card-summary::-webkit-details-marker {
        display: none;
    }

    .crm-kanban-card-summary::after {
        content: "+";
        display: grid;
        place-items: center;
        width: 1.7rem;
        height: 1.7rem;
        border-radius: 999px;
        color: var(--farenet-blue);
        background: rgba(5, 42, 121, .08);
        font-weight: 900;
    }

.crm-kanban-card-details[open] .crm-kanban-card-summary {
    border-bottom: 1px solid rgba(217, 225, 236, .85);
}

    .crm-kanban-card-details[open] .crm-kanban-card-summary::after {
        content: "-";
    }

.crm-kanban-card-summary-main {
    display: grid;
    min-width: 0;
    gap: .1rem;
}

.crm-kanban-card-summary .crm-kanban-card-title {
    display: block;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    -webkit-line-clamp: unset;
    -webkit-box-orient: initial;
    line-height: 1.2;
}

.crm-kanban-card .card-body.crm-kanban-card-expanded {
    padding: .85rem;
}

.crm-kanban-card-summary:hover,
.crm-kanban-card-summary:focus {
    background: rgba(5, 42, 121, .04);
}

.crm-kanban-card-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .65rem;
    align-items: start;
}

.crm-kanban-card-title {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    line-height: 1.2;
    word-break: break-word;
}

.crm-kanban-card-badges {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .35rem;
    max-width: 9.5rem;
}

    .crm-kanban-card-badges .badge,
    .crm-kanban-status-row .badge {
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

.crm-kanban-status-row {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-bottom: .75rem;
}

.crm-kanban-details {
    padding: .55rem .65rem;
    border-radius: .85rem;
    background: rgba(5, 42, 121, .06);
}

    .crm-kanban-details summary {
        color: var(--farenet-blue);
        cursor: pointer;
        font-weight: 900;
    }

.crm-mobile-worklist-shell {
    max-width: 720px;
}

@media (max-width: 991.98px) {
    .crm-topbar-form .nav-link {
        padding-left: .9rem;
    }

    .crm-new-menu .dropdown-menu {
        position: static !important;
        transform: none !important;
        box-shadow: none;
        margin-top: .35rem;
        background: rgba(255, 255, 255, .08);
    }

    .crm-new-menu .dropdown-item {
        color: #fff;
    }

    .crm-kanban-card-head {
        grid-template-columns: 1fr;
    }

    .crm-kanban-card-badges {
        align-items: flex-start;
        max-width: none;
    }
    .crm-kanban-card-summary {
        grid-template-columns: minmax(0, 1fr) auto;
    }
}
/* PR-02 Mobile Worklist: payload minimo y DOM liviano para ejecutivo de campo */
.crm-mobile-worklist {
    display: grid;
    gap: .9rem;
    max-width: 760px;
    padding-bottom: 4rem;
}

.crm-mobile-section {
    border: 1px solid var(--crm-border);
    border-radius: 1.25rem;
    background: #fff;
    box-shadow: 0 .55rem 1.5rem rgba(15, 23, 42, .06);
    overflow: hidden;
}

.crm-mobile-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .85rem .95rem;
    background: linear-gradient(135deg, rgba(5, 42, 121, .06), rgba(246, 204, 27, .12));
    border-bottom: 1px solid rgba(217, 225, 236, .8);
}

.crm-mobile-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.1rem;
    min-height: 2.1rem;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: var(--farenet-blue);
    color: #fff;
    font-size: .78rem;
    font-weight: 900;
    white-space: nowrap;
}

.crm-mobile-section-empty {
    padding: .95rem;
    color: #64748b;
    font-weight: 700;
}

.crm-mobile-card-list {
    display: grid;
    gap: .65rem;
    padding: .75rem;
}

.crm-mobile-card {
    display: grid;
    gap: .65rem;
    padding: .8rem;
    border: 1px solid rgba(217, 225, 236, .95);
    border-radius: 1rem;
    background: #fff;
}

    .crm-mobile-card.is-overdue {
        border-color: rgba(220, 38, 38, .28);
        background: linear-gradient(180deg, rgba(254, 242, 242, .72), #fff 54%);
    }

.crm-mobile-card-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .55rem;
}

.crm-mobile-card-title {
    display: -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    margin: 0;
    color: var(--farenet-blue);
    font-size: 1rem;
    font-weight: 900;
    line-height: 1.18;
}

.crm-mobile-card-ruc {
    color: #64748b;
    font-size: .82rem;
    font-weight: 800;
}

.crm-mobile-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    color: #475569;
    font-size: .78rem;
    font-weight: 800;
}

    .crm-mobile-card-meta span {
        padding: .2rem .42rem;
        border-radius: 999px;
        background: #f1f5f9;
    }

.crm-mobile-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem;
}

    .crm-mobile-actions .btn {
        min-height: 2.35rem;
        font-weight: 900;
    }

.crm-mobile-empty {
    max-width: 620px;
}

.crm-mobile-load-more {
    padding: 0 .75rem .85rem;
}

    .crm-mobile-load-more .btn {
        min-height: 2.6rem;
        border-style: dashed;
        font-weight: 900;
    }

@media (max-width: 420px) {
    .crm-mobile-card,
    .crm-mobile-card-list,
    .crm-mobile-section-header {
        padding-inline: .7rem;
    }

    .crm-mobile-actions {
        grid-template-columns: 1fr;
    }
}
/* PR41/PR52 - Agenda movil diaria: compromisos con hora y sin calendario pesado */
.mobile-agenda {
    display: grid;
    gap: .9rem;
    max-width: 760px;
    padding-bottom: 4rem;
}

.agenda-page-header {
    max-width: 760px;
}

.agenda-day-nav,
.agenda-legend,
.agenda-summary {
    border: 1px solid rgba(217, 225, 236, .95);
    border-radius: 1.15rem;
    background: #fff;
    box-shadow: 0 .55rem 1.5rem rgba(15, 23, 42, .06);
}

.agenda-day-nav {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: .55rem;
    padding: .75rem;
}

    .agenda-day-nav strong {
        color: var(--farenet-blue);
        font-size: .9rem;
        font-weight: 900;
        text-align: center;
        text-transform: capitalize;
    }

.agenda-legend {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem .85rem;
    padding: .7rem .85rem;
    color: #475569;
    font-size: .78rem;
    font-weight: 900;
}

    .agenda-legend span {
        display: inline-flex;
        align-items: center;
        gap: .35rem;
    }

.legend-dot {
    display: inline-block;
    width: .65rem;
    height: .65rem;
    border-radius: 999px;
    background: #94a3b8;
}

    .legend-dot.is-overdue {
        background: #dc2626;
    }

    .legend-dot.is-active {
        background: #185fa5;
    }

    .legend-dot.is-planned {
        background: #1d9e75;
    }

    .legend-dot.is-future {
        background: #64748b;
    }

.agenda-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .5rem;
    padding: .75rem;
    color: #475569;
    font-size: .78rem;
    font-weight: 850;
}

    .agenda-summary span {
        display: grid;
        gap: .1rem;
        padding: .55rem;
        border-radius: .9rem;
        background: #f8fafc;
        text-align: center;
    }

    .agenda-summary strong {
        color: var(--farenet-blue);
        font-size: 1.05rem;
        font-weight: 950;
    }

.agenda-list {
    display: grid;
    gap: .75rem;
}

.agenda-card {
    display: grid;
    grid-template-columns: 4.85rem minmax(0, 1fr);
    gap: .85rem;
    padding: .9rem;
    border: 1px solid rgba(217, 225, 236, .95);
    border-left: 5px solid var(--farenet-blue);
    border-radius: 1.15rem;
    background: #fff;
    box-shadow: 0 .55rem 1.5rem rgba(15, 23, 42, .07);
}

    .agenda-card.is-overdue {
        border-left-color: #dc2626;
        background: linear-gradient(180deg, rgba(254, 242, 242, .72), #fff 58%);
    }

    .agenda-card.is-active {
        border-left-color: #185fa5;
        background: linear-gradient(180deg, rgba(219, 234, 254, .72), #fff 58%);
    }

    .agenda-card.is-planned {
        border-left-color: #1d9e75;
    }

    .agenda-card.is-future {
        border-left-color: #64748b;
        background: linear-gradient(180deg, rgba(248, 250, 252, .92), #fff 58%);
    }

.agenda-time {
    display: grid;
    align-content: start;
    gap: .15rem;
    padding: .5rem .35rem;
    border-radius: .9rem;
    background: rgba(5, 42, 121, .07);
    color: var(--farenet-blue);
    text-align: center;
}

    .agenda-time strong {
        font-size: 1.05rem;
        font-weight: 950;
        line-height: 1;
    }

    .agenda-time span {
        color: #64748b;
        font-size: .78rem;
        font-weight: 900;
    }

.agenda-content {
    display: grid;
    gap: .5rem;
    min-width: 0;
}

.agenda-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .55rem;
    min-width: 0;
}

    .agenda-title-row h2 {
        display: -webkit-box;
        overflow: hidden;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        margin: 0;
        color: var(--farenet-blue);
        font-size: 1rem;
        font-weight: 950;
        line-height: 1.18;
        word-break: break-word;
    }

.agenda-ruc {
    color: #64748b;
    font-size: .78rem;
    font-weight: 850;
}

.agenda-badge {
    flex: 0 0 auto;
    max-width: 7rem;
    overflow: hidden;
    padding: .25rem .5rem;
    border-radius: 999px;
    background: rgba(29, 158, 117, .1);
    color: #11664c;
    font-size: .72rem;
    font-weight: 900;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.agenda-badge-danger {
    background: #fee2e2;
    color: #991b1b;
}

.agenda-badge-active {
    background: #dbeafe;
    color: #1e3a8a;
}

.agenda-badge-future {
    background: #e2e8f0;
    color: #334155;
}

.agenda-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    color: #475569;
    font-size: .78rem;
    font-weight: 850;
}

    .agenda-meta span {
        padding: .2rem .42rem;
        border-radius: 999px;
        background: #f1f5f9;
    }

.agenda-actions {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem;
}

    .agenda-actions .btn {
        min-height: 2.75rem;
        font-weight: 900;
    }

@media (max-width: 420px) {
    .agenda-page-header .btn,
    .agenda-day-nav .btn,
    .agenda-actions .btn {
        min-height: 48px;
    }

    .agenda-day-nav,
    .agenda-summary {
        grid-template-columns: 1fr;
    }

    .agenda-card {
        grid-template-columns: 1fr;
        padding: .8rem;
    }

    .agenda-time {
        display: flex;
        align-items: center;
        justify-content: space-between;
        text-align: left;
    }

    .agenda-title-row {
        display: grid;
    }

    .agenda-actions {
        grid-template-columns: 1fr;
    }
}
.complete-activity-header {
    max-width: 760px;
}

.crm-mobile-form {
    display: grid;
    gap: 1rem;
    max-width: 760px;
}

.form-card {
    display: grid;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid rgba(217, 225, 236, .95);
    border-radius: 1.15rem;
    background: #fff;
    box-shadow: 0 .55rem 1.5rem rgba(15, 23, 42, .07);
}

.form-field {
    display: grid;
    gap: .35rem;
}

    .form-field .form-label {
        margin: 0;
        color: var(--farenet-blue);
        font-size: .86rem;
        font-weight: 900;
    }

.next-step-box {
    border-left: 5px solid var(--farenet-yellow);
}

.next-step-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.next-step-toggle {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    min-height: 48px;
    margin: 0;
    padding: .45rem .65rem;
    border-radius: 999px;
    background: rgba(5, 42, 121, .07);
    color: var(--farenet-blue);
    font-weight: 900;
}

.next-step-fields {
    display: grid;
    gap: .85rem;
}

.next-step-terminal-alert {
    padding: .75rem .85rem;
    border-radius: 1rem;
    background: #ecfdf5;
    color: #065f46;
    font-size: .88rem;
    font-weight: 850;
}

    .next-step-fields[hidden],
    .next-step-terminal-alert[hidden] {
        display: none !important;
    }

.mobile-sticky-actions {
    position: sticky;
    bottom: 0;
    z-index: 20;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
    gap: .65rem;
    padding: .75rem 0 calc(.75rem + env(safe-area-inset-bottom));
    background: linear-gradient(180deg, rgba(245, 247, 251, 0), var(--crm-bg) 32%, var(--crm-bg));
}

    .mobile-sticky-actions .btn {
        min-height: 52px;
        font-weight: 950;
    }

@media (max-width: 420px) {
    .next-step-header {
        display: grid;
    }

    .next-step-toggle {
        justify-content: center;
        width: 100%;
    }

    .mobile-sticky-actions {
        grid-template-columns: 1fr;
    }
}
/* Login / Auth layout */
.auth-body {
    padding-bottom: 0;
}

.auth-main {
    min-height: 100dvh;
}

.auth-body .auth-shell {
    min-height: 100dvh;
    padding: clamp(1.25rem, 4vw, 2.5rem);
}

@media (max-width: 575.98px) {
    .auth-body .auth-shell {
        align-items: center;
        padding: 1.25rem;
    }

    .auth-card {
        max-width: 100%;
        padding: 1.75rem 1.35rem;
        border-radius: 1.15rem;
    }

    .auth-brand {
        margin-bottom: 1.6rem;
    }

        .auth-brand h1 {
            font-size: 1.3rem;
        }
}
/* =========================================================
   Auth / Login - FARENET CRM Campo
   ========================================================= */

.auth-body {
    padding-bottom: 0;
}

.auth-main {
    min-height: 100dvh;
}

.auth-body .auth-shell,
.auth-shell {
    min-height: 100dvh;
    padding: clamp(1.25rem, 4vw, 2.5rem);
    display: flex;
    align-items: center;
    justify-content: center;
}

.auth-card-login {
    width: 100%;
    max-width: 430px;
    padding: clamp(1.75rem, 4vw, 2.35rem);
    border-radius: 1.35rem;
    background: rgba(255, 255, 255, .97);
    border: 1px solid rgba(217, 225, 236, .85);
    box-shadow: 0 22px 55px rgba(15, 23, 42, .12), 0 6px 16px rgba(5, 42, 121, .06);
}

.auth-brand-login {
    display: block;
    text-align: center;
    margin-bottom: 2rem;
}

.auth-logo-word {
    display: inline-block;
    color: var(--farenet-yellow);
    background: var(--farenet-blue);
    font-family: "FarenetRockwell", Rockwell, "Rockwell Extra Bold", Georgia, serif;
    font-size: clamp(1.45rem, 5vw, 1.9rem);
    font-weight: 800;
    letter-spacing: .055em;
    line-height: 1;
    padding: .55rem 1rem .45rem;
    border-radius: .85rem;
    box-shadow: 0 10px 24px rgba(5, 42, 121, .18);
}

.auth-system-name {
    margin-top: 1rem;
    color: var(--farenet-blue);
    font-size: clamp(1.45rem, 5vw, 1.8rem);
    font-weight: 950;
    line-height: 1.05;
}

.auth-brand-login p {
    margin: .35rem 0 0;
    color: var(--crm-muted);
    font-size: .92rem;
}

.auth-form {
    display: grid;
    gap: 1.15rem;
}

.auth-field {
    display: grid;
    gap: .45rem;
}

    .auth-field label {
        margin: 0;
        color: #5f6f88;
        font-size: .78rem;
        font-weight: 900;
        letter-spacing: .09em;
        text-transform: uppercase;
    }

    .auth-field input {
        display: block;
        width: 100%;
        min-height: 54px;
        padding: .85rem 1rem;
        border: 1.5px solid var(--crm-border);
        border-radius: 1rem;
        background: #fff;
        color: var(--crm-text);
        font-size: 1rem;
        box-shadow: inset 0 1px 0 rgba(15, 23, 42, .02);
        transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
    }

        .auth-field input:focus {
            outline: none;
            border-color: var(--farenet-blue);
            box-shadow: 0 0 0 .22rem rgba(5, 42, 121, .14), inset 0 1px 0 rgba(15, 23, 42, .02);
        }

    .auth-field span {
        color: #b42318;
        font-size: .82rem;
        font-weight: 700;
    }

.auth-submit {
    margin-top: .35rem;
    min-height: 56px;
    border-radius: 1rem;
    font-size: 1rem;
    font-weight: 950;
    color: var(--farenet-blue);
    background: var(--farenet-yellow);
    border: 0;
    box-shadow: 0 14px 26px rgba(246, 204, 27, .28);
}

    .auth-submit:hover,
    .auth-submit:focus {
        background: #ffd735;
        color: var(--farenet-blue);
        transform: translateY(-1px);
    }

    .auth-submit:active {
        transform: translateY(0);
    }

.auth-card-login .validation-summary {
    margin-bottom: .25rem;
    padding: .85rem 1rem;
    border-radius: 1rem;
    background: #fff1f2;
    color: #991b1b;
    border: 1px solid #fecdd3;
    font-size: .88rem;
    font-weight: 700;
}

@media (max-width: 575.98px) {
    .auth-body .auth-shell,
    .auth-shell {
        align-items: center;
        padding: 1rem;
    }

    .auth-card-login {
        max-width: 100%;
        padding: 1.65rem 1.15rem;
        border-radius: 1.2rem;
    }

    .auth-brand-login {
        margin-bottom: 1.75rem;
    }

    .auth-logo-word {
        font-size: 1.45rem;
        border-radius: .8rem;
    }

    .auth-system-name {
        font-size: 1.45rem;
    }

    .auth-brand-login p {
        font-size: .84rem;
    }

    .auth-field input {
        min-height: 52px;
        border-radius: .95rem;
    }

    .auth-submit {
        min-height: 54px;
    }
}
/* PR51 - Worklist operativa sin duplicar Agenda */
.crm-mobile-card.is-activity {
    border-left: .35rem solid var(--farenet-yellow);
}

.crm-mobile-card.is-prospect {
    border-left: .35rem solid rgba(5, 42, 121, .16);
}

.crm-mobile-card .crm-mobile-reason {
    color: var(--farenet-blue);
    background: rgba(5, 42, 121, .08);
}

.crm-mobile-section[data-section="due-today-unscheduled"] .crm-mobile-section-header {
    background: linear-gradient(135deg, rgba(5, 42, 121, .06), rgba(29, 158, 117, .12));
}

.crm-mobile-section[data-section="high-score-no-agenda"] .crm-mobile-section-header {
    background: linear-gradient(135deg, rgba(5, 42, 121, .08), rgba(246, 204, 27, .18));
}
/* PR53 - Activity entry two-mode form */
.activity-entry-card {
    padding: 1rem;
    border: 1px solid rgba(217, 225, 236, .95);
    border-radius: 1.25rem;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

.activity-entry-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.activity-mode-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
    padding: .35rem;
    border: 1px solid rgba(217, 225, 236, .95);
    border-radius: 999px;
    background: #f1f5f9;
}

.mode-tab {
    min-height: 48px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #475569;
    font-weight: 900;
}

    .mode-tab.is-active {
        background: var(--farenet-blue);
        color: #fff;
        box-shadow: 0 .7rem 1.4rem rgba(5, 42, 121, .22);
    }

.mode-fields {
    display: grid;
    gap: 1rem;
}

.mode-callout {
    padding: .85rem 1rem;
    border-radius: 1rem;
    font-size: .9rem;
    font-weight: 850;
}

    .mode-callout.success {
        background: #ecfdf5;
        color: #065f46;
    }

    .mode-callout.info {
        background: #eff6ff;
        color: #1e3a8a;
    }

    .mode-callout[hidden],
    [data-mode-panel][hidden],
    [data-next-step-surface-panel][hidden],
    [data-next-step-surface-callout][hidden] {
        display: none !important;
    }

.next-step-surface-tabs {
    border-radius: 1rem;
}

@media (max-width: 480px) {
    .activity-mode-tabs {
        grid-template-columns: 1fr;
        border-radius: 1.1rem;
    }

    .mode-tab {
        border-radius: .9rem;
    }
}

.secure-context-banner {
    position: sticky;
    top: 0;
    z-index: 1100;
    padding: .85rem 1rem;
    color: #4a3200;
    background: #fff3cd;
    border-bottom: 1px solid #f6cc1b;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .12);
    font-weight: 700;
}

    .secure-context-banner strong {
        color: #7a4d00;
    }

form[aria-busy="true"] button[type="submit"],
form[aria-busy="true"] input[type="submit"] {
    cursor: wait;
}
.nav-link-with-counter {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.nav-counter,
.bottom-nav-counter {
    display: inline-grid;
    min-width: 1.35rem;
    min-height: 1.35rem;
    padding: 0 .35rem;
    place-items: center;
    border-radius: 999px;
    background: var(--farenet-yellow);
    color: var(--farenet-blue);
    font-size: .72rem;
    font-weight: 900;
    line-height: 1;
}

.bottom-nav-counter {
    position: absolute;
    top: .25rem;
    right: .35rem;
    min-width: 1.15rem;
    min-height: 1.15rem;
    font-size: .65rem;
    box-shadow: 0 0 0 2px rgba(3, 29, 85, .96);
}

.crm-bottom-nav a {
    position: relative;
}

.bottom-nav-more {
    position: relative;
    min-width: 0;
}

    .bottom-nav-more summary {
        display: grid;
        place-items: center;
        min-height: 3rem;
        width: 100%;
        border-radius: 1rem;
        color: rgba(255, 255, 255, .88);
        font-size: .78rem;
        font-weight: 900;
        cursor: pointer;
        list-style: none;
        user-select: none;
    }

        .bottom-nav-more summary::-webkit-details-marker {
            display: none;
        }

        .bottom-nav-more[open] summary,
        .bottom-nav-more summary:hover,
        .bottom-nav-more summary:focus {
            color: var(--farenet-blue);
            background: var(--farenet-yellow);
        }

.bottom-nav-more-menu {
    position: absolute;
    right: 0;
    bottom: calc(100% + .55rem);
    display: grid;
    gap: .35rem;
    min-width: min(18rem, calc(100vw - 2rem));
    padding: .55rem;
    border-radius: 1rem;
    background: rgba(3, 29, 85, .98);
    box-shadow: 0 18px 38px rgba(3, 29, 85, .34);
}

    .bottom-nav-more-menu a {
        justify-content: start;
        place-items: center start;
        min-height: 2.75rem;
        padding-inline: .85rem;
        text-align: left;
    }
/* PR-06 - Acciones de contacto compartidas y agenda accionable */
.contact-actions {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    flex-wrap: wrap;
}

    .contact-actions .contact-primary {
        min-width: 5.75rem;
    }

.contact-actions-menu {
    position: relative;
}

    .contact-actions-menu summary {
        list-style: none;
        cursor: pointer;
    }

        .contact-actions-menu summary::-webkit-details-marker {
            display: none;
        }

.contact-actions-menu-content {
    position: absolute;
    right: 0;
    z-index: 30;
    display: grid;
    gap: .25rem;
    min-width: 10.5rem;
    padding: .5rem;
    border: 1px solid rgba(217, 225, 236, .95);
    border-radius: .9rem;
    background: #fff;
    box-shadow: 0 1rem 2rem rgba(15, 23, 42, .16);
}

    .contact-actions-menu-content a,
    .contact-actions-menu-content button {
        width: 100%;
        min-height: 2.4rem;
        border: 0;
        border-radius: .7rem;
        padding: .45rem .65rem;
        color: #0f172a;
        background: #f8fafc;
        font-weight: 800;
        text-align: left;
        text-decoration: none;
    }

        .contact-actions-menu-content a:hover,
        .contact-actions-menu-content button:hover,
        .contact-actions-menu-content button.is-copied {
            background: rgba(5, 42, 121, .1);
            color: var(--farenet-blue);
        }

.agenda-actions {
    align-items: center;
}

    .agenda-actions form {
        margin: 0;
    }

.agenda-inline-details {
    position: relative;
}

    .agenda-inline-details summary {
        list-style: none;
        cursor: pointer;
    }

        .agenda-inline-details summary::-webkit-details-marker {
            display: none;
        }

.agenda-inline-form {
    position: absolute;
    right: 0;
    z-index: 25;
    display: grid;
    gap: .45rem;
    min-width: min(18rem, calc(100vw - 2rem));
    padding: .7rem;
    border: 1px solid rgba(217, 225, 236, .95);
    border-radius: 1rem;
    background: #fff;
    box-shadow: 0 1rem 2.2rem rgba(15, 23, 42, .18);
}

    .agenda-inline-form label {
        display: grid;
        gap: .2rem;
        color: #475569;
        font-size: .78rem;
        font-weight: 850;
    }

.duration-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.duration-chip {
    min-height: 2.4rem;
    border: 1px solid rgba(5, 42, 121, .18);
    border-radius: 999px;
    padding: .35rem .8rem;
    color: var(--farenet-blue);
    background: #fff;
    font-weight: 900;
}

    .duration-chip:hover,
    .duration-chip:focus {
        background: rgba(246, 204, 27, .25);
    }

.availability-message {
    padding: .75rem .9rem;
    border: 1px solid rgba(220, 38, 38, .18);
    border-radius: .9rem;
    color: #991b1b;
    background: #fef2f2;
    font-weight: 850;
}

@media (max-width: 576px) {
    .contact-actions,
    .agenda-actions {
        width: 100%;
    }

        .contact-actions .contact-primary,
        .contact-actions-menu,
        .contact-actions-menu summary,
        .agenda-actions > .btn,
        .agenda-actions > form,
        .agenda-actions > form > button,
        .agenda-inline-details,
        .agenda-inline-details summary {
            width: 100%;
        }

    .contact-actions-menu-content,
    .agenda-inline-form {
        left: 0;
        right: auto;
        width: 100%;
    }
}
/* PR-08 - Cartera server-side y detalle orientado a accion */
.prospect-filter-card {
    position: sticky;
    top: .75rem;
    z-index: 5;
}

.portfolio-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin: 0 0 1rem;
    padding: .75rem 1rem;
    border: 1px solid rgba(5, 42, 121, .12);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .86);
    font-weight: 700;
}

.portfolio-card-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 1rem;
    align-items: center;
}

.portfolio-metrics,
.portfolio-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .5rem;
}

.best-next-action {
    margin-bottom: 1rem;
    border: 1px solid rgba(5, 42, 121, .14);
    border-left: .35rem solid var(--farenet-blue, #052a79);
    border-radius: 1.25rem;
    background: linear-gradient(135deg, rgba(5, 42, 121, .06), rgba(246, 204, 27, .08));
    box-shadow: 0 .75rem 1.8rem rgba(15, 23, 42, .08);
}

.best-next-action-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
}

.best-next-action-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    margin-bottom: .35rem;
    padding: .2rem .65rem;
    border-radius: 999px;
    background: rgba(5, 42, 121, .12);
    color: var(--farenet-blue, #052a79);
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.best-next-action-buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
}

.best-next-action-warning {
    border-left-color: #f59e0b;
}

.best-next-action-danger {
    border-left-color: #dc3545;
}

.best-next-action-success {
    border-left-color: #198754;
}

.secondary-detail {
    border: 1px solid rgba(5, 42, 121, .12);
    border-radius: 1rem;
    background: #fff;
    padding: .85rem;
}

    .secondary-detail + .secondary-detail {
        margin-top: .75rem;
    }

    .secondary-detail summary {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: .75rem;
        cursor: pointer;
        font-weight: 900;
        color: var(--farenet-blue, #052a79);
        list-style: none;
    }

        .secondary-detail summary::-webkit-details-marker {
            display: none;
        }

        .secondary-detail summary::after {
            content: "+";
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 1.6rem;
            height: 1.6rem;
            border-radius: 999px;
            background: rgba(5, 42, 121, .08);
        }

    .secondary-detail[open] summary::after {
        content: "-";
    }

@media (max-width: 768px) {
    .prospect-filter-card {
        position: static;
    }

    .portfolio-card-grid,
    .best-next-action-grid {
        grid-template-columns: 1fr;
    }

    .portfolio-metrics,
    .portfolio-actions,
    .best-next-action-buttons {
        justify-content: stretch;
        width: 100%;
    }

        .portfolio-actions > *,
        .best-next-action-buttons > * {
            flex: 1 1 100%;
        }

        .portfolio-actions .btn,
        .best-next-action-buttons .btn {
            width: 100%;
        }
}
/* PR-09 - Validacion con ubicacion, decision unica y filtros */
.validation-filter-card {
    border: 1px solid rgba(5, 42, 121, .12);
    background: rgba(255, 255, 255, .92);
}

.validation-pending-card {
    border-left: .35rem solid rgba(5, 42, 121, .55) !important;
}

.validation-pending-card-warning {
    border-left-color: #f59e0b !important;
}

.validation-location-inline {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
}

.validation-location-card {
    border: 1px solid rgba(5, 42, 121, .12);
    border-left: .35rem solid rgba(5, 42, 121, .4) !important;
}

    .validation-location-card.exact {
        border-left-color: #198754 !important;
    }

    .validation-location-card.broad {
        border-left-color: #f59e0b !important;
    }

    .validation-location-card.weak,
    .validation-location-card.manualonly {
        border-left-color: #dc3545 !important;
    }

.validation-map-box {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .75rem;
    align-items: center;
    padding: .85rem;
    border: 1px dashed rgba(5, 42, 121, .22);
    border-radius: 1rem;
    background: rgba(5, 42, 121, .04);
}

.validation-decision-card {
    position: sticky;
    top: .75rem;
    border: 1px solid rgba(5, 42, 121, .14);
    box-shadow: 0 1rem 2rem rgba(15, 23, 42, .08);
}

.validation-decision-options {
    display: grid;
    gap: .65rem;
}

.validation-decision-option {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .75rem;
    align-items: start;
    padding: .85rem;
    border: 1px solid rgba(5, 42, 121, .14);
    border-radius: 1rem;
    cursor: pointer;
    background: #fff;
}

    .validation-decision-option:hover,
    .validation-decision-option:focus-within {
        border-color: rgba(5, 42, 121, .35);
        background: rgba(5, 42, 121, .04);
    }

    .validation-decision-option input {
        width: 1.2rem;
        height: 1.2rem;
        margin-top: .2rem;
    }

    .validation-decision-option small {
        display: block;
        color: #6c757d;
    }

    .validation-decision-option.disabled {
        cursor: not-allowed;
        opacity: .62;
        background: #f8f9fa;
    }

@media (max-width: 992px) {
    .validation-decision-card {
        position: static;
    }
}

@media (max-width: 576px) {
    .validation-map-box {
        grid-template-columns: 1fr;
    }

        .validation-map-box .btn,
        .validation-filter-card .btn {
            width: 100%;
        }
}
.office-decision-card {
    border-left: .35rem solid var(--farenet-yellow) !important;
}

.office-decision-form {
    padding: 1rem;
    border: 1px solid var(--crm-border);
    border-radius: 1rem;
    background: rgba(248, 250, 252, .86);
}

    .office-decision-form.confirm {
        border-color: rgba(25, 135, 84, .24);
    }

    .office-decision-form.observe {
        border-color: rgba(220, 53, 69, .24);
    }

.crm-technical-details {
    border: 1px solid var(--crm-border);
    border-radius: 1rem;
    background: #fff;
}

    .crm-technical-details > summary {
        cursor: pointer;
        padding: .85rem 1rem;
        color: var(--farenet-blue);
        font-weight: 800;
        list-style-position: inside;
    }

    .crm-technical-details[open] > summary {
        border-bottom: 1px solid var(--crm-border);
    }

    .crm-technical-details .crm-json {
        margin: 1rem;
    }
/* PR-07 cartera de cuentas actuales */
.account-filter-panel {
    margin-bottom: 1.25rem;
}

.account-card-list {
    display: grid;
    gap: 1rem;
}

.account-card {
    background: var(--crm-surface);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-radius);
    box-shadow: var(--crm-shadow-soft);
    padding: 1rem;
}

.account-card-main {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.account-card-actions {
    flex: 0 0 auto;
}

.account-signal-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin: 1rem 0 0;
}

    .account-signal-grid div {
        background: #f8fafc;
        border: 1px solid var(--crm-border);
        border-radius: 1rem;
        padding: .75rem;
    }

    .account-signal-grid dt {
        color: var(--crm-muted);
        font-size: .78rem;
        font-weight: 700;
        text-transform: uppercase;
    }

    .account-signal-grid dd {
        margin: 0;
        font-weight: 700;
    }

.account-signal {
    display: inline-flex;
    border-radius: 999px;
    padding: .2rem .55rem;
    font-size: .78rem;
    font-weight: 800;
}

.signal-muted {
    background: #eef2f7;
    color: #475467;
}

.signal-info {
    background: #e0f2fe;
    color: #075985;
}

.signal-medium {
    background: #fef3c7;
    color: #92400e;
}

.signal-high {
    background: #ffedd5;
    color: #9a3412;
}

.signal-critical {
    background: #fee2e2;
    color: #991b1b;
}

.account-detail-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.account-next-action {
    margin-bottom: 1.25rem;
}

.account-instrument-table {
    background: var(--crm-surface);
    border: 1px solid var(--crm-border);
    border-radius: var(--crm-radius);
    overflow: hidden;
}

.account-timeline {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .85rem;
}

    .account-timeline li {
        display: grid;
        grid-template-columns: 18px minmax(0, 1fr);
        gap: .75rem;
    }

.account-timeline-marker {
    width: 12px;
    height: 12px;
    margin-top: .55rem;
    border-radius: 999px;
    background: var(--farenet-yellow);
    box-shadow: 0 0 0 4px rgba(246, 204, 27, .18);
}

.account-timeline-card {
    background: var(--crm-surface);
    border: 1px solid var(--crm-border);
    border-radius: 1rem;
    padding: .85rem;
}

.crm-pagination {
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
    margin-top: 1rem;
}

@media (max-width: 768px) {
    .account-card-main,
    .crm-pagination {
        flex-direction: column;
        align-items: stretch;
    }

    .account-card-actions .btn {
        width: 100%;
    }

    .account-signal-grid,
    .account-detail-grid {
        grid-template-columns: 1fr;
    }
}

.account-alert-list {
    display: grid;
    gap: .75rem;
}

.account-alert-card {
    border-left: 4px solid var(--farenet-yellow);
}
.account-inspection-signal-card {
    border-left: 4px solid rgba(5, 42, 121, 0.24);
}
/* PR-11: alertas de cartera accionables */
.crm-mobile-alert-card {
    border-left: 4px solid rgba(5, 42, 121, .35);
}

    .crm-mobile-alert-card.is-critical {
        border-left-color: #dc3545;


        .crm-mobile-alert-card.is-high {
            border-left-color: #ffc107;
        }

        .crm-mobile-alert-card.is-medium {
            border-left-color: #0dcaf0;
        }

        .account-alert-actions .account-alert-resolution {
            min-width: min(100%, 16rem);
        }
        /* PR24 - cartera real: panel operativo y columnas moviles */
        .account-sync-status-panel {
            margin-top: 1rem;
        }

        .account-sync-status-card {
            border-left: 4px solid var(--farenet-yellow, #f6cc1b);
        }

        .account-sync-metrics {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: .5rem;
            min-width: min(100%, 360px);
        }

            .account-sync-metrics span {
                background: #f8f9fa;
                border-radius: .75rem;
                padding: .65rem .75rem;
            }

        @media (max-width: 575.98px) {
            .account-sync-metrics {
                grid-template-columns: 1fr;
            }
        }
        /* PR54 - listas reducidas y reportes comerciales */
        .account-card-collapsible {
            padding: 0;
        }

            .account-card-collapsible > summary {
                list-style: none;
                cursor: pointer;
                padding: 1rem;
            }

                .account-card-collapsible > summary::-webkit-details-marker {
                    display: none;
                }

        .account-card-summary {
            align-items: center;
        }

        .account-expand-hint {
            color: var(--crm-blue, #052A79);
            font-weight: 700;
            white-space: nowrap;
        }

        .account-card-collapsible[open] .account-expand-hint {
            color: #6c757d;
        }

        .account-card-expanded {
            border-top: 1px solid rgba(5, 42, 121, .08);
            padding: 1rem;
        }

        .account-unassigned-filter {
            min-height: 2.75rem;
            display: flex;
            align-items: center;
            gap: .5rem;
        }

        .agenda-card-collapsible {
            padding: 0;
        }

            .agenda-card-collapsible > summary {
                list-style: none;
                cursor: pointer;
            }

                .agenda-card-collapsible > summary::-webkit-details-marker {
                    display: none;
                }

        .agenda-summary-row {
            display: grid;
            grid-template-columns: auto minmax(0, 1fr) auto;
            gap: .75rem;
            align-items: center;
            padding: 1rem;
        }

        .agenda-time-compact {
            display: flex;
            flex-direction: column;
            line-height: 1.1;
            color: var(--crm-blue, #052A79);
        }

        .agenda-summary-main {
            min-width: 0;
        }

            .agenda-summary-main strong,
            .agenda-summary-main small {
                display: block;
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }

        .agenda-expanded-content {
            border-top: 1px solid rgba(5, 42, 121, .08);
            padding: 1rem;
        }

        .report-grid {
            display: grid;
            gap: 1rem;
        }

        .report-block {
            overflow: hidden;
        }

        .report-metric-list {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
            gap: .75rem;
        }

        .report-metric-card {
            border: 1px solid rgba(5, 42, 121, .1);
            border-radius: 1rem;
            padding: .85rem;
            background: #fff;
        }

            .report-metric-card strong,
            .report-metric-card small,
            .report-metric-values span {
                display: block;
            }

        .report-metric-values {
            margin-top: .5rem;
            color: #5f6b7a;
            font-size: .9rem;
        }

        .report-progress {
            height: .45rem;
            margin-top: .65rem;
        }

        .report-executive-detail > summary {
            cursor: pointer;
            color: var(--crm-blue, #052A79);
            font-weight: 700;
        }