/**
 * SFE UI widgets — restyle existing markup (ERP assets_backend).
 * Load after app.css. Do not duplicate per-module shells.
 * cache-bust: sfe-ui-pro-20260817v
 */

/* ----- Global typography ----- */
body,
body.o_web_client,
.o_web_client {
    font-family: var(--sfe-font-sans);
    font-size: var(--sfe-font-size);
    line-height: var(--sfe-line);
    color: var(--sfe-text);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4,
.crm-dashboard-header h2,
.o_control_panel .o_cp_title,
.list-view > .list-header h1,
.list-view > .list-header h2 {
    font-family: var(--sfe-font-display);
    letter-spacing: var(--sfe-letter-tight);
    color: var(--sfe-navy);
    font-weight: 600;
}

/* ----- Buttons ----- */
.btn,
a.btn,
button.btn,
input[type="submit"].btn,
input[type="button"].btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 16px;
    min-height: 36px;
    border: 1px solid transparent;
    border-radius: var(--sfe-radius-sm);
    font-family: var(--sfe-font-sans);
    font-size: var(--sfe-font-size-sm);
    font-weight: 500;
    line-height: 1.2;
    cursor: pointer;
    text-decoration: none !important;
    box-sizing: border-box;
    white-space: nowrap;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.btn-primary,
a.btn-primary,
.o_form_view .btn-primary,
.list-view .btn-primary,
.sfe-module-shell__toolbar .btn-primary,
.crm-dashboard-actions .btn-primary {
    background: var(--sfe-primary);
    color: var(--sfe-on-accent, #fff) !important;
    border-color: var(--sfe-primary);
    box-shadow: var(--sfe-shadow-primary);
}
.btn-primary:hover,
a.btn-primary:hover {
    background: var(--sfe-primary-dark);
    border-color: var(--sfe-primary-dark);
    color: var(--sfe-on-accent, #fff) !important;
    box-shadow: 0 2px 8px rgba(0, 86, 204, 0.28);
}
.btn-secondary,
.btn-default,
a.btn-secondary,
a.btn-default,
.o_form_view .btn-secondary,
.crm-dashboard-actions .btn-secondary,
.crm-dashboard-actions a.btn-secondary {
    background: var(--sfe-surface) !important;
    color: var(--gray-700) !important;
    border: 1px solid var(--sfe-border-strong) !important;
    box-shadow: 0 1px 1px rgba(30, 43, 60, 0.04);
}
.btn-secondary:hover,
.btn-default:hover,
a.btn-secondary:hover,
.crm-dashboard-actions .btn-secondary:hover {
    background: var(--sfe-surface-muted) !important;
    color: var(--sfe-navy) !important;
    border-color: color-mix(in srgb, var(--sfe-primary) 35%, var(--sfe-border-strong)) !important;
}
.btn-success { background: var(--sfe-success); color: #fff; border-color: var(--sfe-success); }
.btn-danger { background: var(--sfe-danger); color: #fff; border-color: var(--sfe-danger); padding: 8px 16px; }
.btn-sm,
a.btn-sm {
    padding: 6px 12px;
    min-height: 32px;
    font-size: 12.5px;
}
.btn-icon {
    width: 32px;
    height: 32px;
    min-height: 32px;
    padding: 0;
    border-radius: 6px;
    border: 1px solid var(--sfe-border);
    background: var(--sfe-surface);
    color: var(--gray-600);
}

/* ----- Fields ----- */
.form-control,
.form-select,
select.form-control,
textarea.form-control,
.o_form_view .form-control,
.o_form_sheet input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not(.btn),
.o_form_sheet select,
.o_form_sheet textarea {
    width: 100%;
    min-height: var(--sfe-control-height);
    height: var(--sfe-control-height);
    padding: var(--sfe-control-pad-y) var(--sfe-control-pad-x);
    border: 1px solid var(--sfe-border-strong);
    border-radius: var(--sfe-radius-sm);
    font-family: var(--sfe-font-sans);
    font-size: var(--sfe-font-size);
    color: var(--sfe-text);
    background: var(--sfe-surface);
    box-sizing: border-box;
}
.o_form_sheet textarea,
textarea.form-control {
    min-height: 88px;
    height: auto;
}
.form-control:focus,
.o_form_sheet input:focus,
.o_form_sheet select:focus,
.o_form_sheet textarea:focus {
    outline: none;
    border-color: var(--sfe-primary);
    box-shadow: 0 0 0 3px var(--sfe-primary-light);
}
.form-group label,
.o_form_view label,
.o_form_sheet .o_form_label {
    font-size: var(--sfe-font-size-sm);
    font-weight: 500;
    color: var(--gray-700);
}
input[type="checkbox"],
.o_form_view input[type="checkbox"],
.o_checkbox input {
    width: 16px;
    height: 16px;
    accent-color: var(--sfe-primary);
    cursor: pointer;
}

/* ----- Form sheet / cards ----- */
.o_form_sheet,
.form-card,
.o_form_view .o_form_sheet {
    background: var(--sfe-surface);
    border: 1px solid var(--sfe-border);
    border-radius: var(--sfe-radius-lg);
    box-shadow: var(--sfe-shadow);
    padding: var(--sfe-space-5) var(--sfe-space-6);
    box-sizing: border-box;
}
.card,
.o_kanban_record {
    background: var(--sfe-surface);
    border: 1px solid var(--sfe-border);
    border-radius: var(--sfe-radius);
    box-shadow: var(--sfe-shadow-card);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.card:hover,
.o_kanban_record:hover {
    box-shadow: var(--sfe-shadow-card-hover);
}

/* ----- Tables / list toolbar ----- */
.data-table,
.o_list_view table,
.list-view table {
    width: 100%;
    background: var(--sfe-surface);
    border-collapse: collapse;
    border-radius: var(--sfe-radius);
    font-family: var(--sfe-font-sans);
    font-variant-numeric: tabular-nums;
}
.data-table th,
.o_list_view th,
.list-view table th {
    padding: var(--sfe-row-pad-y) var(--sfe-row-pad-x);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.045em;
    color: var(--sfe-text-muted);
    background: var(--sfe-surface-muted);
    border-bottom: 1px solid var(--sfe-border);
    line-height: var(--sfe-line-tight);
}
.data-table td,
.o_list_view td,
.list-view table td {
    padding: var(--sfe-row-pad-y) var(--sfe-row-pad-x);
    border-bottom: 1px solid var(--gray-100);
    font-size: var(--sfe-font-size-sm);
    line-height: var(--sfe-line-tight);
    color: var(--sfe-text);
    vertical-align: middle;
}
.data-table tbody tr:hover,
.o_list_view tbody tr:hover,
.list-view table tbody tr:hover {
    background: color-mix(in srgb, var(--sfe-surface-muted) 88%, var(--sfe-primary-light));
}
.data-table tbody tr:last-child td,
.o_list_view tbody tr:last-child td {
    border-bottom: 0;
}
.list-toolbar,
.o_control_panel,
.sfe-module-shell__toolbar,
.list-view > .list-header,
.sfe-doc-list-view .list-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--sfe-space-3);
    margin-bottom: var(--sfe-space-5);
}

/* ----- Pills / module nav (patrón Contabilidad) ----- */
.discuss-module-nav-item,
.sfe-module-shell > [class*="-module-nav"] .discuss-module-nav-item,
.sfe-module-shell > .module-subnav .btn,
.discuss-module-nav-group-toggle.discuss-module-nav-item {
    border-radius: var(--sfe-radius-pill);
    min-height: 30px;
    padding: 4px 11px;
    font-size: 12.5px;
    font-weight: 500;
    font-family: var(--sfe-font-sans);
    color: var(--sfe-text-muted);
    text-decoration: none;
    letter-spacing: 0.01em;
    transition: background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.discuss-module-nav-item:hover,
.sfe-module-shell > [class*="-module-nav"] .discuss-module-nav-item:hover,
.sfe-module-shell > .module-subnav .btn:hover {
    color: var(--sfe-navy);
    background: rgba(255, 255, 255, 0.58);
}
.discuss-module-nav-item.is-active,
.sfe-module-shell > [class*="-module-nav"] .discuss-module-nav-item.is-active,
.sfe-module-shell > .module-subnav .btn-primary {
    color: var(--sfe-primary-dark);
    font-weight: 600;
    background: #fff;
    box-shadow:
        0 1px 3px rgba(30, 43, 60, 0.08),
        inset 0 0 0 1px color-mix(in srgb, var(--sfe-primary) 32%, transparent),
        inset 0 -1px 0 color-mix(in srgb, var(--sfe-primary) 12%, transparent);
}

/* ----- Module shell: one full-width card ----- */
.app-shell:has(.sfe-module-shell) > .main-content,
.content-area:has(.sfe-module-shell),
.sfe-module-shell,
.sfe-module-shell__body {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}
.content-area:has(.sfe-module-shell) {
    padding: 20px clamp(28px, 5vw, 56px) 32px;
}
.sfe-module-shell {
    display: flex;
    flex-direction: column;
    margin: 0;
    border-radius: var(--sfe-radius-lg);
    border: 1px solid color-mix(in srgb, var(--sfe-secondary) 18%, var(--sfe-border));
    background: var(--sfe-surface);
    box-shadow: var(--sfe-shadow);
    overflow: visible;
}
.sfe-module-shell > .discuss-module-nav,
.sfe-module-shell > [class*="-module-nav"],
.sfe-module-shell > .module-subnav,
.sfe-module-shell > .o_apps_control_panel {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    padding: 6px 10px;
    margin: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--sfe-secondary) 18%, var(--sfe-border));
    border-radius: var(--sfe-radius-lg) var(--sfe-radius-lg) 0 0;
    background: color-mix(in srgb, #fff 72%, var(--sfe-primary-light));
}
/* Gear at the end of the pill row */
.sfe-module-shell > .discuss-module-nav .sfe-config-dropdown-wrap,
.sfe-module-shell > [class*="-module-nav"] .sfe-config-dropdown-wrap,
.sfe-module-shell > .discuss-module-nav .discuss-module-nav-config-wrap,
.sfe-module-shell > [class*="-module-nav"] .discuss-module-nav-config-wrap {
    margin-left: auto;
}

/* Dashboards fill the pane (no 960/1100/1120 caps) */
.sfe-module-shell [class*="-dashboard"],
.sfe-module-shell [class*="-dash"],
.sfe-module-shell .barcode-app-shell,
.sfe-module-shell [class*="-dashboard-header"],
.sfe-module-shell [class*="-dash-header"],
.sfe-module-shell .website-multisite-dashboard,
.sfe-module-shell .l10n-mx-batch-log-page,
.sfe-module-shell .l10n-mx-failed-page,
.sfe-module-shell .tecnonube-soporte-settings,
.sfe-module-shell .bank-reconcile,
.sfe-module-shell .marketplace-detail,
.sfe-module-shell .o_help_main,
.content-area:has(.sfe-module-shell) [class*="-dashboard"],
.content-area:has(.sfe-module-shell) [class*="-dash"],
.app-shell:has(.sfe-module-shell) .main-content [class*="-dashboard"],
.app-shell:has(.sfe-module-shell) .main-content [class*="-dash"] {
    width: 100%;
    max-width: none !important;
    box-sizing: border-box;
}

.sfe-module-shell__body {
    padding: 28px clamp(28px, 4vw, 48px) 36px;
}

@media (max-width: 768px) {
    .content-area:has(.sfe-module-shell) {
        padding: 14px 16px 24px;
    }
    .sfe-module-shell__body {
        padding: 20px 16px 28px;
    }
}

/* Contacts + discuss workspaces inside the same card */
.contacts-workspace,
.o_contacts_view,
.sfe-module-shell__body > .contacts-workspace,
.sfe-module-shell__body > .discuss-workspace {
    width: 100%;
    max-width: none;
}

/* ----- Dropdown flush under trigger ----- */
.sfe-config-dropdown-wrap,
.discuss-module-nav-config-wrap,
.contacts-cp-gear-wrap,
.discuss-channels-cp-gear-wrap,
.o_apps_settings_wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    overflow: visible;
}
.sfe-config-dropdown,
.discuss-module-nav-config-menu,
.contacts-cp-gear-dropdown,
.discuss-channels-cp-gear-dropdown {
    position: absolute !important;
    top: 100% !important;
    left: 0;
    right: auto;
    bottom: auto !important;
    margin-top: 4px;
    transform: none !important;
    z-index: 400;
    min-width: 220px;
    width: max-content;
    max-width: min(340px, calc(100vw - 24px));
    padding: 8px 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    background: var(--sfe-surface);
    border: 1px solid var(--sfe-border);
    border-radius: var(--sfe-radius);
    box-shadow: var(--sfe-shadow-menu);
    overflow: visible;
}
.sfe-module-shell > .discuss-module-nav .sfe-config-dropdown-wrap > .sfe-config-dropdown,
.sfe-module-shell > [class*="-module-nav"] .sfe-config-dropdown-wrap > .sfe-config-dropdown,
.sfe-module-shell > .discuss-module-nav .sfe-config-dropdown-wrap > .discuss-module-nav-config-menu,
.sfe-module-shell > [class*="-module-nav"] .sfe-config-dropdown-wrap > .discuss-module-nav-config-menu,
.sfe-module-shell > .discuss-module-nav .discuss-module-nav-config-wrap > .sfe-config-dropdown,
.sfe-module-shell > [class*="-module-nav"] .discuss-module-nav-config-wrap > .sfe-config-dropdown,
.sfe-module-shell > .discuss-module-nav .discuss-module-nav-config-wrap > .discuss-module-nav-config-menu,
.sfe-module-shell > [class*="-module-nav"] .discuss-module-nav-config-wrap > .discuss-module-nav-config-menu,
.contacts-cp-gear-wrap > .contacts-cp-gear-dropdown,
.discuss-channels-cp-gear-wrap > .discuss-channels-cp-gear-dropdown,
.o_apps_settings_wrap > .o_apps_settings_panel {
    right: 0 !important;
    left: auto !important;
}
.sfe-config-dropdown[hidden],
.discuss-module-nav-config-menu[hidden],
.contacts-cp-gear-dropdown[hidden],
.discuss-channels-cp-gear-dropdown[hidden],
.o_apps_settings_panel[hidden] {
    display: none !important;
}
.sfe-module-shell,
.sfe-module-shell > .discuss-module-nav,
.sfe-module-shell > [class*="-module-nav"],
.content-area:has(.sfe-module-shell) {
    overflow: visible;
}

/* Apps gear panel (ZIP import + partners). cachebust=apps-gear-20260816k */
.o_cp_title,
.o_cp_left,
.o_apps_control_panel,
.o_apps_settings_wrap {
    overflow: visible;
}
.o_apps_settings_wrap > .o_apps_settings_panel,
.o_cp_left .o_apps_settings_panel,
.o_cp_right .o_apps_settings_wrap > .o_apps_settings_panel,
.sfe-apps-settings-panel {
    position: absolute !important;
    top: 100% !important;
    right: 0 !important;
    left: auto !important;
    bottom: auto !important;
    z-index: 400;
    margin-top: 6px;
    transform: none !important;
    box-sizing: border-box;
    width: 360px;
    min-width: 280px;
    max-width: min(400px, calc(100vw - 24px));
    padding: 6px 0 8px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: var(--sfe-surface, #fff);
    border: 1px solid var(--sfe-border, var(--wms-line, #d8dee6));
    border-radius: var(--sfe-radius, 10px);
    box-shadow: var(--sfe-shadow-menu, 0 8px 24px rgba(30, 43, 60, 0.12));
    white-space: normal;
    overflow: visible;
}
.o_apps_settings_wrap > .o_apps_settings_panel::before,
.sfe-apps-settings-panel::before {
    content: "";
    position: absolute;
    top: -5px;
    right: 9px;
    left: auto;
    width: 10px;
    height: 10px;
    background: var(--sfe-surface, #fff);
    border-left: 1px solid var(--sfe-border, var(--wms-line, #d8dee6));
    border-top: 1px solid var(--sfe-border, var(--wms-line, #d8dee6));
    transform: rotate(45deg);
}
.o_apps_settings_panel[hidden],
.sfe-apps-settings-panel[hidden] {
    display: none !important;
}
.sfe-apps-settings-section {
    padding: 10px 16px 12px;
}
.sfe-apps-settings-section + .sfe-apps-settings-section {
    border-top: 1px solid var(--sfe-border, #e8edf2);
}
.sfe-apps-settings-title {
    margin: 0 0 4px;
    font-family: var(--sfe-font-sans, inherit);
    font-size: 13px;
    font-weight: 650;
    line-height: 1.3;
    letter-spacing: 0;
    text-transform: none;
    color: var(--sfe-navy, var(--gray-900, #0f172a));
}
.sfe-apps-settings-help {
    margin: 0 0 10px;
    font-size: 12.5px;
    line-height: 1.4;
    color: var(--sfe-muted, var(--gray-600, #475569));
}
.sfe-apps-upload-form,
.o_apps_settings_panel .marketplace-upload-form {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    flex-wrap: nowrap;
    gap: 10px;
}
.sfe-apps-file {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    width: 100%;
}
.sfe-apps-file__input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.sfe-apps-file__btn {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 12px;
    border: 1px solid var(--sfe-border, #d8dee6);
    border-radius: var(--sfe-radius-sm, 8px);
    background: var(--sfe-surface, #fff);
    color: var(--sfe-text, #1e293b);
    font-size: var(--sfe-font-size-sm, 13px);
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    white-space: nowrap;
}
.sfe-apps-file__btn:hover,
.sfe-apps-file__input:focus-visible + .sfe-apps-file__btn {
    background: color-mix(in srgb, var(--sfe-primary, #007bff) 8%, #fff);
    border-color: var(--sfe-primary, #007bff);
    color: var(--sfe-primary, #007bff);
}
.sfe-apps-file__name {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12.5px;
    color: var(--sfe-text, #1e293b);
    font-weight: 500;
}
.sfe-apps-file__name.is-empty {
    color: var(--sfe-muted, var(--gray-500, #64748b));
    font-weight: 400;
}
.sfe-apps-upload-submit,
.sfe-apps-settings-fullbtn {
    width: 100%;
    justify-content: center;
}
.sfe-apps-partners-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.sfe-apps-partner__link {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    padding: 7px 8px;
    margin: 0 -8px;
    border-radius: var(--sfe-radius-sm, 8px);
    text-decoration: none;
    color: inherit;
    white-space: nowrap;
}
.sfe-apps-partner__link:hover {
    background: var(--gray-100, #f1f5f9);
}
.sfe-apps-partner__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--sfe-primary, #007bff);
    flex: 0 0 auto;
}
.sfe-apps-partner__name {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 13px;
    font-weight: 600;
    color: var(--sfe-text, #1e293b);
}
.sfe-apps-partner__role {
    margin-left: auto;
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 500;
    color: var(--sfe-muted, var(--gray-500, #64748b));
}
.sfe-apps-settings-footer {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin: 4px 0 0;
    padding: 10px 16px 12px;
    border: none;
    border-top: 1px solid var(--sfe-border, #e8edf2);
    border-radius: 0;
    background: transparent;
    color: var(--sfe-primary, #0056cc);
    font-size: var(--sfe-font-size-sm, 13px);
    font-weight: 600;
    line-height: 1.35;
    text-align: left;
    text-decoration: none;
}
.sfe-apps-settings-footer:hover,
.sfe-apps-settings-footer:focus-visible {
    background: var(--gray-100, #f1f5f9);
    color: var(--sfe-navy, #1e2b3c);
}

/* =========================================================
   Dashboard chrome (global — CRM / Sale / Activities / etc.)
   cache-bust: sfe-ui-pro-20260817v
   Attribute aliases: *-dashboard-header, *-dash-header, *-dash-filters,
   *-dash-kpis, *-stat-card, *-kpi-card/grid/value/label, .stat-card
   ========================================================= */

/* ----- Page header: serif title + subtitle + actions cluster ----- */
.sfe-page-header,
[class*="-dashboard-header"],
[class*="-dash-header"] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--sfe-space-4) var(--sfe-space-6);
    margin-bottom: var(--sfe-space-6);
    padding: 2px 0 var(--sfe-space-5);
    border-bottom: 1px solid var(--sfe-border);
    flex-wrap: wrap;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}
.sfe-page-header > div:first-child,
[class*="-dashboard-header"] > div:first-child,
[class*="-dash-header"] > div:first-child,
.stock-dashboard-header > .stock-dashboard-heading {
    flex: 1 1 min(100%, 280px);
    min-width: 0;
}
.sfe-page-header h1,
.sfe-page-header h2,
[class*="-dashboard-header"] h1,
[class*="-dashboard-header"] h2,
[class*="-dash-header"] h1,
[class*="-dash-header"] h2,
.stock-dashboard-heading h2,
.list-view > .list-header h1,
.o_control_panel .o_cp_title {
    margin: 0 0 6px;
    font-family: var(--sfe-font-display);
    font-size: clamp(1.35rem, 1.15rem + 0.55vw, 1.7rem);
    font-weight: 600;
    letter-spacing: var(--sfe-letter-tight);
    line-height: 1.22;
    color: var(--sfe-navy);
}
.sfe-page-header .field-hint,
.sfe-page-header p,
.sfe-page-header .sfe-page-subtitle,
[class*="-dashboard-header"] .field-hint,
[class*="-dashboard-header"] p,
[class*="-dash-header"] .field-hint,
[class*="-dash-header"] p,
.stock-dashboard-sub {
    margin: 0;
    max-width: 40rem;
    font-family: var(--sfe-font-sans);
    font-size: var(--sfe-font-size-sm);
    font-weight: 400;
    letter-spacing: 0;
    color: var(--sfe-text-muted);
    line-height: 1.45;
}
.sfe-page-actions,
.crm-dashboard-actions,
.stock-dashboard-actions,
[class*="-dashboard-actions"],
[class*="-dash-actions"] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 2px;
    flex: 0 0 auto;
}
.sfe-page-actions .btn,
.sfe-page-actions a.btn,
.crm-dashboard-actions .btn,
.crm-dashboard-actions a.btn,
.stock-dashboard-actions .btn,
.stock-dashboard-actions a.btn,
[class*="-dashboard-actions"] .btn,
[class*="-dashboard-actions"] a.btn {
    flex: 0 0 auto;
}
.sfe-page-actions .btn-primary,
.sfe-page-actions a.btn-primary,
.crm-dashboard-actions .btn-primary,
.crm-dashboard-actions a.btn-primary,
.stock-dashboard-actions .btn-primary,
[class*="-dashboard-actions"] .btn-primary {
    min-height: 38px;
    padding: 9px 18px;
    font-size: var(--sfe-font-size-sm);
    font-weight: 600;
    letter-spacing: 0.01em;
    box-shadow: var(--sfe-shadow-primary);
}
.sfe-page-actions .btn-secondary,
.sfe-page-actions a.btn-secondary,
.sfe-page-actions .btn-default,
.crm-dashboard-actions .btn-secondary,
.crm-dashboard-actions a.btn-secondary,
.crm-dashboard-actions .btn-default,
.stock-dashboard-actions .btn-secondary,
[class*="-dashboard-actions"] .btn-secondary {
    min-height: 34px;
    padding: 7px 13px;
    font-weight: 500;
    background: var(--sfe-surface) !important;
    border: 1px solid var(--sfe-border-strong) !important;
    color: var(--gray-700) !important;
}

/* ----- Filter band ----- */
.sfe-filter-band,
.crm-cohort-filters,
.crm-dashboard-filters,
.crm-team-filter,
.stock-toolbar,
[class*="-dash-filters"],
[class*="-dashboard-filters"] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 12px 16px;
    margin-bottom: var(--sfe-space-7);
    padding: 16px 18px;
    border: 1px solid var(--sfe-filter-band-border);
    border-radius: var(--sfe-radius);
    background: var(--sfe-filter-band-bg);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
    box-sizing: border-box;
    width: 100%;
    max-width: none;
}
.sfe-filter-band label,
.crm-cohort-filters label,
[class*="-dash-filters"] label,
[class*="-dashboard-filters"] label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 128px;
    margin: 0;
    font-family: var(--sfe-font-sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--sfe-text-muted);
}
.sfe-filter-band .form-control,
.sfe-filter-band select,
.crm-cohort-filters .form-control,
.crm-cohort-filters select,
.crm-cohort-filters input[type="date"],
[class*="-dash-filters"] .form-control,
[class*="-dash-filters"] select,
[class*="-dash-filters"] input[type="date"],
[class*="-dashboard-filters"] .form-control,
[class*="-dashboard-filters"] select,
.stock-toolbar .form-control,
.stock-toolbar select {
    min-width: 140px;
    max-width: 220px;
    width: auto;
    min-height: var(--sfe-control-height);
    height: var(--sfe-control-height);
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    color: var(--sfe-text);
    background: var(--sfe-surface);
}
.sfe-filter-band .btn,
.crm-cohort-filters .btn,
[class*="-dash-filters"] .btn,
[class*="-dashboard-filters"] .btn,
.stock-toolbar .btn {
    align-self: flex-end;
    min-height: var(--sfe-control-height);
    height: var(--sfe-control-height);
    padding-left: 14px;
    padding-right: 14px;
}

/* ----- KPI grids ----- */
.sfe-kpi-grid,
.crm-stats,
.stats-grid,
.stat-grid,
.stock-stats,
.stock-stats--pro,
.esg-kpi-grid,
.industries-kpi-row,
.l10n-mx-ops-kpis,
.l10n-mx-kpi-group-cards,
[class*="-dash-kpis"],
[class*="-kpi-grid"],
[class*="-kpi-group-cards"] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 160px), 1fr));
    gap: var(--sfe-space-3);
    margin-bottom: var(--sfe-space-6);
    width: 100%;
    max-width: none;
}

/* ----- KPI / stat cards (all *-stat-card / *-kpi-card / .stat-card) ----- */
.sfe-kpi-card,
.stat-card,
a.stat-card,
[class*="-stat-card"],
a[class*="-stat-card"],
[class*="-kpi-card"],
a[class*="-kpi-card"] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
    min-height: 100px;
    padding: 18px 18px 16px;
    background: var(--sfe-surface);
    border: 1px solid var(--sfe-border);
    border-radius: var(--sfe-radius);
    box-shadow: var(--sfe-shadow-card);
    box-sizing: border-box;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    position: relative;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.stat-card::before,
.stock-stats--pro .stock-stat-card::before,
[class*="-stat-card"]::before {
    display: none !important;
    content: none !important;
}
.sfe-kpi-card:hover,
.stat-card:hover,
a.stat-card:hover,
[class*="-stat-card"]:hover,
a[class*="-stat-card"]:hover,
[class*="-kpi-card"]:hover {
    border-color: color-mix(in srgb, var(--sfe-primary) 38%, var(--sfe-border));
    box-shadow: var(--sfe-shadow-card-hover);
}
.sfe-kpi-card.is-active,
.stat-card.is-active,
[class*="-stat-card"].is-active,
[class*="-stat-card"].is-ok,
[class*="-kpi-card"].is-active {
    border-color: color-mix(in srgb, var(--sfe-primary) 55%, var(--sfe-border));
    background: color-mix(in srgb, var(--sfe-primary-light) 70%, #fff);
}
.sfe-kpi-card.is-highlight,
.stat-card.is-highlight,
.stat-card.stat-success,
[class*="-stat-card"].is-highlight,
[class*="-kpi-card"].is-highlight {
    border-color: color-mix(in srgb, var(--sfe-success) 45%, var(--sfe-border));
    background: color-mix(in srgb, var(--sfe-success-light) 65%, #fff);
}
.sfe-kpi-card.is-warning,
.stat-card.is-warning,
.stat-card.stat-warning,
[class*="-stat-card"].is-warning,
[class*="-kpi-card"].is-warning {
    border-color: color-mix(in srgb, var(--sfe-warning) 45%, var(--sfe-border));
    background: color-mix(in srgb, var(--sfe-warning-light) 70%, #fff);
}
.sfe-kpi-card.is-danger,
.stat-card.stat-danger,
[class*="-stat-card"].is-danger {
    border-color: color-mix(in srgb, var(--sfe-danger) 45%, var(--sfe-border));
    background: color-mix(in srgb, var(--sfe-danger-light) 70%, #fff);
}
.sfe-kpi-card.is-info,
.stat-card.stat-info,
.stat-card.stat-primary,
[class*="-stat-card"].is-info {
    border-color: color-mix(in srgb, var(--sfe-info) 40%, var(--sfe-border));
    background: color-mix(in srgb, var(--sfe-info-light) 55%, #fff);
}

.sfe-kpi-value,
.stat-value,
.crm-stat-value,
.stock-stat-value,
.mrp-stat-value,
.accounting-stat-value,
.esg-kpi-value,
.studio-kpi__value,
[class*="-stat-value"],
[class*="-kpi-value"] {
    font-family: var(--sfe-font-sans);
    font-size: clamp(1.25rem, 1.08rem + 0.55vw, 1.7rem);
    font-weight: 600;
    letter-spacing: var(--sfe-letter-tight);
    line-height: 1.2;
    color: var(--sfe-navy);
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.sfe-kpi-label,
.stat-label,
.crm-stat-label,
.stock-stat-label,
.mrp-stat-label,
.accounting-stat-label,
.esg-kpi-label,
.studio-kpi__label,
[class*="-stat-label"],
[class*="-kpi-label"] {
    font-family: var(--sfe-font-sans);
    font-size: 12.5px;
    font-weight: 500;
    color: var(--sfe-text-muted);
    line-height: 1.35;
    letter-spacing: 0.01em;
}
.sale-dash-kpi-hint,
.stock-stat-hint,
.sfe-kpi-hint {
    font-size: var(--sfe-font-size-xs);
    color: var(--sfe-text-quiet);
    line-height: 1.35;
    margin-top: auto;
}

/* Panels */
.crm-panel,
.sale-dash-pipeline,
.sale-dash-trend,
.activities-dash-bars,
.activities-dash-trend,
.stock-dashboard-panel,
.accounting-panel {
    margin-bottom: var(--sfe-space-5);
    padding: var(--sfe-space-5);
    background: var(--sfe-surface);
    border: 1px solid var(--sfe-border);
    border-radius: var(--sfe-radius);
    box-shadow: var(--sfe-shadow-card);
    box-sizing: border-box;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.crm-panel:hover,
.sale-dash-pipeline:hover,
.sale-dash-trend:hover,
.activities-dash-bars:hover,
.activities-dash-trend:hover,
.stock-dashboard-panel:hover,
.accounting-panel:hover {
    box-shadow: var(--sfe-shadow-card-hover);
    border-color: color-mix(in srgb, var(--sfe-border) 55%, var(--sfe-border-strong));
}
.crm-panel h3,
.sale-dash-pipeline h3,
.sale-dash-trend h3,
.activities-dash-bars h3,
.activities-dash-trend h3,
.stock-dashboard-panel h3,
.accounting-panel h3 {
    margin: 0 0 14px;
    font-family: var(--sfe-font-sans);
    font-size: var(--sfe-font-size-lg);
    font-weight: 600;
    letter-spacing: var(--sfe-letter-tight);
    color: var(--sfe-navy);
    line-height: 1.3;
}
.crm-dashboard-columns,
.stock-dashboard-columns,
.stock-dashboard-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--sfe-space-5);
    margin-bottom: var(--sfe-space-2);
    width: 100%;
    max-width: none;
}

/* Empty / lists */
.crm-panel > .field-hint,
.sale-dash-pipeline > .field-hint,
.sale-dash-trend > .field-hint,
.activities-dash-bars > .field-hint,
.activities-dash-trend > .field-hint,
.empty-state,
.o_view_nocontent,
.o_nocontent_help {
    margin: 4px 0 0;
    padding: 22px 12px;
    text-align: center;
    font-family: var(--sfe-font-sans);
    font-size: var(--sfe-font-size-sm);
    font-weight: 400;
    letter-spacing: 0.01em;
    line-height: 1.45;
    color: var(--sfe-text-quiet);
    background: transparent;
    border: 0;
    box-shadow: none;
}
.crm-dashboard-columns > *,
.stock-dashboard-columns > *,
.stock-dashboard-grid > * {
    min-width: 0;
}
.crm-lead-list,
.sale-dash-recent,
.activities-dash-list {
    list-style: none;
    margin: 0;
    padding: 0;
    min-width: 0;
    overflow: hidden;
}
.crm-panel .crm-lead-list,
.crm-panel .sale-dash-recent,
.crm-panel .activities-dash-list {
    overflow: hidden;
    min-width: 0;
}
.crm-lead-list li,
.sale-dash-recent li,
.activities-dash-list li {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px 16px;
    padding: 10px 0;
    border-bottom: 1px solid color-mix(in srgb, var(--sfe-border) 85%, transparent);
    font-size: var(--sfe-font-size-sm);
    font-family: var(--sfe-font-sans);
    line-height: var(--sfe-line-tight);
}
.crm-lead-list li:last-child,
.sale-dash-recent li:last-child,
.activities-dash-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.crm-lead-list li:first-child,
.sale-dash-recent li:first-child,
.activities-dash-list li:first-child { padding-top: 2px; }
.crm-lead-list a,
.sale-dash-recent a,
.activities-dash-list a {
    color: var(--sfe-primary);
    text-decoration: none;
    font-weight: 500;
    min-width: 0;
}
.crm-lead-list a:hover,
.sale-dash-recent a:hover,
.activities-dash-list a:hover {
    text-decoration: underline;
    text-underline-offset: 2px;
}
.crm-lead-list a strong,
.sale-dash-recent a strong,
.activities-dash-list a strong {
    font-weight: 600;
    color: var(--sfe-navy);
}
.crm-lead-list > li > span,
.sale-dash-recent > li > span,
.activities-dash-list > li > span {
    color: var(--sfe-text-muted);
    font-size: 12.5px;
    flex: 0 1 auto;
    text-align: right;
    line-height: 1.4;
}
.sale-dash-recent-partner {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    font-weight: 400;
    color: var(--sfe-text-quiet);
}

/* Shared dashboard activity rows: identity | status | amount | date
   Identity (folio) must stay visible; status pills must never overlay it.
   Partner may ellipsis; right cluster is flex-shrink:0 content-sized. */
.crm-lead-list li.sfe-dash-row,
.crm-lead-list li.sfe-activity-row,
.sale-dash-recent > li.sfe-dash-row,
.sale-dash-recent > li.sfe-activity-row,
.sale-dash-recent > li {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px 16px;
    min-width: 0;
}
.crm-lead-list .sfe-dash-row__identity,
.sale-dash-recent > li > a.sfe-dash-row__identity {
    flex: 1 1 auto;
    min-width: 8rem;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 2px;
}
/* Product / legacy lists: name LEFT (never collapse to 0), compact pill RIGHT.
   Sale folio rows keep min-width: 8rem on .sfe-dash-row__identity above. */
.sale-dash-recent > li:not(.sfe-dash-row),
.crm-lead-list > li:not(.sfe-dash-row):not(.sfe-activity-row),
.activities-dash-list > li:not(.sfe-dash-row) {
    justify-content: space-between;
    align-items: center;
}
.sale-dash-recent > li:not(.sfe-dash-row) > a,
.crm-lead-list > li:not(.sfe-dash-row) > a,
.activities-dash-list > li:not(.sfe-dash-row) > a {
    flex: 1 1 auto;
    /* Floor so overflow:hidden + flex shrink cannot erase the name */
    min-width: 6rem;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 2px;
    color: var(--sfe-primary);
    opacity: 1;
    visibility: visible;
}
.crm-lead-list .sfe-dash-row__identity > strong,
.sale-dash-recent > li > a.sfe-dash-row__identity > strong,
.sale-dash-recent > li > a > strong {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    /* Folio stays in the identity box; overflow:hidden on identity
       prevents spill under status pills (partner ellipsizes separately). */
}
.crm-lead-list span.sfe-dash-row__partner,
.crm-lead-list .sfe-dash-row .sale-dash-recent-partner,
.sale-dash-recent .sale-dash-recent-partner {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: left;
    font-weight: 400;
    flex: none;
    color: var(--sfe-text-quiet);
    font-size: 12px;
}
.crm-lead-list span.sfe-dash-row__meta,
.sale-dash-recent > li > span.sfe-dash-row__meta {
    display: grid;
    grid-template-columns: auto auto;
    align-items: center;
    column-gap: 8px;
    margin-left: auto;
    flex: 0 0 auto;
    flex-shrink: 0;
    min-width: max-content;
    color: var(--sfe-text-muted);
    font-size: 12.5px;
    line-height: 1.4;
    text-align: left;
    white-space: nowrap;
}
.crm-lead-list span.sfe-dash-row__meta.is-dated,
.crm-lead-list span.sfe-dash-row__meta:has(.sfe-dash-row__date),
.sale-dash-recent > li > span.sfe-dash-row__meta.is-dated,
.sale-dash-recent > li > span.sfe-dash-row__meta:has(.sfe-dash-row__date) {
    grid-template-columns: auto auto auto;
}
.crm-lead-list span.sfe-dash-row__status,
.sfe-dash-row__status {
    justify-self: start;
    min-width: 0;
    width: max-content;
    text-align: left;
    flex: none;
    flex-shrink: 0;
    color: inherit;
    font-size: inherit;
    white-space: nowrap;
}
.crm-lead-list .sfe-dash-row__status .sale-dash-state,
.sfe-dash-row__status .sale-dash-state {
    display: inline-block;
    min-width: 0;
    width: max-content;
    max-width: none;
    text-align: center;
    box-sizing: border-box;
    flex-shrink: 0;
    white-space: nowrap;
}
.crm-lead-list span.sfe-dash-row__amount,
.sfe-dash-row__amount {
    justify-self: end;
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    font-weight: 600;
    color: var(--sfe-navy);
    flex: none;
    flex-shrink: 0;
    font-size: inherit;
}
.crm-lead-list span.sfe-dash-row__date,
.sfe-dash-row__date {
    justify-self: end;
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
    color: var(--sfe-text-muted);
    font-weight: 400;
    flex: none;
    flex-shrink: 0;
    font-size: inherit;
}
.sale-dash-recent > li:not(.sfe-dash-row) > span:not(.sale-dash-state):not(.sfe-badge):not(.sfe-pill) {
    display: grid;
    grid-template-columns: auto auto;
    align-items: center;
    column-gap: 8px;
    margin-left: auto;
    flex: 0 0 auto;
    flex-shrink: 0;
    min-width: max-content;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.sale-dash-recent > li:not(.sfe-dash-row) > span .sale-dash-state {
    justify-self: start;
    min-width: 0;
    width: max-content;
    text-align: center;
    flex-shrink: 0;
    white-space: nowrap;
}
/* Status pills are content-sized chips, never a full-row bar that overflows the card.
   Avoid max-width:100% as a flex sibling of min-width:0 (can steal the row). */
.sale-dash-state,
.sfe-dash-row__status .sale-dash-state,
.sale-dash-recent > li > span.sale-dash-state,
.crm-lead-list > li > span.sale-dash-state,
.activities-dash-list > li > span.sale-dash-state,
.sale-dash-recent > li > .sfe-badge,
.sale-dash-recent > li > .sfe-pill,
.crm-lead-list > li > .sfe-badge,
.crm-lead-list > li > .sfe-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    max-width: 11rem;
    flex: 0 0 auto;
    flex-grow: 0;
    flex-shrink: 0;
    box-sizing: border-box;
    white-space: nowrap;
    border-radius: var(--sfe-radius-pill, 999px);
}
/* Direct pill sibling of the product <a>: pin to the right, never stretch. */
.sale-dash-recent > li:not(.sfe-dash-row) > span.sale-dash-state,
.crm-lead-list > li:not(.sfe-dash-row) > span.sale-dash-state,
.activities-dash-list > li:not(.sfe-dash-row) > span.sale-dash-state,
.sale-dash-recent > li:not(.sfe-dash-row) > .sfe-badge,
.sale-dash-recent > li:not(.sfe-dash-row) > .sfe-pill,
.crm-lead-list > li:not(.sfe-dash-row) > .sfe-badge,
.crm-lead-list > li:not(.sfe-dash-row) > .sfe-pill {
    margin-left: auto;
    align-self: center;
    width: fit-content;
    max-width: 40%;
    flex: 0 0 auto;
}

/* Kill leftover content-shell caps inside module chrome */
.sfe-module-shell .marketplace-detail,
.sfe-module-shell .tecnonube-soporte-settings,
.sfe-module-shell .l10n-mx-batch-log-page,
.sfe-module-shell .l10n-mx-failed-page,
.sfe-module-shell .o_help_main,
.sfe-module-shell .bank-reconcile,
.sfe-module-shell .knowledge-article-read,
.content-area:has(.sfe-module-shell) .marketplace-detail,
.content-area:has(.sfe-module-shell) .l10n-mx-batch-log-page,
.content-area:has(.sfe-module-shell) .l10n-mx-failed-page,
.content-area:has(.sfe-module-shell) .bank-reconcile {
    max-width: none !important;
    width: 100%;
}

@media (max-width: 768px) {
    .crm-dashboard-columns,
    .stock-dashboard-columns,
    .stock-dashboard-grid { grid-template-columns: 1fr; }
    .sfe-filter-band .form-control,
    .crm-cohort-filters .form-control,
    [class*="-dash-filters"] .form-control,
    .sfe-filter-band select,
    .crm-cohort-filters select,
    [class*="-dash-filters"] select,
    .sfe-filter-band label,
    .crm-cohort-filters label,
    [class*="-dash-filters"] label {
        width: 100%;
        max-width: none;
        min-width: 0;
    }
    .sfe-filter-band .btn,
    .crm-cohort-filters .btn,
    [class*="-dash-filters"] .btn { width: 100%; }
    .sfe-page-actions,
    .crm-dashboard-actions,
    .stock-dashboard-actions,
    [class*="-dashboard-actions"] { width: 100%; }
    .sfe-page-actions .btn,
    .sfe-page-actions a.btn,
    .crm-dashboard-actions .btn,
    .crm-dashboard-actions a.btn { flex: 1 1 auto; }
}

/* =========================================================
   Studio wave 20260816i — Forms / Lists / Alt / Chrome / Icons
   ========================================================= */

/* ----- Phase A: Form sheet, labels, footer, chatter gutter ----- */
.o_form_view,
.form-view.o_form_view {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}
.o_form_view .o_form_sheet,
.form-view .o_form_sheet,
.o_form_sheet {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: var(--sfe-sheet-pad-y) var(--sfe-sheet-pad-x) !important;
    box-sizing: border-box;
}
.o_form_view .o_form_sheet > .form-grid,
.o_form_view .o_form_sheet .form-sheet-header.form-grid,
.form-view .o_form_sheet .form-grid {
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
}
.o_form_sheet .o_form_label,
.o_form_view label,
.form-group label,
.form-view .form-grid label {
    display: block;
    margin: 0 0 6px;
    font-size: var(--sfe-font-size-sm);
    font-weight: 500;
    color: var(--gray-700);
    letter-spacing: 0.01em;
}
.o_form_sheet .form-footer,
.o_form_view .form-footer,
.form-view .form-footer,
.o_form_sheet .form-footer-readonly {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin: var(--sfe-space-5) 0 0 !important;
    padding: var(--sfe-space-4) 0 0;
    border-top: 1px solid var(--sfe-border);
}
.o_form_sheet .form-footer .btn-primary,
.o_form_sheet .form-footer .oe_save_only {
    min-height: 38px;
    padding: 9px 18px;
    font-weight: 600;
    box-shadow: var(--sfe-shadow-primary);
}
.o_form_sheet .form-footer .btn-secondary {
    min-height: 36px;
    padding: 8px 14px;
}
.form-view--with-chatter .statusbar,
.form-view--with-chatter .form-report-actions,
.form-view--with-chatter .stat-buttons,
.form-view--with-chatter .oe_button_box,
.form-view--with-chatter .form-actions-bar,
.form-view--with-chatter .form-notice-panel {
    margin-left: var(--sfe-sheet-pad-x);
    margin-right: var(--sfe-sheet-pad-x);
}
.form-view--with-chatter .form-view-toolbar {
    padding-left: var(--sfe-sheet-pad-x);
    padding-right: var(--sfe-sheet-pad-x);
}
.sfe-chatter-column {
    background: color-mix(in srgb, var(--sfe-surface-muted) 88%, var(--sfe-primary-light));
    border-left: 1px solid var(--sfe-border);
}
.sfe-chatter-column__toolbar {
    padding: 12px 16px;
    border-bottom: 1px solid var(--sfe-border);
    background: color-mix(in srgb, var(--sfe-surface) 82%, transparent);
}
.o_chatter {
    padding: 14px 16px 22px;
}
.form-actions-bar.sfe-doc-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: var(--sfe-space-4);
}
.stat-button .stat-icon {
    display: inline-block;
    width: 1.1rem;
    height: 1.1rem;
    margin-right: 0.35rem;
    opacity: 0.75;
    background: currentColor;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='black' d='M2 14V2h12v12H2zm2-2h8V4H4v8z'/%3E%3C/svg%3E") center / contain no-repeat;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='black' d='M2 14V2h12v12H2zm2-2h8V4H4v8z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.stat-button--icon-bar-chart .stat-icon,
.stat-button .stat-icon[data-icon="bar-chart"] {
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='black' d='M2 14h12v1H2v-1zm2-4h2v4H4v-4zm3-3h2v7H7V7zm3 2h2v5h-2V9z'/%3E%3C/svg%3E");
}

/* ----- Phase B: /web list chrome ----- */
.list-view,
.sfe-doc-list-view,
.o_list_view {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}
.list-view > .list-header,
.sfe-doc-list-view .list-header,
.o_control_panel,
.list-toolbar,
.sfe-doc-list-chrome {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px 14px;
    margin-bottom: var(--sfe-space-4);
    min-height: 44px;
}
.list-view > .list-header h1,
.list-view > .list-header h2,
.sfe-doc-list-view .list-header h1 {
    margin: 0;
    font-size: clamp(1.2rem, 1.05rem + 0.4vw, 1.5rem);
}
.list-view .list-toolbar .btn,
.sfe-doc-list-view .list-toolbar .btn,
.o_control_panel .btn {
    min-height: 34px;
    padding: 6px 12px;
    font-size: 12.5px;
}
.list-view .data-table,
.sfe-doc-list-view .data-table,
.o_list_view table {
    border: 1px solid var(--sfe-border);
    border-radius: var(--sfe-radius);
    overflow: hidden;
    box-shadow: var(--sfe-shadow-card);
}
.list-row-actions {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
}
.list-row-actions .btn-icon,
.list-row-actions .btn-sm {
    width: 30px;
    height: 30px;
    min-height: 30px;
}
.sfe-list-pager,
.list-pagination,
.o_pager,
.l10n-mx-pagination,
[class*="-list-pager"],
[class*="-pagination"]:not(.sfe-toast-progress) {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px 12px;
    margin-top: var(--sfe-space-4);
    padding: 10px 2px;
    font-family: var(--sfe-font-sans);
    font-size: var(--sfe-font-size-sm);
    color: var(--sfe-text-muted);
}
.sfe-list-pager .btn,
.list-pagination .btn,
.o_pager .btn {
    min-height: 32px;
    padding: 5px 11px;
}
.list-view .empty-state,
.sfe-doc-list-view .empty-state,
.o_list_view .o_view_nocontent,
.o_view_nocontent,
.sfe-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: var(--sfe-space-6) 0;
    padding: 40px 20px !important;
    text-align: center;
    border: 1px dashed color-mix(in srgb, var(--sfe-border-strong) 70%, var(--sfe-primary-light));
    border-radius: var(--sfe-radius-lg);
    background: color-mix(in srgb, var(--sfe-surface-muted) 92%, var(--sfe-primary-light));
    color: var(--sfe-text-muted);
    box-shadow: none;
}
.sfe-empty-state__title,
.o_view_nocontent .o_nocontent_help > p:first-child {
    margin: 0;
    font-family: var(--sfe-font-display);
    font-size: var(--sfe-font-size-lg);
    font-weight: 600;
    color: var(--sfe-navy);
}
.sfe-empty-state__hint {
    margin: 0;
    max-width: 28rem;
    font-size: var(--sfe-font-size-sm);
    color: var(--sfe-text-quiet);
}

/* ----- Phase C: Kanban / map / hierarchy cards ----- */
.kanban-view,
.web-map-view,
.contacts-hierarchy {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}
.kanban-toolbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: var(--sfe-space-4);
}
.kanban-toolbar__actions {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    margin-left: auto;
}
.kanban-toolbar .sfe-doc-cols,
.kanban-toolbar .sfe-collection-view-gear-wrap {
    position: relative;
}
.sfe-doc-cols__toggle.o_cp_gear_btn {
    width: 30px;
    height: 30px;
}
.kanban-view-switch {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 3px;
    border-radius: var(--sfe-radius-pill);
    background: var(--sfe-surface-muted);
    border: 1px solid var(--sfe-border);
}
.kanban-switch {
    padding: 6px 12px;
    border-radius: var(--sfe-radius-pill);
    font-size: var(--sfe-font-size-sm);
    font-weight: 500;
    color: var(--sfe-text-muted);
    text-decoration: none;
}
.kanban-switch.is-active {
    background: var(--sfe-surface);
    color: var(--sfe-primary-dark);
    font-weight: 600;
    box-shadow: var(--sfe-shadow-card);
}
.kanban-board {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    overflow-x: auto;
    padding-bottom: 8px;
}
.kanban-column {
    flex: 0 0 min(280px, 85vw);
    background: var(--sfe-surface-muted);
    border: 1px solid var(--sfe-border);
    border-radius: var(--sfe-radius);
    padding: 10px;
    box-sizing: border-box;
}
.kanban-column-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    font-family: var(--sfe-font-sans);
    font-size: var(--sfe-font-size-sm);
    font-weight: 600;
    color: var(--sfe-navy);
}
.kanban-card,
.o_kanban_record,
.contacts-hierarchy-card {
    background: var(--sfe-surface);
    border: 1px solid var(--sfe-border);
    border-radius: var(--sfe-radius);
    box-shadow: var(--sfe-shadow-card);
    padding: 12px 14px;
    margin-bottom: 8px;
    font-family: var(--sfe-font-sans);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.kanban-card:hover,
.o_kanban_record:hover,
.contacts-hierarchy-card:hover {
    border-color: color-mix(in srgb, var(--sfe-primary) 35%, var(--sfe-border));
    box-shadow: var(--sfe-shadow-card-hover);
}
.kanban-card-title,
.contacts-hierarchy-name {
    font-weight: 600;
    font-size: var(--sfe-font-size-sm);
    color: var(--sfe-navy);
    text-decoration: none;
    letter-spacing: var(--sfe-letter-tight);
}
.kanban-card-field,
.kanban-field-label,
.contacts-hierarchy-meta {
    font-size: 12.5px;
    color: var(--sfe-text-muted);
    line-height: var(--sfe-line-tight);
}
.kanban-card-revenue {
    margin-top: 6px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--sfe-navy);
}
.web-map-view .web-map-frame,
.web-map-frame {
    border-radius: var(--sfe-radius) !important;
    border: 1px solid var(--sfe-border) !important;
    overflow: hidden;
    box-shadow: var(--sfe-shadow-card);
    background: var(--sfe-surface);
}
.web-map-view .crm-dashboard-header h3 {
    font-family: var(--sfe-font-display);
    color: var(--sfe-navy);
}

/* ----- Phase D: Modals, toasts, empty, loading ----- */
.sfe-doc-dialog,
dialog.sfe-doc-dialog,
.sfe-modal,
.sfe-m2o-search-modal__dialog,
.spreadsheet-erp-modal__dialog {
    border: 1px solid var(--sfe-border);
    border-radius: var(--sfe-radius-lg);
    padding: 0;
    background: var(--sfe-surface);
    color: var(--sfe-text);
    box-shadow: var(--sfe-shadow-lg);
    font-family: var(--sfe-font-sans);
    max-width: min(560px, calc(100vw - 32px));
}
.sfe-doc-dialog::backdrop,
dialog.sfe-doc-dialog::backdrop {
    background: rgba(15, 23, 42, 0.42);
    backdrop-filter: blur(2px);
}
.sfe-doc-dialog__body,
.sfe-modal__body {
    padding: 20px 22px 18px;
}
.sfe-doc-dialog__body h3,
.sfe-modal__title {
    margin: 0 0 12px;
    font-family: var(--sfe-font-display);
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--sfe-navy);
    letter-spacing: var(--sfe-letter-tight);
}
.sfe-doc-dialog__actions,
.sfe-modal__footer {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--sfe-border);
}
.sfe-toast,
.sfe-toast-card {
    font-family: var(--sfe-font-sans);
    border-radius: var(--sfe-radius);
    box-shadow: var(--sfe-shadow-menu);
    z-index: var(--sfe-toast-z);
}
.sfe-toast-card {
    border: 1px solid var(--sfe-border);
    background: var(--sfe-surface);
}
.sfe-loading,
.o_loading,
.sfe-busy-bar,
[data-sfe-loading] {
    position: relative;
}
.sfe-busy-bar::after,
.sfe-loading::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 2px;
    background: linear-gradient(
        90deg,
        transparent,
        var(--sfe-primary),
        transparent
    );
    animation: sfe-busy-sweep 1.1s ease-in-out infinite;
    pointer-events: none;
    z-index: 5;
}
@keyframes sfe-busy-sweep {
    0% { transform: translateX(-40%); opacity: 0.35; }
    50% { opacity: 1; }
    100% { transform: translateX(40%); opacity: 0.35; }
}

/* ----- Phase E: Icon size / stroke normalize (nav + action chrome only) ----- */
.discuss-module-nav-item .icon,
.discuss-module-nav-item svg.icon,
.sfe-config-dropdown-wrap .icon,
.contacts-cp-gear-wrap .icon,
.list-row-actions .icon,
.btn-icon .icon,
.kanban-card-actions .icon,
.o_apps_settings_wrap .icon {
    width: var(--sfe-icon-md);
    height: var(--sfe-icon-md);
    stroke-width: var(--sfe-icon-stroke);
    flex: 0 0 auto;
}
.btn-icon .icon,
.list-row-actions .btn-icon .icon {
    width: var(--sfe-icon-sm);
    height: var(--sfe-icon-sm);
}
.sfe-module-shell > .discuss-module-nav .sfe-config-dropdown-wrap .icon,
.sfe-module-shell > [class*="-module-nav"] .sfe-config-dropdown-wrap .icon {
    width: var(--sfe-icon-md);
    height: var(--sfe-icon-md);
}
/* Keep app/home/CP/stat icons at app.css sizes — do not inherit Phase E shrink */
.sfe-module-shell .o_cp_module_icon .icon {
    width: 16px;
    height: 16px;
}
.sfe-module-shell .o_module_home_icon .icon {
    width: 14px;
    height: 14px;
}
.o_app_icon .icon {
    width: 36px;
    height: 36px;
    color: #fff;
    stroke: #fff;
}
.sfe-module-shell .crm-stat-card .icon,
.sfe-module-shell .sfe-kpi-card .icon {
    width: 22px;
    height: 22px;
}
.sfe-module-shell .action-card .icon {
    width: 24px;
    height: 24px;
}
.sfe-module-shell .stock-stat-icon .icon {
    width: 20px;
    height: 20px;
}

/* ----- Phase G: QWeb letterhead (HTML/PDF layout) ----- */
.sfe-qweb-layout {
    font-family: var(--sfe-font-sans);
    color: var(--sfe-text);
    max-width: 880px;
    margin: 0 auto;
}
.sfe-qweb-layout-header {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--sfe-border);
}
.sfe-qweb-logo {
    max-height: 56px;
    max-width: 160px;
    object-fit: contain;
}
.sfe-qweb-layout-header [name="company_letterhead"],
.sfe-qweb-layout-header #company_letterhead {
    flex: 1 1 220px;
    font-size: var(--sfe-font-size-sm);
    color: var(--sfe-text-muted);
    line-height: 1.45;
}
.sfe-qweb-layout-footer {
    margin-top: 24px;
    padding-top: 12px;
    border-top: 1px solid var(--sfe-border);
    font-size: 12px;
    color: var(--sfe-text-quiet);
}

/* ----- Studio backlog 20260816j: densificar toolbar / empty / filter band ----- */
.o_control_panel,
.sfe-control-panel,
.sfe-module-shell .sfe-apps-header,
.sfe-module-shell .apps-header {
  padding-block: clamp(0.45rem, 1.1vw, 0.75rem);
}
.o_control_panel .o_cp_buttons .btn,
.sfe-control-panel .btn,
.sfe-list-toolbar .btn {
  min-height: 2rem;
  padding: 0.28rem 0.7rem;
}
.o_list_view,
.sfe-list-view,
.o_form_view .o_form_sheet,
.sfe-form-sheet,
.o_kanban_view {
  padding-inline: clamp(0.75rem, 1.6vw, 1.25rem);
}
.sfe-empty-state,
.o_view_nocontent,
.o_nocontent_help {
  margin: 1.25rem auto;
  max-width: 28rem;
  text-align: center;
  color: var(--sfe-muted, #64748b);
}
.sfe-search-panel,
.o_search_panel,
.sfe-filter-band,
.o_cp_searchview {
  gap: 0.45rem;
  align-items: center;
}
.sfe-filter-band,
.o_searchview {
  border-radius: var(--sfe-radius-md, 0.5rem);
}

/* ----- links ----- */
/* Quiet in-app navigation/filter links (not browser-default blue/underline).
   Excludes: a.btn*, module-nav pills, KPI cards, /apps tiles, Copiloto FAB,
   sidebar .nav-link, apps menu chrome. Gear/config popovers reset below
   so in-flight gear-menu CSS is not overridden.
   cache-bust: sfe-ui-pro-20260817v
   Specificity: container class counts (no :where) so dashboard .data-table
   and .*-list a primary blues cannot win. */
.main-content a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
),
.content-area a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
),
.sfe-module-shell a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
),
.main-content .data-table a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
),
.content-area .data-table a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
),
.sfe-module-shell .data-table a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
),
.main-content .o_list_view a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
),
.content-area .o_list_view a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
),
.project-dashboard a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
),
.crm-dashboard a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
),
.sale-dashboard a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
),
a.sfe-link {
    color: var(--sfe-link);
    text-decoration: none;
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
    cursor: pointer;
}

.main-content a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited,
.content-area a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited,
.sfe-module-shell a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited,
.main-content .data-table a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited,
.content-area .data-table a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited,
.sfe-module-shell .data-table a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited,
.main-content .o_list_view a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited,
.content-area .o_list_view a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited,
.project-dashboard a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited,
.crm-dashboard a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited,
.sale-dashboard a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited,
a.sfe-link:visited {
    color: var(--sfe-link);
}

.main-content a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):hover,
.content-area a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):hover,
.sfe-module-shell a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):hover,
.main-content .data-table a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):hover,
.content-area .data-table a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):hover,
.sfe-module-shell .data-table a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):hover,
.main-content .o_list_view a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):hover,
.content-area .o_list_view a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):hover,
.project-dashboard a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):hover,
.crm-dashboard a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):hover,
.sale-dashboard a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):hover,
.main-content a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited:hover,
.content-area a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited:hover,
.sfe-module-shell a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited:hover,
.main-content .data-table a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited:hover,
.content-area .data-table a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited:hover,
.sfe-module-shell .data-table a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited:hover,
.main-content .o_list_view a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited:hover,
.content-area .o_list_view a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited:hover,
.project-dashboard a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited:hover,
.crm-dashboard a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited:hover,
.sale-dashboard a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):visited:hover,
a.sfe-link:hover,
a.sfe-link:visited:hover {
    color: var(--sfe-link-hover);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
    cursor: pointer;
}

.main-content a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus,
.content-area a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus,
.sfe-module-shell a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus,
.main-content .data-table a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus,
.content-area .data-table a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus,
.sfe-module-shell .data-table a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus,
.main-content .o_list_view a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus,
.content-area .o_list_view a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus,
.project-dashboard a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus,
.crm-dashboard a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus,
.sale-dashboard a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus,
a.sfe-link:focus {
    outline: none;
}

.main-content a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus-visible,
.content-area a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus-visible,
.sfe-module-shell a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus-visible,
.main-content .data-table a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus-visible,
.content-area .data-table a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus-visible,
.sfe-module-shell .data-table a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus-visible,
.main-content .o_list_view a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus-visible,
.content-area .o_list_view a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus-visible,
.project-dashboard a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus-visible,
.crm-dashboard a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus-visible,
.sale-dashboard a:not(
    .btn,
    .btn-primary,
    .btn-secondary,
    .btn-default,
    .btn-sm,
    .btn-success,
    .btn-danger,
    .btn-icon,
    .btn-outline,
    .discuss-module-nav-item,
    .crm-stat-card,
    .sfe-badge,
    .sfe-pill,
    .sfe-badge--solid,
    .crm-score-badge,
    .badge-primary,
    .gantt-bar,
    .holidays-leave-bar,
    .studio-badge,
    .app-badge-warning,
    [class*="-score-badge"],
    .o_app_tile,
    .o_app_icon,
    .nav-link,
    .o_ask_ai_fab,
    .o_apps_menu_btn,
    .o_apps_menu_logo
):focus-visible,
a.sfe-link:focus-visible {
    outline: 2px solid var(--sfe-focus-ring-color);
    outline-offset: 2px;
    border-radius: 2px;
}

/* Dashboard bar rows: clickable labels, not URLs */
.sale-dash-pipeline-label a,
.sale-dash-pipeline-label a:visited {
    color: inherit;
    font-weight: inherit;
    text-decoration: none;
}
.sale-dash-pipeline-label a:hover,
.sale-dash-pipeline-label a:visited:hover {
    color: var(--sfe-link-hover);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}

/* Breadcrumbs stay quieter than body ink */
.o_breadcrumb a,
.o_apps_breadcrumb a,
.documents-breadcrumb a,
.o_breadcrumb_link,
.o_breadcrumb_app {
    color: var(--sfe-text-muted);
    font-weight: 500;
    text-decoration: none;
}
.o_breadcrumb a:visited,
.o_apps_breadcrumb a:visited,
.documents-breadcrumb a:visited,
.o_breadcrumb_link:visited,
.o_breadcrumb_app:visited {
    color: var(--sfe-text-muted);
}
.o_breadcrumb a:hover,
.o_apps_breadcrumb a:hover,
.documents-breadcrumb a:hover,
.o_breadcrumb_link:hover,
.o_breadcrumb_app:hover {
    color: var(--sfe-link-hover);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}

/* Message bodies: real URLs — accent, still no purple visited */
:where(.main-content, .content-area) :is(.discuss-chat-message-text, .o_mail_message_body, .mail-message-body) a {
    color: var(--sfe-accent);
    text-decoration: none;
}
:where(.main-content, .content-area) :is(.discuss-chat-message-text, .o_mail_message_body, .mail-message-body) a:visited {
    color: var(--sfe-accent);
}
:where(.main-content, .content-area) :is(.discuss-chat-message-text, .o_mail_message_body, .mail-message-body) a:hover {
    color: var(--sfe-primary-dark);
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

/* Gear / config popovers: menu items, not hyperlinks (do not clobber layout) */
:where(.main-content, .content-area) :is(
    [class*="-gear-dropdown"],
    [class*="-gear-menu"],
    .sfe-config-dropdown,
    .discuss-module-nav-config-menu,
    .contacts-cp-gear-dropdown,
    .discuss-channels-cp-gear-dropdown
) a,
:where(.main-content, .content-area) :is(
    [class*="-gear-dropdown"],
    [class*="-gear-menu"],
    .sfe-config-dropdown,
    .discuss-module-nav-config-menu,
    .contacts-cp-gear-dropdown,
    .discuss-channels-cp-gear-dropdown
) a:hover,
:where(.main-content, .content-area) :is(
    [class*="-gear-dropdown"],
    [class*="-gear-menu"],
    .sfe-config-dropdown,
    .discuss-module-nav-config-menu,
    .contacts-cp-gear-dropdown,
    .discuss-channels-cp-gear-dropdown
) a:visited {
    color: inherit;
    text-decoration: none;
    font-weight: inherit;
}

/* Apps gear sits in the right header cluster. cachebust=apps-gear-right-20260816n */
.o_cp_right {
    overflow: visible;
    position: relative;
}
.o_cp_right .o_apps_settings_wrap {
    margin-left: 2px;
    z-index: 9;
}
.o_cp_right .o_apps_settings_wrap > .o_apps_settings_panel,
.o_cp_right .sfe-apps-settings-panel {
    right: 0 !important;
    left: auto !important;
}

/* ----- Solid badges: white on saturated fills (never gray-on-blue) -----
   Beats .crm-lead-list span muted ink and sfe-ui-pro-20260816l link color.
   cache-bust: sfe-ui-pro-20260817v */
.sfe-badge,
.sfe-pill,
.sfe-badge--solid {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    width: max-content;
    max-width: 100%;
    flex-shrink: 0;
    box-sizing: border-box;
    padding: 1px 8px;
    border-radius: var(--sfe-radius-pill);
    background: var(--sfe-accent);
    color: var(--sfe-badge-fg-on-solid);
    font-family: var(--sfe-font-sans);
    font-size: var(--sfe-font-size-xs);
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;
    white-space: nowrap;
}
.sfe-badge--success { background: var(--sfe-success); color: var(--sfe-badge-fg-on-solid); }
.sfe-badge--danger { background: var(--sfe-danger); color: var(--sfe-badge-fg-on-solid); }
.sfe-badge--warning { background: var(--sfe-warning); color: var(--sfe-badge-fg-on-solid); }
.sfe-badge--info { background: var(--sfe-info); color: var(--sfe-badge-fg-on-solid); }

.sfe-badge,
.sfe-pill,
.sfe-badge--solid,
.crm-score-badge,
.crm-score-badge.is-ml,
.crm-score-badge.is-ai,
.studio-badge,
.app-badge-warning,
.badge-primary,
.badge-success,
.badge-danger,
[class*="-score-badge"] {
    color: var(--sfe-badge-fg-on-solid);
    font-weight: 600;
}

.sfe-badge a,
.sfe-pill a,
.sfe-badge span,
.sfe-pill span,
.crm-score-badge a,
.crm-score-badge span,
a.sfe-badge,
a.sfe-pill,
a.crm-score-badge,
a.sfe-badge--solid,
a.badge-primary,
.crm-lead-list .crm-score-badge,
.crm-lead-list span.crm-score-badge,
.crm-lead-list a.crm-score-badge,
[class*="-score-badge"] a,
[class*="-score-badge"] span {
    color: var(--sfe-badge-fg-on-solid);
    font-weight: 600;
    text-decoration: none;
}

.sfe-badge:hover,
.sfe-pill:hover,
.sfe-badge--solid:hover,
.crm-score-badge:hover,
a.sfe-badge:hover,
a.sfe-pill:hover,
a.crm-score-badge:hover,
a.sfe-badge--solid:hover,
a.badge-primary:hover,
.sfe-badge a:hover,
.sfe-pill a:hover,
.crm-score-badge a:hover,
.sfe-badge:visited,
.sfe-pill:visited,
a.sfe-badge:visited,
a.sfe-pill:visited,
a.crm-score-badge:visited,
a.sfe-badge:visited:hover,
a.sfe-pill:visited:hover,
a.crm-score-badge:visited:hover {
    color: var(--sfe-badge-fg-on-solid);
    text-decoration: none;
}

/* ----- Solid blue chips / Gantt bars: white fg always (never ink / accent-on-blue) -----
 Quiet-link rules excluded .gantt-bar above; reinforce hover/visited/focus.
 cache-bust: sfe-ui-pro-20260817v */
a.gantt-bar,
.gantt-bar,
a.holidays-leave-bar,
.holidays-leave-bar {
 color: var(--sfe-badge-fg-on-solid);
 text-decoration: none;
 opacity: 1;
 visibility: visible;
}
a.gantt-bar:visited,
.gantt-bar:visited,
a.holidays-leave-bar:visited,
.holidays-leave-bar:visited,
a.gantt-bar:hover,
.gantt-bar:hover,
a.holidays-leave-bar:hover,
.holidays-leave-bar:hover,
a.gantt-bar:focus,
.gantt-bar:focus,
a.gantt-bar:focus-visible,
.gantt-bar:focus-visible,
a.gantt-bar:visited:hover,
.gantt-bar:visited:hover,
a.holidays-leave-bar:visited:hover,
.holidays-leave-bar:visited:hover {
 color: var(--sfe-badge-fg-on-solid);
 text-decoration: none;
 opacity: 1;
 visibility: visible;
}
a.gantt-bar span,
.gantt-bar span,
a.holidays-leave-bar span,
.holidays-leave-bar span {
 color: inherit;
 opacity: 1;
 visibility: visible;
}

/* Solid badges: keep white on hover even if quiet-link or list ink tries to win */
.sfe-badge:hover,
.sfe-pill:hover,
.sfe-badge--solid:hover,
.crm-score-badge:hover,
a.sfe-badge:hover,
a.sfe-pill:hover,
a.crm-score-badge:hover,
a.sfe-badge--solid:hover,
a.badge-primary:hover,
.sfe-badge:focus,
.sfe-pill:focus,
.crm-score-badge:focus,
a.sfe-badge:focus,
a.sfe-pill:focus,
a.crm-score-badge:focus,
.sfe-badge:focus-visible,
.sfe-pill:focus-visible,
.crm-score-badge:focus-visible,
[class*="-score-badge"]:hover,
[class*="-score-badge"]:focus,
a[class*="-score-badge"]:hover,
a[class*="-score-badge"]:visited,
a[class*="-score-badge"]:visited:hover {
 color: var(--sfe-badge-fg-on-solid);
 text-decoration: none;
 opacity: 1;
 visibility: visible;
}

/* ----- HARD FIX: white on solid primary/blue (20260817v) -----
   Wins quiet-link / list-ink / visited cascade. Do not mute solid fills.
   Secondary/outline buttons intentionally NOT included. */
.btn-primary,
a.btn-primary,
button.btn-primary,
input[type="submit"].btn-primary,
input[type="button"].btn-primary,
.o_form_view .btn-primary,
.list-view .btn-primary,
.sfe-module-shell__toolbar .btn-primary,
.sfe-page-actions .btn-primary,
.sfe-page-actions a.btn-primary,
.crm-dashboard-actions .btn-primary,
.crm-dashboard-actions a.btn-primary,
.stock-dashboard-actions .btn-primary,
[class*="-dashboard-actions"] .btn-primary,
[class*="-dashboard-actions"] a.btn-primary,
.main-content .btn-primary,
.main-content a.btn-primary,
.content-area .btn-primary,
.content-area a.btn-primary,
.sfe-module-shell .btn-primary,
.sfe-module-shell a.btn-primary,
.btn-primary:hover,
a.btn-primary:hover,
.btn-primary:focus,
a.btn-primary:focus,
.btn-primary:focus-visible,
a.btn-primary:focus-visible,
.btn-primary:active,
a.btn-primary:active,
.btn-primary:visited,
a.btn-primary:visited,
.btn-primary:visited:hover,
a.btn-primary:visited:hover,
.main-content a.btn-primary:visited,
.content-area a.btn-primary:visited,
.sfe-module-shell a.btn-primary:visited,
.main-content a.btn-primary:hover,
.content-area a.btn-primary:hover,
.sfe-module-shell a.btn-primary:hover {
    color: var(--sfe-on-accent, var(--sfe-badge-fg-on-solid, #fff)) !important;
    -webkit-text-fill-color: var(--sfe-on-accent, var(--sfe-badge-fg-on-solid, #fff)) !important;
    opacity: 1 !important;
}

.btn-primary i,
.btn-primary .fa,
.btn-primary .oi,
.btn-primary .o_button_icon,
.btn-primary svg,
a.btn-primary i,
a.btn-primary .fa,
a.btn-primary svg,
.btn-primary:hover i,
.btn-primary:hover svg,
a.btn-primary:hover i,
a.btn-primary:hover svg {
    color: var(--sfe-on-accent, #fff) !important;
    fill: currentColor !important;
    stroke: currentColor;
    opacity: 1 !important;
}

/* Success/danger solid fills (same contrast rule) */
.btn-success,
a.btn-success,
.btn-danger,
a.btn-danger,
.btn-success:hover,
a.btn-success:hover,
.btn-danger:hover,
a.btn-danger:hover,
.btn-success:visited,
a.btn-success:visited,
.btn-danger:visited,
a.btn-danger:visited {
    color: var(--sfe-on-accent, #fff) !important;
    -webkit-text-fill-color: var(--sfe-on-accent, #fff) !important;
}

/* Copiloto / Ask AI FAB */
.o_ask_ai_fab,
button.o_ask_ai_fab,
a.o_ask_ai_fab,
.o_ask_ai_fab:hover,
.o_ask_ai_fab:focus,
.o_ask_ai_fab:focus-visible,
.o_ask_ai_fab:active,
.o_ask_ai_fab:visited,
.o_ask_ai_fab_label,
.o_ask_ai_fab .o_ask_ai_fab_label,
.o_ask_ai_fab .icon,
.o_ask_ai_fab svg,
.o_ask_ai_fab i {
    color: var(--sfe-on-accent, #fff) !important;
    -webkit-text-fill-color: var(--sfe-on-accent, #fff) !important;
    fill: currentColor !important;
    opacity: 1 !important;
}

/* Search facets + active filter/search chips (solid primary bg) */
.o_searchview_facet,
.web-list-search .o_searchview_facet,
.o_searchview_facet > *,
.web-list-search-chip.is-active,
a.web-list-search-chip.is-active,
.web-list-search-chip.is-active:hover,
a.web-list-search-chip.is-active:hover,
.web-list-search-chip.is-active:visited,
a.web-list-search-chip.is-active:visited,
.web-list-search-chip.is-active:focus,
a.web-list-search-chip.is-active:focus,
.main-content a.web-list-search-chip.is-active,
.content-area a.web-list-search-chip.is-active,
.sfe-module-shell a.web-list-search-chip.is-active,
.main-content a.web-list-search-chip.is-active:visited,
.main-content a.web-list-search-chip.is-active:hover,
.sector-chip.is-active,
a.sector-chip.is-active,
.marketplace-filter.is-active,
a.marketplace-filter.is-active,
.marketplace-cat.is-active,
a.marketplace-cat.is-active,
.knowledge-category-chip.is-active,
a.knowledge-category-chip.is-active,
.social-stream-filter.is-active,
a.social-stream-filter.is-active {
    color: var(--sfe-on-accent, #fff) !important;
    -webkit-text-fill-color: var(--sfe-on-accent, #fff) !important;
    opacity: 1 !important;
    text-decoration: none !important;
}

.o_searchview_facet_remove,
.o_searchview_facet_remove:hover {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    opacity: 1 !important;
}

/* Solid badges / pills / gantt (reinforce) */
.sfe-badge,
.sfe-pill,
.sfe-badge--solid,
.crm-score-badge,
.badge-primary,
a.sfe-badge,
a.sfe-pill,
a.badge-primary,
a.gantt-bar,
.gantt-bar,
a.holidays-leave-bar,
.holidays-leave-bar,
.sfe-badge:hover,
.sfe-pill:hover,
a.sfe-badge:hover,
a.sfe-pill:hover,
a.gantt-bar:hover,
.gantt-bar:hover,
a.gantt-bar:visited,
.gantt-bar:visited,
a.sfe-badge:visited,
a.sfe-pill:visited {
    color: var(--sfe-badge-fg-on-solid, #fff) !important;
    -webkit-text-fill-color: var(--sfe-badge-fg-on-solid, #fff) !important;
    opacity: 1 !important;
}
/* ----- END HARD FIX white-on-primary ----- */

/* P1 mid-MX: bandeja validación proveedor + portal CSAT stars */
.vendor-validation-bandeja { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.vendor-validation-pdf-frame { width: 100%; min-height: 28rem; border: 1px solid var(--sfe-border, #e2e8f0); border-radius: var(--sfe-radius, 0.5rem); }
.vendor-diff-mismatch td { background: #fef2f2; }
.vendor-diff-match td { background: #f0fdf4; }
.portal-star-row { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 0.25rem; }
.portal-star-option input { position: absolute; opacity: 0; pointer-events: none; }
.portal-star { font-size: 2rem; color: #cbd5e1; cursor: pointer; line-height: 1; }
.portal-star-option input:checked ~ .portal-star,
.portal-star-option:hover .portal-star,
.portal-star-option:hover ~ .portal-star-option .portal-star { color: #f59e0b; }
@media (max-width: 56rem) {
  .vendor-validation-bandeja { grid-template-columns: 1fr; }
}

/* ----- Module nav: pills + «Más» + engranaje ----- */
.discuss-module-nav-group-wrap {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    position: relative;
}
.discuss-module-nav-group-toggle {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    border: 0;
    background: transparent;
    cursor: pointer;
    font: inherit;
    line-height: 1.2;
}
.discuss-module-nav-group-toggle.discuss-module-nav-item {
    padding: 7px 14px;
}
.discuss-module-nav-group-caret {
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 2px;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid currentColor;
    opacity: 0.55;
    transform: translateY(1px);
}
.discuss-module-nav-group-toggle.is-active,
.discuss-module-nav-group-toggle.is-active .discuss-module-nav-group-label {
    font-weight: 600;
}

/* Calendario agenda Odoo-style */
.cal-odoo { display: flex; flex-direction: column; gap: 10px; min-height: 70vh; }
.sfe-module-shell__body > .cal-odoo { width: 100%; min-height: 0; }
.cal-odoo__toolbar {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px;
    justify-content: space-between;
    padding: 8px 10px; border: 1px solid var(--sfe-border, #e5e7eb);
    border-radius: 10px; background: var(--sfe-surface, #fff);
}
.cal-odoo__toolbar-left, .cal-odoo__toolbar-right, .cal-odoo__nav-arrows, .cal-odoo__scale, .cal-odoo__views {
    display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px;
}
.cal-odoo__title { font-size: 1rem; font-weight: 700; margin: 0 4px; }
.cal-odoo__range { font-size: 0.85rem; opacity: 0.75; margin-left: 4px; }
.cal-odoo__search { display: inline-flex; gap: 6px; flex: 1 1 220px; max-width: 420px; }
.cal-odoo__search .form-control { flex: 1 1 auto; min-width: 120px; }
.cal-odoo__view-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 30px; height: 28px; border-radius: 6px; border: 1px solid var(--sfe-border, #e5e7eb);
    text-decoration: none; color: inherit; background: #fff; font-size: 14px;
}
.cal-odoo__view-btn.is-active, .cal-odoo__scale .btn.is-active {
    background: color-mix(in srgb, var(--sfe-primary, #2563eb) 12%, #fff);
    border-color: var(--sfe-primary, #2563eb); color: var(--sfe-primary, #2563eb);
}
.cal-odoo__body {
    display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 12px; align-items: start;
}
@media (max-width: 960px) {
    .cal-odoo__body { grid-template-columns: 1fr; }
}
.cal-odoo__grid-wrap {
    border: 1px solid var(--sfe-border, #e5e7eb); border-radius: 10px;
    background: #fff; overflow: auto; max-height: calc(100vh - 220px);
}
.cal-odoo__dayheads, .cal-odoo__grid {
    display: grid;
    grid-template-columns: 56px repeat(var(--cal-days, 7), minmax(90px, 1fr));
    min-width: 720px;
}
.cal-odoo__dayheads { position: sticky; top: 0; z-index: 2; background: #fff; border-bottom: 1px solid var(--sfe-border, #e5e7eb); }
.cal-odoo__corner { border-right: 1px solid var(--sfe-border, #e5e7eb); }
.cal-odoo__dayhead {
    display: flex; flex-direction: column; align-items: center; gap: 4px;
    padding: 8px 4px; border-right: 1px solid var(--sfe-border, #e5e7eb);
}
.cal-odoo__dow { font-size: 11px; font-weight: 700; letter-spacing: 0.04em; opacity: 0.65; }
.cal-odoo__dom {
    width: 28px; height: 28px; border-radius: 999px; display: inline-flex;
    align-items: center; justify-content: center; font-weight: 700; font-size: 14px;
}
.cal-odoo__dom.is-today { background: #e11d48; color: #fff; }
.cal-odoo__hours { display: grid; grid-template-rows: repeat(var(--cal-hours, 14), 48px); border-right: 1px solid var(--sfe-border, #e5e7eb); }
.cal-odoo__hour {
    font-size: 11px; color: #64748b; padding: 0 6px; transform: translateY(-7px);
    border-top: 1px solid transparent;
}
.cal-odoo__col {
    position: relative; display: grid; grid-template-rows: repeat(var(--cal-hours, 14), 48px);
    border-right: 1px solid var(--sfe-border, #e5e7eb); background:
        repeating-linear-gradient(to bottom, transparent 0, transparent 47px, #f1f5f9 47px, #f1f5f9 48px);
}
.cal-odoo__col.is-today { background-color: color-mix(in srgb, #e11d48 4%, #fff); }
.cal-odoo__slot { display: block; min-height: 48px; text-decoration: none; }
.cal-odoo__slot:hover { background: color-mix(in srgb, var(--sfe-primary, #2563eb) 8%, transparent); }
.cal-odoo__event {
    position: absolute; left: 3px; right: 3px; z-index: 1;
    padding: 3px 6px; border-radius: 5px; overflow: hidden;
    background: color-mix(in srgb, var(--cal-event-color, #875A7B) 88%, #000);
    color: #fff; text-decoration: none; font-size: 11px; line-height: 1.25;
    box-shadow: 0 1px 2px rgba(15,23,42,.15); border-left: 3px solid color-mix(in srgb, var(--cal-event-color, #875A7B) 70%, #000);
}
.cal-odoo__event strong { display: block; font-size: 12px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-odoo__event span, .cal-odoo__event small { display: block; opacity: 0.92; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-odoo__aside {
    border: 1px solid var(--sfe-border, #e5e7eb); border-radius: 10px;
    background: #fff; padding: 10px; display: flex; flex-direction: column; gap: 14px;
}
.cal-odoo__mini-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.cal-odoo__mini-head a { text-decoration: none; padding: 2px 8px; border-radius: 4px; }
.cal-odoo__mini-head a:hover { background: #f1f5f9; }
.cal-odoo__mini-grid {
    display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center;
}
.cal-odoo__mini-dow { font-size: 10px; font-weight: 700; opacity: 0.55; padding: 2px 0; }
.cal-odoo__mini-day {
    display: inline-flex; align-items: center; justify-content: center;
    width: 28px; height: 28px; margin: 0 auto; border-radius: 999px;
    font-size: 12px; text-decoration: none; color: inherit;
}
.cal-odoo__mini-day.is-out { opacity: 0.35; }
.cal-odoo__mini-day.is-today { background: #e11d48; color: #fff; font-weight: 700; }
.cal-odoo__mini-day.is-focus:not(.is-today) { outline: 2px solid var(--sfe-primary, #2563eb); }
.cal-odoo__aside-title { margin: 0 0 8px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; opacity: 0.7; }
.cal-odoo__attendees { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.cal-odoo__attendee {
    display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 6px;
    text-decoration: none; color: inherit; border: 1px solid transparent;
}
.cal-odoo__attendee.is-on { background: color-mix(in srgb, var(--sfe-primary, #2563eb) 8%, #fff); border-color: color-mix(in srgb, var(--sfe-primary, #2563eb) 25%, #fff); }
.cal-odoo__swatch { width: 12px; height: 12px; border-radius: 3px; flex: 0 0 auto; }
.cal-odoo__attendee-name { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-odoo__aside-link { display: inline-block; margin-top: 8px; font-size: 12px; }

/* ----- Activities To-Do kanban (/activities/todo) ----- */
.todo-odoo,
.todo-sfe {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-height: 65vh;
}
.sfe-module-shell__body > .todo-odoo,
.sfe-module-shell__body > .todo-sfe {
    width: 100%;
    min-height: 0;
}
.todo-odoo__toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    justify-content: space-between;
    padding: 8px 10px;
    border: 1px solid var(--sfe-border, #e5e7eb);
    border-radius: 10px;
    background: #fff;
}
.todo-odoo__toolbar-left,
.todo-odoo__views {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.todo-odoo__title {
    font-size: 1rem;
    font-weight: 700;
}
.todo-odoo__search {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    flex: 1 1 220px;
    max-width: 420px;
}
.todo-odoo__search .form-control {
    flex: 1 1 auto;
}
.todo-odoo__chip {
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--sfe-primary, #2563eb) 14%, #fff);
    color: var(--sfe-primary, #2563eb);
    font-weight: 600;
}
.todo-odoo__view-btn {
    width: 30px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--sfe-border, #e5e7eb);
    border-radius: 6px;
    text-decoration: none;
    color: inherit;
    background: #fff;
}
.todo-odoo__view-btn .icon {
    width: 16px;
    height: 16px;
}
.todo-odoo__view-btn.is-active {
    border-color: var(--sfe-primary, #2563eb);
    background: color-mix(in srgb, var(--sfe-primary, #2563eb) 12%, #fff);
}
.todo-odoo__board {
    display: flex;
    gap: 10px;
    align-items: stretch;
    overflow-x: auto;
    padding-bottom: 8px;
    min-height: 520px;
}
.todo-odoo__col {
    flex: 1 1 200px;
    min-width: 200px;
    max-width: 280px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    background: #f8fafc;
    border: 1px solid var(--sfe-border, #e5e7eb);
    border-radius: 10px;
    padding: 8px;
}
.todo-odoo__col.is-narrow {
    flex: 0 0 140px;
    min-width: 120px;
    max-width: 160px;
}
.todo-odoo__col.is-narrow .todo-odoo__col-title {
    writing-mode: horizontal-tb;
    transform: none;
    font-size: 12px;
}
.todo-odoo__col.is-narrow .todo-odoo__cards {
    display: flex;
}
.todo-odoo__col-head {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 2px 2px 6px;
}
.todo-odoo__col-title {
    font-size: 13px;
    font-weight: 700;
    flex: 1 1 auto;
}
.todo-odoo__col-count {
    font-size: 11px;
    min-width: 18px;
    height: 18px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e2e8f0;
    color: #334155;
    font-weight: 700;
}
.todo-odoo__col-add {
    width: 22px;
    height: 22px;
    border: 0;
    border-radius: 6px;
    cursor: pointer;
    background: transparent;
    font-size: 16px;
    line-height: 1;
    color: #64748b;
}
.todo-odoo__col-add:hover {
    background: #e2e8f0;
    color: #0f172a;
}
.todo-odoo__quick {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 8px;
    background: #fff;
    border: 1px solid var(--sfe-border, #e5e7eb);
    border-radius: 8px;
}
.todo-odoo__quick[hidden] {
    display: none !important;
}
.todo-odoo__quick-actions {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    align-items: center;
}
.todo-odoo__cards {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1 1 auto;
}
.todo-odoo__empty {
    margin: 8px 4px;
    font-size: 12px;
    opacity: 0.55;
}
.todo-odoo__card {
    position: relative;
    background: #fff;
    border: 1px solid var(--sfe-border, #e5e7eb);
    border-radius: 8px;
    padding: 10px 10px 28px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.todo-odoo__card.is-overdue {
    border-color: color-mix(in srgb, #e11d48 35%, #e5e7eb);
}
.todo-odoo__card-title {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: inherit;
    text-decoration: none;
    line-height: 1.35;
}
.todo-odoo__card-title:hover {
    color: var(--sfe-primary, #2563eb);
}
.todo-odoo__card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
    margin-top: 6px;
    font-size: 11px;
    color: #64748b;
}
.todo-odoo__card-date.is-overdue {
    color: #e11d48;
    font-weight: 700;
}
.todo-odoo__card-actions {
    position: absolute;
    right: 6px;
    bottom: 4px;
    display: inline-flex;
    gap: 2px;
}
.todo-odoo__icon-form {
    margin: 0;
}
.todo-odoo__icon-btn {
    border: 0;
    background: transparent;
    cursor: pointer;
    width: 24px;
    height: 24px;
    border-radius: 6px;
    color: #64748b;
    font-size: 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.todo-odoo__icon-btn .icon {
    width: 14px;
    height: 14px;
}
.todo-odoo__card-date {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.todo-odoo__card-date .icon {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
}
.todo-odoo__icon-btn:hover {
    background: #f1f5f9;
    color: #0f172a;
}

/* ----- Ops / server health dashboard ----- */
.sfe-metric-bar {
    height: 6px;
    border-radius: 999px;
    background: var(--gray-200, #e2e8f0);
    overflow: hidden;
    margin: 6px 0 4px;
}
.sfe-metric-bar > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--sfe-primary, #2563eb);
    transition: width .2s ease;
}
.helpdesk-stat-card.is-warning .sfe-metric-bar > span,
.project-stat-card.is-warning .sfe-metric-bar > span {
    background: #d97706;
}
.helpdesk-stat-card.is-critical .sfe-metric-bar > span,
.project-stat-card.is-critical .sfe-metric-bar > span {
    background: #dc2626;
}
.helpdesk-stat-card.is-critical,
.project-stat-card.is-critical {
    border-color: #fecaca;
    background: #fef2f2;
}
.tn-ops-level-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    color: #fff;
    background: var(--tn-ops-level, #64748b);
}
.tn-ops-service-state {
    font-size: 12px;
    font-weight: 600;
    padding: 2px 10px;
    border-radius: 999px;
    white-space: nowrap;
}
.tn-ops-service-state.is-ok {
    color: #166534;
    background: #dcfce7;
}
.tn-ops-service-state.is-bad {
    color: #991b1b;
    background: #fee2e2;
}
.tn-ops-fail2ban-log pre,
.tn-ops-log-panel pre {
    margin: 0;
    font-size: 12px;
    line-height: 1.45;
    white-space: pre-wrap;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.tn-ops-log-details summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--sfe-navy, #0f172a);
    margin-bottom: 8px;
}
.tn-ops-log-details[open] summary {
    margin-bottom: 10px;
}
.tn-ops-jail-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px;
    margin-bottom: 20px;
}
.tn-ops-jail-card h3 {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
}
.tn-ops-jail-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 12px;
}
.tn-ops-jail-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin: 0;
}
.tn-ops-jail-metrics dt {
    font-size: 11px;
    color: #64748b;
    margin: 0;
}
.tn-ops-jail-metrics dd {
    margin: 2px 0 0;
    font-weight: 600;
    font-size: 14px;
}
.tn-ops-banned-ips {
    margin-top: 12px;
}
.tn-ops-banned-ips ul {
    margin: 6px 0 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.tn-ops-banned-ips code {
    font-size: 12px;
    padding: 2px 8px;
    background: #fee2e2;
    color: #991b1b;
    border-radius: 6px;
}
.tn-ops-security-logs {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 16px;
    margin-bottom: 16px;
}


/* o_partner_form odoo-parity */
.o_form_view.o_partner_form .form-sheet-header .form-group[data-field="name"] input,
.o_form_view.o_partner_form .form-sheet-header .form-group[data-field="name"] .form-control {
  font-size: 1.35rem;
  font-weight: 600;
}
.o_form_view .sfe-form-section-title {
  margin: 1.25rem 0 0.5rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--o-gray-600, #6b7280);
}
.o_form_view .sfe-chatter-column {
  border-left: 1px solid var(--o-gray-200, #e5e7eb);
}
/* o_partner_form odoo-parity — sheet layout 20260910g */
/* Upload CSF — Odoo l10n_mx_res_partner_csf parity 20260910i */
.o_form_view.o_partner_form .o_partner_sheet__csf {
  margin: 0 0 0.75rem;
}
.o_form_view.o_partner_form .o_partner_csf_btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  cursor: pointer;
  margin: 0;
}
.o_form_view.o_partner_form .o_partner_csf_btn.is-busy {
  opacity: 0.7;
  pointer-events: none;
}
.o_form_view.o_partner_form .o_partner_sheet__address--inline {
  margin-top: 0.85rem;
}
.o_form_view.o_partner_form .o_partner_sheet__address--inline .sfe-form-section-title {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
}
.o_form_view.o_partner_form .o_partner_tags_placeholder {
  opacity: 0.85;
}

.o_form_view.o_partner_form .o_partner_sheet {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1rem;
}
.o_form_view.o_partner_form .o_partner_sheet__top {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1rem 1.5rem;
  align-items: start;
}
.o_form_view.o_partner_form .o_partner_sheet__body {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(220px, 0.9fr);
  gap: 1rem 1.5rem;
  align-items: start;
}
.o_form_view.o_partner_form .o_partner_sheet__avatar .o_field_partner_image {
  width: 90px;
}
.o_form_view.o_partner_form .o_form_image_controls {
  display: block;
  width: 90px;
  height: 90px;
  border: 1px solid var(--o-gray-300, #d1d5db);
  border-radius: 4px;
  overflow: hidden;
  cursor: pointer;
  background: var(--o-gray-100, #f3f4f6);
}
.o_form_view.o_partner_form .o_form_image_preview,
.o_form_view.o_partner_form .o_form_image_placeholder {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.o_form_view.o_partner_form .o_form_image_placeholder::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: center / 48% no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%239ca3af'%3E%3Cpath d='M3 21V3h18v18H3zm2-2h14V5H5v14zm2-2h10v-2.5l-2.5-2.5-2 2-3-3L7 14.5V17zm1.5-8a1.5 1.5 0 110 3 1.5 1.5 0 010-3z'/%3E%3C/svg%3E");
}
.o_form_view.o_partner_form .o_partner_image_actions:empty {
  display: none;
}
.o_form_view.o_partner_form .o_partner_company_type {
  display: inline-flex;
  gap: 0.75rem;
  margin-bottom: 0.35rem;
}
.o_form_view.o_partner_form .o_partner_company_type__opt {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-weight: 500;
  cursor: pointer;
  margin: 0;
}
.o_form_view.o_partner_form .o_partner_name_input,
.o_form_view.o_partner_form .o_partner_sheet__name .form-control {
  font-size: 1.5rem;
  font-weight: 600;
  border: none;
  border-bottom: 1px solid var(--o-gray-300, #d1d5db);
  border-radius: 0;
  padding-left: 0;
  background: transparent;
  box-shadow: none;
}
.o_form_view.o_partner_form .o_partner_sheet__contact-row {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 0.35rem;
  margin-top: 0.75rem;
  max-width: 28rem;
}
.o_form_view.o_partner_form .o_partner_icon_field {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
  width: 100%;
  min-width: 0;
  flex: 0 0 auto;
}
.o_form_view.o_partner_form .o_partner_icon_field__label {
  display: inline-flex;
  margin: 0;
  color: var(--o-gray-500, #6b7280);
}
.o_form_view.o_partner_form .o_partner_icon_field__label .icon {
  width: 18px;
  height: 18px;
}
.o_form_view.o_partner_form .o_partner_sheet__side .form-group {
  margin-bottom: 0.65rem;
}
.o_form_view.o_partner_form .o_partner_address_grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem 1rem;
}
.o_form_view.o_partner_form .o_partner_address_grid .form-group[data-field="street"],
.o_form_view.o_partner_form .o_partner_address_grid .form-group[data-field="street2"],
.o_form_view.o_partner_form .o_partner_address_grid .form-group[data-field="country_id"] {
  grid-column: 1 / -1;
}
.o_form_view.o_partner_form .o_partner_add_contact {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: stretch;
  margin: 0.5rem 0 1rem;
}
.o_form_view.o_partner_form .o_partner_add_contact__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-width: 160px;
  min-height: 110px;
  padding: 1rem 1.25rem;
  border: 1px dashed var(--o-gray-300, #d1d5db);
  border-radius: 6px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}
.o_form_view.o_partner_form .o_partner_add_contact__card:disabled {
  opacity: 0.85;
  cursor: not-allowed;
}
.o_form_view.o_partner_form .o_partner_add_contact__plus {
  font-size: 1.75rem;
  line-height: 1;
  color: var(--sfe-primary, #714B67);
}
.o_form_view.o_partner_form .o_partner_add_contact__label {
  font-weight: 600;
}
.o_form_view.o_partner_form .stat-button.is-disabled {
  opacity: 0.75;
  pointer-events: none;
  cursor: default;
}
.o_form_view.o_partner_form .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
@media (max-width: 520px) {
  .o_form_view.o_partner_form .o_partner_sheet__top {
    grid-template-columns: 1fr;
  }
  .o_form_view.o_partner_form .o_partner_sheet__body {
    grid-template-columns: 1fr;
  }
  .o_form_view.o_partner_form .o_partner_address_grid {
    grid-template-columns: 1fr;
  }
}
/* Con chatter (~620px sheet): mantener Dirección | RFC */
.o_form_view.o_partner_form .o_partner_sheet__body {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(160px, 0.75fr) !important;
}


/* purchase-odoo-parity-20260910j — smart buttons row like Odoo vendor */
.o_form_view.o_partner_form .oe-button-box.stat-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0;
}
.o_form_view.o_partner_form .oe-button-box .stat-button {
  min-width: 4.5rem;
}
