/* SFE UX innovadora - sfe-ui-innov-20260820s */

.o_systray_radar{display:inline-flex;align-items:center;gap:6px;margin-inline:4px 8px}
.o_systray_chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:6px;border:1px solid var(--sfe-border,#d8dde6);background:var(--sfe-surface,#fff);color:var(--sfe-text,#1f2937);font-size:12px;font-weight:600;line-height:1;text-decoration:none;white-space:nowrap;max-width:160px;position:relative}
.o_systray_chip:hover{border-color:var(--sfe-primary,#2563eb);color:var(--sfe-primary,#2563eb)}
.o_systray_chip__dot{width:7px;height:7px;border-radius:50%;background:#16a34a;flex:0 0 auto}
.o_systray_chip.is-warn .o_systray_chip__dot{background:#d97706}
.o_systray_chip.is-bad .o_systray_chip__dot{background:#dc2626}
.o_systray_chip__label{overflow:hidden;text-overflow:ellipsis}

.sfe-health-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:1400;width:min(320px,calc(100vw - 24px));border:1px solid var(--sfe-border,#d8dde6);border-radius:8px;background:var(--sfe-surface,#fff);box-shadow:0 10px 28px rgba(15,23,42,.12);padding:12px;display:grid;gap:10px}
.sfe-health-pop[hidden]{display:none!important}
.sfe-health-pop__title{margin:0;font-size:13px;font-weight:700}
.sfe-health-pop__meta{margin:0;font-size:12px;color:var(--sfe-text-muted,#6b7280)}
.sfe-health-pop__errors{margin:0;padding-left:1.1rem;font-size:12px;line-height:1.4}
.sfe-health-pop__errors li+li{margin-top:4px}
.sfe-health-pop__actions{display:flex;flex-wrap:wrap;gap:8px}

html[data-density="compact"] .data-table td,html[data-density="compact"] .data-table th{padding-block:6px}
html[data-density="comfortable"] .data-table td,html[data-density="comfortable"] .data-table th{padding-block:12px}
html[data-density="comfortable"] .o_systray_btn{width:36px;height:36px}

.sfe-split-layout{display:block}
.sfe-split-layout.is-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,36%);gap:12px;align-items:start}
.sfe-split-layout.is-split .sfe-split-layout__list{min-width:0}
.sfe-split-preview{position:sticky;top:12px;border:1px solid var(--sfe-border,#d8dde6);border-radius:8px;background:var(--sfe-surface,#fff);min-height:180px;padding:14px;max-height:calc(100vh - 96px);overflow:auto}
.sfe-split-preview__empty,.sfe-split-preview__loading{color:var(--sfe-text-muted,#6b7280);font-size:13px;margin:24px 0;text-align:center}
.sfe-split-preview__card{display:flex;flex-direction:column;gap:12px}
.sfe-split-preview__head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.sfe-split-preview__title{margin:0;font-size:15px;font-weight:700}
.sfe-split-preview__meta{margin:0;display:grid;gap:8px}
.sfe-split-preview__meta>div{display:grid;grid-template-columns:88px 1fr;gap:8px;font-size:13px}
.sfe-split-preview__meta dt{margin:0;color:var(--sfe-text-muted,#6b7280);font-weight:500}
.sfe-split-preview__meta dd{margin:0;font-weight:600}
.sfe-split-preview__chips{display:flex;flex-wrap:wrap;gap:6px}
.sfe-split-chip{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;border-radius:4px;border:1px solid var(--sfe-border,#d8dde6);background:var(--sfe-surface,#fff);font-size:11px;font-weight:600;line-height:1}
.sfe-split-chip--cfdi{border-color:color-mix(in srgb,#16a34a 35%,var(--sfe-border,#d8dde6))}
.sfe-split-chip--cfdi.is-warn{border-color:color-mix(in srgb,#d97706 40%,var(--sfe-border,#d8dde6))}
.sfe-split-chip--cfdi.is-bad{border-color:color-mix(in srgb,#dc2626 40%,var(--sfe-border,#d8dde6))}
.sfe-split-chip--residual{background:color-mix(in srgb,var(--sfe-primary,#2563eb) 8%,#fff)}
.sfe-split-chip--uuid{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.sfe-split-preview__section-title{margin:0 0 8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--sfe-text-muted,#6b7280)}
.sfe-split-preview__chatter{border-top:1px solid var(--sfe-border,#e5e7eb);padding-top:10px}
.sfe-split-preview__chatter-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sfe-split-preview__chatter-list li{display:grid;gap:2px;font-size:12px;line-height:1.35}
.sfe-split-preview__chatter-body{color:var(--sfe-text,#1f2937)}
.sfe-split-preview__chatter-time{color:var(--sfe-text-muted,#6b7280);font-size:11px}
.sfe-split-preview__foot{display:flex;flex-wrap:wrap;gap:8px}
.sfe-split-toggle{margin-left:auto}
.sfe-doc-list-chrome{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sfe-doc-list-view tr.clickable-row.is-selected{outline:2px solid var(--sfe-primary,#2563eb);outline-offset:-2px;background:color-mix(in srgb,var(--sfe-primary,#2563eb) 8%,transparent)}

.sfe-inline-state{height:28px;min-width:120px;border:1px solid var(--sfe-border,#d8dde6);border-radius:6px;background:var(--sfe-surface,#fff);font-size:12px;padding:0 6px}
.o_Chatter_timelineFilter{display:flex;gap:4px;padding:8px 0 4px;border-bottom:1px solid var(--sfe-border,#e5e7eb);margin-bottom:8px}
.o_Chatter_filter{appearance:none;border:0;background:transparent;color:var(--sfe-text-muted,#6b7280);font-size:12px;font-weight:600;padding:6px 10px;border-radius:999px;cursor:pointer}
.o_Chatter_filter.is-active{background:var(--sfe-primary-light,#eff6ff);color:var(--sfe-primary,#2563eb)}
.sfe-toast-undo{margin-left:8px}

.sfe-onboard{position:fixed;right:16px;bottom:16px;z-index:1200;width:min(360px,calc(100vw - 24px));opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .2s ease,transform .2s ease}
.sfe-onboard.is-visible{opacity:1;transform:none;pointer-events:auto}
.sfe-onboard__card{border:1px solid var(--sfe-border,#d8dde6);border-radius:10px;background:var(--sfe-surface,#fff);box-shadow:0 10px 28px rgba(15,23,42,.12);padding:14px;display:grid;gap:12px}
.sfe-onboard__head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.sfe-onboard__title{margin:0;font-size:15px;font-weight:700}
.sfe-onboard__sub{margin:4px 0 0;font-size:12px;color:var(--sfe-text-muted,#6b7280)}
.sfe-onboard__close{appearance:none;border:0;background:transparent;color:var(--sfe-text-muted,#6b7280);font-size:20px;line-height:1;cursor:pointer;padding:0 2px}
.sfe-onboard__list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.sfe-onboard__link{display:grid;gap:2px;width:100%;text-align:left;text-decoration:none;color:inherit;border:1px solid var(--sfe-border,#e5e7eb);border-radius:8px;background:var(--sfe-surface,#fff);padding:10px 12px;cursor:pointer;font:inherit}
.sfe-onboard__link:hover{border-color:var(--sfe-primary,#2563eb)}
.sfe-onboard__link strong{font-size:13px}
.sfe-onboard__link span{font-size:12px;color:var(--sfe-text-muted,#6b7280)}
.sfe-onboard__foot{display:flex;justify-content:flex-end;gap:8px}

.bank-reconcile-why-list{margin:0;padding-left:1.1rem;font-size:12px;line-height:1.35}
.bank-reconcile-spei-hints{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.bank-reconcile-spei-chip{display:inline-flex;align-items:center;padding:1px 6px;border-radius:4px;border:1px solid var(--sfe-border,#d8dde6);background:color-mix(in srgb,var(--sfe-primary,#2563eb) 8%,#fff);font-size:11px;font-weight:600;line-height:1.4}

/* Pack 20260820j */
.sfe-cfdi-ribbon{position:sticky;top:0;z-index:19;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-height:34px;padding:6px 12px;margin:0 0 10px;border:1px solid var(--sfe-border,#d8dde6);border-radius:6px;background:color-mix(in srgb,var(--sfe-surface,#fff) 92%,#f8fafc);box-shadow:0 1px 0 rgba(15,23,42,.04)}
.sfe-cfdi-ribbon[hidden]{display:none!important}
.sfe-cfdi-ribbon__label{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--sfe-text-muted,#6b7280)}
.sfe-cfdi-ribbon__actions{display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:auto}
.sfe-cfdi-ribbon__actions .btn{min-height:28px;padding:4px 10px;font-size:12px}
.form-view-toolbar.sfe-doc-sticky,.form-view-toolbar[data-sfe-doc-sticky]{position:sticky;top:0;z-index:18;background:var(--sfe-surface,#fff)}
.sfe-form-action-bar{position:fixed;left:var(--sidebar-width,260px);right:0;bottom:0;z-index:45;display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:48px;padding:10px 16px;margin:0;border:1px solid var(--sfe-border,#d8dde6);border-bottom:0;border-radius:10px 10px 0 0;background:color-mix(in srgb,var(--sfe-surface,#fff) 94%,#eff6ff);box-shadow:0 -8px 24px rgba(15,23,42,.12)}
.sfe-form-action-bar[hidden]{display:none!important}
.sfe-form-action-bar .btn{min-height:34px}
.sfe-form-action-bar__hint{margin-left:auto;font-size:11px;color:var(--sfe-text-muted,#6b7280)}
@media (max-width:900px){.sfe-form-action-bar{left:0}}
body.sfe-form-action-bar-visible{padding-bottom:56px}
body.sfe-has-form-action-bar:not(.sfe-form-action-bar-visible) .sfe-form-action-bar[hidden]{display:none!important}
body.sfe-has-form-action-bar:not(.sfe-form-action-bar-visible) #sfe-form-action-bar[data-sfe-dirty-gated="1"]{display:none!important}
/* sfe-dirty-gate-20260890 */
/* Nuclear dirty-gate: gated bar NEVER paints until data-open=1 (set only when form dirty). */
#sfe-form-action-bar[data-sfe-dirty-gated="1"]{display:none!important;visibility:hidden!important;pointer-events:none!important}
#sfe-form-action-bar[data-sfe-dirty-gated="1"][data-open="1"]{display:flex!important;visibility:visible!important;pointer-events:auto!important}
body:not(.sfe-form-action-bar-visible) #sfe-form-action-bar[data-sfe-dirty-gated="1"]{display:none!important}
/* Footer Guardar/Descartar: invisible on clean existing records (sticky owns dirty UI). */
body.sfe-has-form-action-bar:not(.sfe-form-action-bar-visible) .form-footer,
form.record-form[data-sfe-dirty-track="1"]:not([data-sfe-dirty="1"]) .form-footer{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;opacity:0!important;pointer-events:none!important}
/* Odoo-like discard X beside gear/title */
.sfe-form-discard-x{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin:0 4px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--sfe-text-muted,#6b7280);font-size:20px;line-height:1;cursor:pointer}
.sfe-form-discard-x:hover{background:rgba(15,23,42,.06);color:#111827}
.sfe-form-discard-x[hidden]{display:none!important}

/* Single sticky save bar: hide in-sheet footer clone source */
body.sfe-has-form-action-bar .form-footer,body.sfe-has-form-action-bar .o_form_sheet > .form-footer,body.sfe-has-form-action-bar .form-view .form-footer{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;opacity:0!important;pointer-events:none!important}

.sfe-facet-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:34px;margin:0 0 10px;width:100%}
.sfe-facet-chips[hidden]{display:none!important}
.sfe-facet-chip{display:inline-flex;align-items:center;gap:6px;height:28px;max-width:280px;padding:0 4px 0 10px;border-radius:6px;border:1px solid var(--sfe-border,#d8dde6);background:var(--sfe-surface,#fff);font-size:12px;font-weight:600;line-height:1}
.sfe-facet-chip__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sfe-facet-chip__remove{appearance:none;border:0;background:transparent;color:var(--sfe-text-muted,#6b7280);width:22px;height:22px;border-radius:4px;cursor:pointer;font-size:16px;line-height:1;padding:0}
.sfe-facet-chip__remove:hover{background:color-mix(in srgb,var(--sfe-primary,#2563eb) 10%,transparent);color:var(--sfe-primary,#2563eb)}
.sfe-facet-chips__clear{height:28px;min-height:28px;padding:0 10px;font-size:12px}

.bank-reconcile-confidence{display:grid;gap:4px;min-width:88px}
.bank-reconcile-confidence__bar{height:4px;border-radius:999px;background:#e5e7eb;overflow:hidden}
.bank-reconcile-confidence__fill{display:block;height:100%;border-radius:inherit;background:#16a34a}
.bank-reconcile-confidence.is-mid .bank-reconcile-confidence__fill{background:#d97706}
.bank-reconcile-confidence.is-low .bank-reconcile-confidence__fill{background:#dc2626}
.bank-reconcile-confidence__score{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.bank-reconcile-sticky-strip{position:sticky;bottom:0;z-index:16;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;margin-top:8px;border:1px solid var(--sfe-border,#d8dde6);border-radius:8px 8px 0 0;background:color-mix(in srgb,var(--sfe-surface,#fff) 92%,#ecfdf5);box-shadow:0 -6px 16px rgba(15,23,42,.08)}
.bank-reconcile-sticky-strip[hidden]{display:none!important}
.bank-reconcile-sticky-strip__label{font-size:12px;font-weight:700}
.bank-reconcile-sticky-strip__kbd{font-size:11px;color:var(--sfe-text-muted,#6b7280);margin-left:auto}
.bank-reconcile-sticky-strip .btn{min-height:34px}
#bank-reconcile tr.is-kbd-focus{outline:2px solid var(--sfe-primary,#2563eb);outline-offset:-2px}

.sfe-shortcuts-overlay{position:fixed;inset:0;z-index:1600;display:grid;place-items:center;padding:16px;background:rgba(15,23,42,.35)}
.sfe-shortcuts-overlay[hidden]{display:none!important}
.sfe-shortcuts-modal{width:min(520px,calc(100vw - 24px));max-height:min(80vh,640px);overflow:auto;border-radius:10px;border:1px solid var(--sfe-border,#d8dde6);background:var(--sfe-surface,#fff);box-shadow:0 18px 40px rgba(15,23,42,.18);padding:16px}
.sfe-shortcuts-modal__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.sfe-shortcuts-modal__title{margin:0;font-size:15px;font-weight:700}
.sfe-shortcuts-modal__close{appearance:none;border:0;background:transparent;font-size:20px;line-height:1;cursor:pointer;color:var(--sfe-text-muted,#6b7280)}
.sfe-shortcuts-table{width:100%;border-collapse:collapse;font-size:13px}
.sfe-shortcuts-table th,.sfe-shortcuts-table td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--sfe-border,#e5e7eb);vertical-align:top}
.sfe-shortcuts-table kbd{display:inline-block;min-width:1.4em;padding:2px 6px;border:1px solid var(--sfe-border,#d8dde6);border-radius:4px;background:#f8fafc;font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:600}

.sfe-doc-batch.is-floating,[data-sfe-doc-batch].is-floating{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:1300;display:flex!important;align-items:center;gap:10px 14px;min-height:44px;padding:10px 14px;border:1px solid var(--sfe-border,#d8dde6);border-radius:10px;background:var(--sfe-surface,#fff);box-shadow:0 12px 28px rgba(15,23,42,.16);max-width:calc(100vw - 24px)}
.sfe-doc-batch.is-floating .sfe-doc-batch__actions,[data-sfe-doc-batch].is-floating .sfe-doc-batch__actions{display:inline-flex;flex-wrap:wrap;gap:6px}

.form-view-toolbar .stat-buttons,.form-view-toolbar .oe-button-box,.oe-button-box.stat-buttons{display:flex;flex-wrap:wrap;gap:6px;align-items:stretch}
.form-view-toolbar .stat-button,.oe-button-box .stat-button{min-width:72px;min-height:52px;padding:6px 10px;border-radius:6px;gap:2px}
.form-view-toolbar .stat-button .stat-value,.oe-button-box .stat-button .stat-value{font-size:1.05rem;font-variant-numeric:tabular-nums}
.form-view-toolbar .stat-button .stat-label,.oe-button-box .stat-button .stat-label{font-size:11px;font-weight:600;text-align:center;max-width:96px;line-height:1.2}

@media (max-width:960px){
.sfe-split-layout.is-split{grid-template-columns:1fr}
.sfe-split-preview{position:static;max-height:none}
.o_systray_radar{display:none}
.sfe-onboard{left:12px;right:12px;width:auto}
.sfe-form-action-bar__hint,.bank-reconcile-sticky-strip__kbd{display:none}
}
@media (prefers-reduced-motion:reduce){.sfe-onboard{transition:none}}

/* Pack 20260820k â€” palette/empty/toast/status/print/esc */
.sfe-doc-empty{display:grid;gap:8px;justify-items:center;text-align:center;padding:28px 18px;max-width:28rem;margin:0 auto}
.sfe-doc-empty__title{margin:0;font-family:var(--sfe-font-display,inherit);font-size:15px;font-weight:700;color:var(--sfe-text,#1f2937);letter-spacing:-.01em}
.sfe-doc-empty__hint{margin:0;font-size:12.5px;line-height:1.45;color:var(--sfe-text-muted,#6b7280);max-width:24rem}
.sfe-doc-empty__actions{display:inline-flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:4px}
.sfe-doc-empty__actions .btn{min-height:34px}
td.empty-state.sfe-doc-empty-cell,td.sfe-doc-empty-cell{display:table-cell!important;width:100%!important;max-width:none!important;padding:1.25rem .75rem!important;border:0!important;background:transparent!important;vertical-align:middle;text-align:center}td.empty-state.sfe-doc-empty-cell .sfe-doc-empty,td.empty-state.sfe-doc-empty-cell .sfe-empty-state,td.sfe-doc-empty-cell .sfe-doc-empty,td.sfe-doc-empty-cell .sfe-empty-state{display:flex!important;flex-direction:column;align-items:center;justify-content:center;width:min(100%,36rem);max-width:36rem;margin:.5rem auto!important;box-sizing:border-box;padding:40px 24px!important;border:1px dashed color-mix(in srgb,var(--sfe-border,#d8dde6) 70%,var(--sfe-primary,#2563eb));border-radius:10px;background:color-mix(in srgb,var(--sfe-surface,#fff) 88%,#eff6ff)}
td.empty-state.sfe-doc-empty-cell .sfe-doc-empty{border:1px dashed color-mix(in srgb,var(--sfe-border,#d8dde6) 70%,var(--sfe-primary,#2563eb));border-radius:10px;background:color-mix(in srgb,var(--sfe-surface,#fff) 88%,#eff6ff)}

.o_command_section{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px 4px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--sfe-text-muted,#6b7280)}
.o_command_item{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px}
.o_command_item .o_command_label{min-width:0}
.o_command_fav{appearance:none;border:0;background:transparent;color:var(--sfe-text-muted,#9ca3af);cursor:pointer;width:28px;height:28px;border-radius:6px;font-size:14px;line-height:1}
.o_command_fav:hover,.o_command_fav.is-on{color:#d97706;background:color-mix(in srgb,#d97706 12%,transparent)}
.o_command_item--fav .o_command_meta::before{content:"â˜… ";color:#d97706}

.sfe-toast-undo{margin-left:10px;min-height:28px;padding:2px 10px;font-weight:700;border-color:var(--sfe-primary,#2563eb);color:var(--sfe-primary,#2563eb)}
#sfe-flash.is-visible .sfe-toast-card{box-shadow:0 12px 28px rgba(15,23,42,.14)}

.statusbar.o_statusbar_status{gap:10px}
.statusbar .status-step.active,.statusbar .status-step.o_arrow_button_current{box-shadow:0 0 0 2px color-mix(in srgb,var(--sfe-primary,#2563eb) 35%,transparent);font-weight:700}
.statusbar .status-step.active .status-step-label{font-weight:700;letter-spacing:.01em}
.statusbar .status-step.done{opacity:.92}
.statusbar .status-step.upcoming{opacity:.72}
body.sfe-has-form-action-bar .statusbar{position:sticky;top:0;z-index:17;background:var(--sfe-surface,#fff);padding-block:4px}

.report-actions,.sfe-report-chrome,.report-preview-toolbar{position:sticky;top:0;z-index:15;backdrop-filter:blur(6px);box-shadow:0 1px 0 rgba(15,23,42,.04)}
.report-actions .btn[href*="pdf"],.report-actions .btn[data-report="pdf"],.sfe-report-chrome .btn[href*="pdf"]{font-weight:700}
.form-report-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:40px}
.sfe-report-pro__label{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--sfe-text-muted,#6b7280);margin-right:4px}

@media (max-width:960px){
.sfe-doc-empty{padding:22px 14px}
.statusbar .status-step.active,.statusbar .status-step.o_arrow_button_current{box-shadow:none;outline:2px solid color-mix(in srgb,var(--sfe-primary,#2563eb) 40%,transparent)}
}

/* Pack 20260820l â€” breadcrumb / errors / chatter / freeze / hover / recents / confirm / badge / focus */
.o_breadcrumb.sfe-breadcrumb-pro{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;min-height:28px;font-size:12.5px;line-height:1.2}
.o_breadcrumb.sfe-breadcrumb-pro .o_breadcrumb_sep{color:var(--sfe-text-muted,#9ca3af);font-weight:500;margin:0 1px}
.o_breadcrumb.sfe-breadcrumb-pro .o_breadcrumb_link{color:var(--sfe-text-muted,#6b7280);text-decoration:none;font-weight:500;max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.o_breadcrumb.sfe-breadcrumb-pro .o_breadcrumb_link:hover{color:var(--sfe-primary,#2563eb)}
.o_breadcrumb.sfe-breadcrumb-pro .o_breadcrumb_app{font-weight:700;color:var(--sfe-text,#1f2937);text-transform:none;letter-spacing:0}
.o_breadcrumb.sfe-breadcrumb-pro .sfe-breadcrumb-pro__current,.o_breadcrumb.sfe-breadcrumb-pro .o_breadcrumb_page{font-weight:700;color:var(--sfe-text,#111827);max-width:min(42vw,22rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.o_apps_navbar_crumb.sfe-crumb-pro{font-size:13px;font-weight:600;color:var(--sfe-text,#1f2937);max-width:min(36vw,18rem);overflow:hidden;text-overflow:ellipsis}

.sfe-form-error-sum{position:sticky;bottom:52px;z-index:21;display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-height:36px;padding:8px 12px;margin:8px 0 0;border:1px solid color-mix(in srgb,#dc2626 28%,var(--sfe-border,#d8dde6));border-radius:8px;background:color-mix(in srgb,#fef2f2 88%,var(--sfe-surface,#fff));box-shadow:0 -4px 14px rgba(127,29,29,.06);font-size:12.5px}
.sfe-form-error-sum[hidden]{display:none!important}
.sfe-form-error-sum__title{font-weight:700;color:#991b1b}
.sfe-form-error-sum__list{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.sfe-form-error-sum__list button{appearance:none;border:1px solid color-mix(in srgb,#dc2626 22%,transparent);background:#fff;color:#991b1b;border-radius:999px;padding:2px 10px;font-size:11.5px;cursor:pointer;max-width:16rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sfe-form-error-sum__list button:hover{border-color:#dc2626;background:#fff1f2}
body.sfe-has-form-action-bar .sfe-form-error-sum{bottom:56px}

.o_Chatter_composer.sfe-composer-pro{padding:8px 10px;border:1px solid var(--sfe-border,#d8dde6);border-radius:8px;background:color-mix(in srgb,var(--sfe-surface,#fff) 92%,#f8fafc);display:grid;gap:6px}
.o_Chatter_composer.sfe-composer-pro .o_Composer_hint{font-size:11.5px;margin:0;color:var(--sfe-text-muted,#6b7280)}
.o_Chatter_composer.sfe-composer-pro .o_Composer_input{min-height:64px;resize:vertical;font-size:13px;padding:8px 10px}
.o_Chatter_composer.sfe-composer-pro .o_Composer_attach,.o_Chatter_composer.sfe-composer-pro .o_Composer_actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.o_Chatter_composer.sfe-composer-pro .o_Composer_actions{justify-content:flex-end;margin-top:0}
.o_Chatter_composer.sfe-composer-pro .sfe-composer-pro__kbd{margin-right:auto;font-size:11px;color:var(--sfe-text-muted,#9ca3af)}
.o_Chatter_composer.sfe-composer-pro .sfe-composer-pro__kbd kbd{font-size:10.5px;padding:1px 5px;border:1px solid var(--sfe-border,#d8dde6);border-radius:4px;background:#fff}

.table-responsive:has(.sfe-freeze-col){overflow-x:auto}
table.data-table.sfe-doc-table.sfe-freeze-col th:first-child,table.data-table.sfe-doc-table.sfe-freeze-col td:first-child{position:sticky;left:0;z-index:2;background:var(--sfe-surface,#fff);box-shadow:2px 0 0 rgba(15,23,42,.06)}
table.data-table.sfe-doc-table.sfe-freeze-col.sfe-freeze-col--check th:nth-child(2),table.data-table.sfe-doc-table.sfe-freeze-col.sfe-freeze-col--check td:nth-child(2){position:sticky;left:42px;z-index:2;background:var(--sfe-surface,#fff);box-shadow:2px 0 0 rgba(15,23,42,.06)}
table.data-table.sfe-doc-table.sfe-freeze-col.sfe-freeze-col--check th:first-child,table.data-table.sfe-doc-table.sfe-freeze-col.sfe-freeze-col--check td:first-child{left:0;min-width:42px;z-index:3;box-shadow:none}
table.data-table.sfe-doc-table.sfe-freeze-col thead th{z-index:4}

.sfe-doc-table .list-row-actions{opacity:0;pointer-events:none;transition:opacity .12s ease;white-space:nowrap}
.sfe-doc-table tr.clickable-row:hover .list-row-actions,.sfe-doc-table tr.clickable-row:focus-within .list-row-actions,.sfe-doc-table tr.clickable-row.is-row-actions-on .list-row-actions{opacity:1;pointer-events:auto}
.sfe-doc-table .list-row-actions .btn-icon,.sfe-doc-table .list-row-actions .btn{min-width:30px;min-height:30px}
@media (hover:none){.sfe-doc-table .list-row-actions{opacity:1;pointer-events:auto}}

.sfe-home-recents{display:grid;gap:8px;margin:0 0 16px;padding:12px 14px;border:1px solid var(--sfe-border,#d8dde6);border-radius:10px;background:color-mix(in srgb,var(--sfe-surface,#fff) 90%,#eff6ff)}
.sfe-home-recents__title{margin:0;font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--sfe-text-muted,#6b7280)}
.sfe-home-recents__list{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.sfe-home-recents__list a{display:inline-flex;align-items:center;gap:6px;max-width:16rem;padding:6px 10px;border:1px solid var(--sfe-border,#d8dde6);border-radius:8px;background:var(--sfe-surface,#fff);color:var(--sfe-text,#1f2937);font-size:12.5px;font-weight:600;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sfe-home-recents__list a:hover{border-color:var(--sfe-primary,#2563eb);color:var(--sfe-primary,#2563eb)}

.sfe-confirm.is-danger .sfe-confirm-dialog{border-color:color-mix(in srgb,#dc2626 35%,var(--sfe-border,#d8dde6));box-shadow:0 18px 40px rgba(127,29,29,.14)}
.sfe-confirm.is-danger .sfe-confirm-title{color:#991b1b}
.sfe-confirm.is-primary .sfe-confirm-dialog{border-color:color-mix(in srgb,var(--sfe-primary,#2563eb) 28%,var(--sfe-border,#d8dde6))}
.sfe-confirm .sfe-confirm-actions .btn-danger{min-width:7.5rem}

@keyframes sfe-badge-calm{0%{transform:scale(1)}35%{transform:scale(1.12)}70%{transform:scale(.96)}100%{transform:scale(1)}}
.o_systray_badge:not([hidden]){animation:sfe-badge-calm .9s ease-out 1}
.o_systray_badge.sfe-badge-pulse{animation:sfe-badge-calm .9s ease-out 1}

/* â€”â€” Pack m: palette icons, date presets, dropzone, soft hint, CFDI copy, FX, a11y, kanban â€”â€” */
.o_command_item--typed{grid-template-columns:28px 1fr auto auto;align-items:center}
.o_command_ico{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;font-size:12px;background:color-mix(in srgb,var(--sfe-surface-2,#f3f4f6) 88%,#dbeafe);color:var(--sfe-text-muted,#6b7280)}
.o_command_item--menu .o_command_ico{background:color-mix(in srgb,#2563eb 12%,#fff);color:#1d4ed8}
.o_command_item--record .o_command_ico{background:color-mix(in srgb,#059669 12%,#fff);color:#047857}
.o_command_item--action .o_command_ico{background:color-mix(in srgb,#7c3aed 10%,#fff);color:#6d28d9}
.o_command_item--page .o_command_ico{background:color-mix(in srgb,#d97706 12%,#fff);color:#b45309}
.o_command_section--pro{border-top:1px solid var(--sfe-border,#e5e7eb);margin-top:4px;padding-top:8px}
.o_command_section--pro:first-child{border-top:0;margin-top:0}

.sfe-date-presets{display:inline-flex;flex-wrap:wrap;gap:6px;margin:0 0 8px;align-items:center}
.sfe-date-presets__chip{appearance:none;border:1px solid var(--sfe-border,#d8dde6);background:var(--sfe-surface,#fff);color:var(--sfe-text,#1f2937);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;line-height:1.2;cursor:pointer;min-height:28px}
.sfe-date-presets__chip:hover{border-color:var(--sfe-primary,#2563eb);color:var(--sfe-primary,#2563eb)}
.sfe-date-presets__chip.is-active{background:color-mix(in srgb,var(--sfe-primary,#2563eb) 12%,#fff);border-color:var(--sfe-primary,#2563eb);color:var(--sfe-primary,#2563eb)}

.sfe-attach-dropzone{position:relative;transition:box-shadow .12s ease,border-color .12s ease,background .12s ease}
.sfe-attach-dropzone.is-dragover{outline:2px dashed var(--sfe-primary,#2563eb);outline-offset:2px;background:color-mix(in srgb,var(--sfe-primary,#2563eb) 6%,#fff)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sfe-primary,#2563eb) 25%,transparent)}
.sfe-attach-dropzone.is-files-ready .o_Composer_attachLabel,.sfe-form-attach.is-files-ready .sfe-form-attach__add{border-color:var(--sfe-primary,#2563eb)}
.sfe-form-attach.sfe-attach-dropzone{border-radius:8px;padding:2px}

.sfe-soft-load-hint{position:fixed;top:6px;left:50%;transform:translateX(-50%);z-index:16001;pointer-events:none;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--sfe-primary,#1d4ed8);background:color-mix(in srgb,#fff 88%,#dbeafe);border:1px solid color-mix(in srgb,var(--sfe-primary,#2563eb) 22%,#e5e7eb);box-shadow:0 1px 2px rgba(15,23,42,.06)}
.sfe-soft-load-hint[hidden]{display:none!important}
@media (prefers-reduced-motion:reduce){.sfe-soft-load-hint{transition:none}}

.sfe-cfdi-copy{min-height:28px!important;padding:4px 10px!important;font-size:12px!important}
.sfe-cfdi-ribbon .statusbar-edi__uuid{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}

.sfe-fx-chip{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:0 0 10px;padding:8px 12px;border:1px solid var(--sfe-border,#d8dde6);border-radius:8px;background:color-mix(in srgb,var(--sfe-surface,#fff) 90%,#ecfdf5);font-size:12.5px}
.sfe-fx-chip__row{display:inline-flex;gap:6px;align-items:baseline}
.sfe-fx-chip__k{color:var(--sfe-text-muted,#6b7280);font-weight:600;text-transform:uppercase;font-size:10.5px;letter-spacing:.04em}
.sfe-fx-chip__v{font-variant-numeric:tabular-nums;font-weight:700;color:var(--sfe-text,#111827)}
.sfe-fx-chip__row--res .sfe-fx-chip__v{color:#b45309}

.sfe-skip-link{position:absolute;left:-9999px;top:0;z-index:20000;padding:8px 14px;background:var(--sfe-primary,#2563eb);color:#fff;font-weight:700;font-size:13px;border-radius:0 0 8px 0;text-decoration:none}
.sfe-skip-link:focus,.sfe-skip-link:focus-visible{left:0;outline:2px solid #fff;outline-offset:2px}

.kanban-view .kanban-card.sfe-kanban-dense,.kanban-view .sfe-kanban-dense .kanban-card{padding:8px 10px}
.kanban-view .sfe-kanban-dense .kanban-card-title{font-size:13px}
.kanban-view .sfe-kanban-dense .kanban-card-field{font-size:11.5px;margin-top:2px}
.kanban-column.is-wip-warn{box-shadow:inset 0 0 0 1px color-mix(in srgb,#d97706 45%,transparent)}
.kanban-column.is-wip-hot{box-shadow:inset 0 0 0 1px color-mix(in srgb,#dc2626 55%,transparent)}
.sfe-kanban-wip{display:inline-flex;align-items:center;margin-left:4px;padding:1px 6px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.04em;color:#92400e;background:#fef3c7}
.kanban-column.is-wip-hot .sfe-kanban-wip{color:#991b1b;background:#fee2e2}
.sfe-kanban-wip:empty{display:none}

.sfe-settings-search-pro{min-height:34px}
.sfe-settings-search-empty{margin:0 0 12px;padding:8px 10px;border-radius:8px;background:#f9fafb;color:var(--sfe-text-muted,#6b7280);font-size:13px}

/* â€”â€” Pack 20260820o â€”â€” */
.sfe-cfdi-copy.is-copied {
  border-color: color-mix(in srgb, var(--sfe-primary, #2563eb) 45%, var(--sfe-border, #d8dde6)) !important;
  color: var(--sfe-primary, #2563eb) !important;
  background: color-mix(in srgb, var(--sfe-primary, #2563eb) 10%, #fff) !important;
}
.sfe-dirty-banner {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-right: auto;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  color: #92400e;
  background: #fef3c7;
  border: 1px solid color-mix(in srgb, #d97706 35%, transparent);
}
.sfe-dirty-banner[hidden] { display: none !important; }
.sfe-dirty-banner__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #d97706;
  flex: 0 0 auto;
}
.sfe-apps-empty-pro {
  display: grid !important;
  place-items: center;
  padding: 56px 20px !important;
}
.sfe-apps-empty-pro__inner {
  display: grid;
  gap: 8px;
  justify-items: center;
  max-width: 28rem;
  text-align: center;
}
.sfe-apps-empty-pro__ico {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: color-mix(in srgb, var(--sfe-surface, #fff) 90%, #dbeafe);
  border: 1px solid var(--sfe-border, #d8dde6);
  color: var(--sfe-primary, #2563eb);
  font-size: 18px;
}
.sfe-apps-empty-pro__title {
  font-family: var(--sfe-font-display, inherit);
  font-size: 15px;
  font-weight: 700;
  color: var(--sfe-text, #112937);
}
.sfe-apps-empty-pro__hint {
  font-size: 13px;
  line-height: 1.45;
  color: var(--sfe-text-muted, #6b7280);
}
.sfe-list-sort-pro thead th {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: var(--sfe-text-muted, #6b7280);
  white-space: nowrap;
}
.sfe-list-sort-pro thead th.is-sorted {
  color: var(--sfe-primary, #2563eb);
}
.sfe-list-sort-pro thead th.is-sorted::after {
  content: " â†‘";
  font-size: 10px;
  opacity: .85;
}

@media (prefers-reduced-motion: reduce) {
  .sfe-onboard,
  .sfe-soft-load-hint,
  .o_systray_badge.sfe-badge-pulse,
  .sfe-badge-pulse,
  .sfe-attach-dropzone {
    transition: none !important;
    animation: none !important;
  }
}
/* Pack 20260820p â€” save flash / chatter latest / tab overflow / pay progress / last view / quiet net */
.sfe-sticky-form-bar.sfe-save-flash,
.sfe-form-action-bar.sfe-save-flash {
  box-shadow: 0 0 0 2px color-mix(in srgb, #16a34a 55%, transparent), 0 8px 20px rgba(22, 163, 74, .18);
  transition: box-shadow .25s ease;
}
body.sfe-save-just-ok .oe_save_only,
body.sfe-save-just-ok .sfe-sticky-form-bar .btn-primary {
  outline: 2px solid color-mix(in srgb, #16a34a 70%, transparent);
  outline-offset: 1px;
}
.sfe-chatter-latest {
  position: sticky;
  bottom: 10px;
  float: right;
  clear: both;
  z-index: 5;
  margin: -36px 10px 8px auto;
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid var(--sfe-border, #d8dde6);
  background: var(--sfe-surface, #fff);
  box-shadow: 0 6px 16px rgba(15, 23, 42, .12);
  font-size: 12px;
  font-weight: 600;
  color: var(--sfe-primary, #2563eb);
  cursor: pointer;
}
.sfe-chatter-latest[hidden] { display: none !important; }
.sfe-chatter-latest:hover { background: color-mix(in srgb, var(--sfe-primary, #2563eb) 8%, #fff); }
/* 20260821t â€” inner tab scroller; gear outside; no page-level overflow-x */
.sfe-module-shell > .discuss-module-nav,
.sfe-module-shell > [class*="-module-nav"],
.sfe-module-shell > .module-subnav {
  flex-wrap: nowrap !important;
  min-width: 0;
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
}
.sfe-module-shell > .discuss-module-nav.sfe-module-nav--tabs-scroll,
.sfe-module-shell > [class*="-module-nav"].sfe-module-nav--tabs-scroll,
.sfe-module-shell > .module-subnav.sfe-module-nav--tabs-scroll {
  overflow: visible;
}
.sfe-module-tabs-scroll {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: nowrap !important;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
  mask-image: linear-gradient(90deg, #000 0%, #000 100%);
}
.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,
.sfe-module-shell > .discuss-module-nav > .contacts-cp-gear-wrap,
.sfe-module-shell > [class*="-module-nav"] > .contacts-cp-gear-wrap,
.sfe-module-shell > .discuss-module-nav > .o_apps_settings_wrap,
.sfe-module-shell > [class*="-module-nav"] > .o_apps_settings_wrap {
  flex: 0 0 auto;
  margin-left: 8px;
  position: relative;
  z-index: 6;
}
.sfe-module-tabs-scroll.is-tabs-overflow.is-tabs-can-right {
  mask-image: linear-gradient(90deg, #000 0%, #000 calc(100% - 28px), transparent 100%);
}
.sfe-module-tabs-scroll.is-tabs-overflow.is-tabs-can-left {
  mask-image: linear-gradient(90deg, transparent 0%, #000 28px, #000 100%);
}
.sfe-module-tabs-scroll.is-tabs-overflow.is-tabs-can-left.is-tabs-can-right {
  mask-image: linear-gradient(90deg, transparent 0%, #000 28px, #000 calc(100% - 28px), transparent 100%);
}
.o_breadcrumb.sfe-breadcrumb-pro .sfe-crumb-truncated {
  cursor: help;
}
.sfe-pay-progress {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 6px 0 10px;
  padding: 5px 10px;
  border-radius: 8px;
  border: 1px solid var(--sfe-border, #d8dde6);
  background: color-mix(in srgb, var(--sfe-surface, #fff) 92%, #eef2ff);
  font-size: 12px;
  line-height: 1.2;
  max-width: min(100%, 28rem);
}
.sfe-pay-progress__label {
  font-weight: 700;
  color: var(--sfe-text-muted, #6b7280);
  text-transform: uppercase;
  letter-spacing: .03em;
  font-size: 10.5px;
}
.sfe-pay-progress__track {
  flex: 1 1 7rem;
  height: 6px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--sfe-border, #d8dde6) 80%, #fff);
  overflow: hidden;
  min-width: 72px;
}
.sfe-pay-progress__fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--sfe-primary, #2563eb);
}
.sfe-pay-progress.is-paid .sfe-pay-progress__fill { background: #16a34a; }
.sfe-pay-progress.is-partial .sfe-pay-progress__fill { background: #d97706; }
.sfe-pay-progress.is-open .sfe-pay-progress__fill { background: #2563eb; }
.sfe-pay-progress__meta {
  font-variant-numeric: tabular-nums;
  color: var(--sfe-text, #1f2937);
  white-space: nowrap;
}
.sfe-last-view-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 6px 0 8px;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid var(--sfe-border, #d8dde6);
  background: var(--sfe-surface, #fff);
  color: var(--sfe-text, #1f2937);
  text-decoration: none;
  font-size: 12px;
  max-width: min(100%, 26rem);
}
.sfe-last-view-chip:hover {
  border-color: color-mix(in srgb, var(--sfe-primary, #2563eb) 40%, var(--sfe-border, #d8dde6));
  color: var(--sfe-primary, #2563eb);
}
.sfe-last-view-chip__k {
  font-weight: 700;
  color: var(--sfe-text-muted, #6b7280);
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.sfe-last-view-chip__v {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
}
body.sfe-quiet-net #sfe-flash,
body.sfe-quiet-net .sfe-flash {
  opacity: .92;
  font-size: 13px;
  max-width: min(92vw, 22rem);
}

/* â€”â€” Pack 20260820q â€”â€” */

@keyframes sfe-invalid-shake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-3px); }
  40% { transform: translateX(3px); }
  60% { transform: translateX(-2px); }
  80% { transform: translateX(2px); }
}
.sfe-invalid-shake,

.sfe-q-clear-host { position: relative; }
.sfe-q-clear-host .sfe-q-clear {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--sfe-text-muted, #6b7280);
  width: 22px;
  height: 22px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
  padding: 0;
  margin-left: -2px;
  flex: 0 0 auto;
}
.sfe-q-clear-host .sfe-q-clear:hover {
  background: color-mix(in srgb, var(--sfe-primary, #2563eb) 10%, transparent);
  color: var(--sfe-primary, #2563eb);
}
.web-list-search-bar.sfe-q-clear-host {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}

.sfe-result-count {
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 10px;
  margin: 0 0 10px 0;
  border-radius: 999px;
  border: 1px solid var(--sfe-border, #d8dde6);
  background: color-mix(in srgb, var(--sfe-surface, #fff) 92%, #eef2ff);
  color: var(--sfe-text-muted, #6b7280);
  font-size: 12px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
#sfe-facet-chips .sfe-result-count { margin: 0 0 0 auto; }

.sfe-split-layout.is-split {
  grid-template-columns: minmax(0, 1fr) 8px minmax(280px, 36%);
  gap: 0 4px;
  align-items: stretch;
}
.sfe-split-grip {
  width: 8px;
  margin: 0 2px;
  border-radius: 6px;
  cursor: col-resize;
  background: transparent;
  position: relative;
  align-self: stretch;
  min-height: 120px;
  touch-action: none;
  outline: none;
}
.sfe-split-grip__dots {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 4px;
  height: 28px;
  transform: translate(-50%, -50%);
  border-radius: 4px;
  background:
    radial-gradient(circle, var(--sfe-text-muted, #9ca3af) 1.1px, transparent 1.3px) center/4px 7px repeat-y;
  opacity: .7;
}
.sfe-split-grip:hover,
.sfe-split-layout.is-resizing .sfe-split-grip {
  background: color-mix(in srgb, var(--sfe-primary, #2563eb) 12%, transparent);
}
.sfe-split-grip:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--sfe-primary, #2563eb) 35%, transparent);
}
.sfe-split-layout.is-resizing { user-select: none; cursor: col-resize; }
.sfe-split-layout.is-resizing .sfe-split-preview { pointer-events: none; }

.sfe-company-pro .company-menu-trigger,
.sfe-company-pro__trigger {
  height: 32px;
  padding: 0 10px;
  border-radius: 8px;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 600;
}
.sfe-company-pro .company-menu-label {
  max-width: 11rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sfe-company-pro .company-menu-panel {
  border-radius: 10px;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .12);
  border: 1px solid var(--sfe-border, #d8dde6);
}
.sfe-company-pro .company-menu-item.is-active {
  background: color-mix(in srgb, var(--sfe-primary, #2563eb) 10%, #fff);
  font-weight: 700;
}
.sfe-company-pro__systray {
  max-width: 9.5rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: inline-block;
  vertical-align: middle;
  font-weight: 600;
}

.sfe-list-thead-sticky-host {
  overflow: auto;
  max-height: none;
}
.sfe-list-thead-sticky thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: color-mix(in srgb, var(--sfe-surface, #fff) 92%, #f3f4f6);
  box-shadow: 0 1px 0 var(--sfe-border, #e5e7eb);
  padding-top: 7px;
  padding-bottom: 7px;
  font-size: 11.5px;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: var(--sfe-text-muted, #6b7280);
  font-weight: 700;
}
.sfe-list-thead-sticky.sfe-list-sort-pro thead th.is-sorted {
  color: var(--sfe-primary, #2563eb);
}

.sfe-soft-ready-hint {
  position: fixed;
  top: 10px;
  right: 14px;
  z-index: 1200;
  padding: 4px 10px;
  border-radius: 999px;
  background: color-mix(in srgb, #16a34a 12%, #fff);
  border: 1px solid color-mix(in srgb, #16a34a 35%, #d8dde6);
  color: #166534;
  font-size: 11.5px;
  font-weight: 700;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity .18s ease, transform .18s ease;
  pointer-events: none;
}
.sfe-soft-ready-hint.is-on {
  opacity: 1;
  transform: translateY(0);
}

tr.clickable-row.sfe-row-kbd-hover {
  outline: 1px solid color-mix(in srgb, var(--sfe-primary, #2563eb) 35%, transparent);
  outline-offset: -1px;
}
@media (max-width: 900px) {
  .sfe-split-grip { display: none; }
  .sfe-split-layout.is-split { grid-template-columns: 1fr !important; }
}

/* â€”â€” Pack 20260820r â€”â€” */

@media (prefers-reduced-motion: reduce) {
 
}
html.sfe-reduced-motion.sfe-notebook-underline-r .notebook-tab::after {
 transition: none !important;
}

.sfe-pager-pro {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 6px 8px;
 padding: 6px 0 !important;
 margin-top: 8px !important;
}
.sfe-pager-pro .o_apps_pager_btn,
.sfe-pager-pro .portal-page-btn,
.sfe-pager-pro .btn {
 min-width: 30px !important;
 min-height: 30px !important;
 height: 30px !important;
 padding: 0 8px !important;
 font-size: 12px !important;
}
.sfe-pager-pro .o_apps_pager_range {
 font-size: 12px;
 font-variant-numeric: tabular-nums;
}
.sfe-pager-goto {
 display: inline-flex;
 align-items: center;
 gap: 4px;
 margin-left: 4px;
 padding: 2px 4px 2px 8px;
 border: 1px solid var(--sfe-border, #e5e7eb);
 border-radius: 8px;
 background: var(--sfe-surface, #fff);
}
.sfe-pager-goto__lab {
 font-size: 11px;
 font-weight: 600;
 color: var(--sfe-text-muted, #6b7280);
 margin: 0;
}
.sfe-pager-goto__input {
 width: 3.2rem;
 height: 26px;
 padding: 0 6px;
 border: 1px solid var(--sfe-border, #d8dde6);
 border-radius: 6px;
 font-size: 12px;
 font-variant-numeric: tabular-nums;
 text-align: center;
}
.sfe-pager-goto__of {
 font-size: 11px;
 color: var(--sfe-text-muted, #6b7280);
 font-variant-numeric: tabular-nums;
}
.sfe-pager-goto__btn {
 height: 26px;
 padding: 0 8px;
 border: none;
 border-radius: 6px;
 background: color-mix(in srgb, var(--sfe-primary, #2563eb) 12%, #fff);
 color: var(--sfe-primary-dark, #1d4ed8);
 font-size: 11.5px;
 font-weight: 700;
 cursor: pointer;
}
.sfe-pager-goto__btn:hover {
 background: color-mix(in srgb, var(--sfe-primary, #2563eb) 22%, #fff);
}

.sfe-export-print-pro,
.sfe-export-print-group {
 display: inline-flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 4px;
}
.sfe-export-print-group {
 padding: 2px;
 border: 1px solid var(--sfe-border, #e5e7eb);
 border-radius: 8px;
 background: color-mix(in srgb, var(--sfe-surface-muted, #f3f4f6) 70%, #fff);
}
.sfe-export-print-pro__btn,
.sfe-export-print-pro .btn,
.web-list-export-tpl.sfe-export-print-pro .btn,
.web-list-export-tpl.sfe-export-print-pro .web-list-search-chip {
 min-height: 30px;
 height: 30px;
 padding: 0 10px;
 font-size: 12px;
 border-radius: 6px;
 gap: 4px;
}
.sfe-export-print-pro .sfe-report-pro__label {
 margin-right: 2px;
}

.sfe-list-monetary {
 text-align: right !important;
 font-variant-numeric: tabular-nums;
 font-feature-settings: tnum 1;
 white-space: nowrap;
 font-weight: 600;
 letter-spacing: -.01em;
}
.sfe-list-monetary--head {
 font-weight: 700 !important;
 text-transform: uppercase;
 font-size: 11px;
 letter-spacing: .02em;
}

.sfe-idle-warn {
 position: fixed;
 bottom: 16px;
 left: 50%;
 transform: translateX(-50%) translateY(8px);
 z-index: 1250;
 display: flex;
 align-items: center;
 gap: 10px;
 max-width: min(420px, calc(100vw - 24px));
 padding: 8px 10px 8px 14px;
 border-radius: 10px;
 background: #111827;
 color: #f9fafb;
 border: 1px solid rgba(255,255,255,.08);
 box-shadow: 0 12px 32px rgba(15, 23, 42, .28);
 font-size: 12.5px;
 opacity: 0;
 pointer-events: none;
 transition: opacity .2s ease, transform .2s ease;
}
.sfe-idle-warn.is-on {
 opacity: 1;
 pointer-events: auto;
 transform: translateX(-50%) translateY(0);
}
.sfe-idle-warn__msg { flex: 1; line-height: 1.35; }
.sfe-idle-warn__x {
 border: none;
 background: transparent;
 color: #d1d5db;
 font-size: 16px;
 line-height: 1;
 cursor: pointer;
 padding: 2px 6px;
 border-radius: 6px;
}
.sfe-idle-warn__x:hover { background: rgba(255,255,255,.08); color: #fff; }

@media (prefers-reduced-motion: reduce) {
  .sfe-idle-warn { transition: none !important; }
}

}

.sfe-shortcuts-overlay:not([hidden]) .sfe-shortcuts-modal,
#sfe-onboard.is-visible,
.sfe-health-pop:not([hidden]) {
 outline: none;
}
.sfe-shortcuts-modal:focus-within,
#sfe-onboard.is-visible:focus-within,
.sfe-health-pop:not([hidden]):focus-within {
 box-shadow: 0 0 0 2px color-mix(in srgb, var(--sfe-primary, #2563eb) 35%, transparent);
}

/* â€”â€” Pack 20260820s â€”â€” */
.sfe-toast-stack {
  position: fixed;
  top: 64px;
  right: 16px;
  z-index: 1260;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: min(42vh, 320px);
  overflow: hidden;
  pointer-events: none;
  width: min(360px, calc(100vw - 24px));
}
.sfe-toast-stack__card {
  pointer-events: auto;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap: 2px 8px;
  padding: 8px 10px;
  border-radius: 10px;
  background: var(--sfe-surface, #fff);
  border: 1px solid var(--sfe-border, #d8dde6);
  box-shadow: 0 10px 24px rgba(15, 23, 42, .12);
  font-size: 12.5px;
  color: var(--sfe-text, #1f2937);
  opacity: 1;
  transition: opacity .25s ease, transform .25s ease, max-height .25s ease;
  max-height: 96px;
}
.sfe-toast-stack__card.is-success { border-left: 3px solid var(--sfe-success, #16a34a); }
.sfe-toast-stack__card.is-error { border-left: 3px solid var(--sfe-danger, #dc2626); }
.sfe-toast-stack__card.is-info { border-left: 3px solid var(--sfe-info, #2563eb); }
.sfe-toast-stack__title {
  grid-column: 1;
  font-size: 12px;
  font-weight: 700;
}
.sfe-toast-stack__msg {
  grid-column: 1;
  line-height: 1.35;
  color: var(--sfe-muted, #64748b);
}
.sfe-toast-stack__x {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: start;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
  color: #94a3b8;
  padding: 0 2px;
}
.sfe-toast-stack__card.is-collapsed {
  max-height: 28px;
  overflow: hidden;
  opacity: .55;
  transform: scale(.98);
}
.sfe-toast-stack__card.is-collapsed .sfe-toast-stack__msg,
.sfe-toast-stack__card.is-collapsed .sfe-toast-stack__x { display: none; }
.sfe-toast-stack__card.is-fading { opacity: 0; transform: translateY(-4px); }

.sfe-cmd-empty-pro {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 18px 14px !important;
  text-align: center;
  list-style: none;
}
.sfe-cmd-empty-pro__ico {
  font-size: 22px;
  opacity: .55;
  line-height: 1;
}
.sfe-cmd-empty-pro__title {
  font-size: 13px;
  font-weight: 700;
  color: var(--sfe-text, #1f2937);
}
.sfe-cmd-empty-pro__hint {
  font-size: 12px;
  color: var(--sfe-muted, #64748b);
  max-width: 280px;
  line-height: 1.4;
}

.sfe-record-id-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-inline-start: auto;
  height: 26px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid var(--sfe-border, #d8dde6);
  background: var(--sfe-surface-2, #f8fafc);
  color: var(--sfe-text, #1f2937);
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}
.sfe-record-id-chip code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 11px;
  font-weight: 700;
}
.sfe-record-id-chip__label {
  opacity: .65;
  letter-spacing: .04em;
  text-transform: uppercase;
  font-size: 10px;
}
.sfe-record-id-chip:hover {
  border-color: var(--sfe-primary, #2563eb);
  color: var(--sfe-primary, #2563eb);
}
.sfe-record-id-chip.is-copied {
  border-color: var(--sfe-success, #16a34a);
  color: var(--sfe-success, #16a34a);
}

@media (prefers-reduced-motion: reduce) {
  .sfe-toast-stack__card { transition: none !important; }
}

/* 20260821u — stock module nav groups (dropdowns; portal when inside tabs-scroll) */
.discuss-module-nav-group-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  overflow: visible;
  z-index: 5;
}
button.discuss-module-nav-group-toggle.discuss-module-nav-item {
  appearance: none;
  -webkit-appearance: none;
  border: none;
  cursor: pointer;
  font: inherit;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}
.discuss-module-nav-group-caret {
  display: inline-block;
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  opacity: 0.7;
  flex: 0 0 auto;
}
.discuss-module-nav-group-toggle[aria-expanded="true"] .discuss-module-nav-group-caret {
  transform: rotate(180deg);
  opacity: 1;
}
.discuss-module-nav-group-menu.is-portaled {
  position: fixed !important;
  left: auto !important;
  right: auto !important;
}
.sfe-module-shell > .discuss-module-nav .discuss-module-nav-group-wrap > .discuss-module-nav-group-menu,
.sfe-module-shell > [class*="-module-nav"] .discuss-module-nav-group-wrap > .discuss-module-nav-group-menu {
  left: 0 !important;
  right: auto !important;
}
.sfe-module-shell > .discuss-module-nav .discuss-module-nav-group-wrap > .discuss-module-nav-group-menu::before,
.sfe-module-shell > [class*="-module-nav"] .discuss-module-nav-group-wrap > .discuss-module-nav-group-menu::before {
  left: 12px;
  right: auto;
}

/* 20260821w — grouped stock nav: no scroller; gear far-right; menus not clipped */
.sfe-module-shell > .discuss-module-nav:has(.discuss-module-nav-group-wrap),
.sfe-module-shell > [class*="-module-nav"]:has(.discuss-module-nav-group-wrap) {
  overflow: visible;
  flex-wrap: nowrap;
}
.sfe-module-shell > .discuss-module-nav:has(.discuss-module-nav-group-wrap) > .sfe-module-tabs-scroll,
.sfe-module-shell > [class*="-module-nav"]:has(.discuss-module-nav-group-wrap) > .sfe-module-tabs-scroll {
  overflow: visible;
}
/* 20260840 — grouped nav (Inventario): engranaje pegado al menú como Asistencias/Actividades */
.sfe-module-shell > .discuss-module-nav:has(.discuss-module-nav-group-wrap) > .sfe-config-dropdown-wrap,
.sfe-module-shell > [class*="-module-nav"]:has(.discuss-module-nav-group-wrap) > .sfe-config-dropdown-wrap,
.sfe-module-shell > .discuss-module-nav:has(.discuss-module-nav-group-wrap) > .discuss-module-nav-config-wrap,
.sfe-module-shell > [class*="-module-nav"]:has(.discuss-module-nav-group-wrap) > .discuss-module-nav-config-wrap,
.sfe-module-shell > .discuss-module-nav:has(.discuss-module-nav-group-wrap) > .contacts-cp-gear-wrap,
.sfe-module-shell > [class*="-module-nav"]:has(.discuss-module-nav-group-wrap) > .contacts-cp-gear-wrap,
.sfe-module-shell > .discuss-module-nav:has(.discuss-module-nav-group-wrap) > .o_apps_settings_wrap,
.sfe-module-shell > [class*="-module-nav"]:has(.discuss-module-nav-group-wrap) > .o_apps_settings_wrap {
  margin-left: 0 !important;
}
/* 20260821x â€” portaled module-nav menus: fixed under toggle (override app.css top:100% !important) */
.sfe-config-dropdown.is-portaled,
.discuss-module-nav-config-menu.is-portaled,
.discuss-module-nav-group-menu.is-portaled,
.contacts-cp-gear-dropdown.is-portaled,
.discuss-channels-cp-gear-dropdown.is-portaled {
  position: fixed !important;
  top: var(--sfe-nav-menu-top, 0) !important;
  left: var(--sfe-nav-menu-left, 0) !important;
  right: auto !important;
  bottom: auto !important;
  z-index: 10050 !important;
  margin-top: 0 !important;
  transform: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  min-width: 220px;
  max-width: min(340px, calc(100vw - 24px));
  max-height: min(70vh, calc(100vh - 24px));
  overflow-y: auto;
  padding: 8px 0 !important;
  background: #fff !important;
  border: 1px solid #d8dee6 !important;
  border-radius: 10px !important;
  box-shadow: 0 8px 24px rgba(30, 43, 60, 0.12) !important;
  white-space: normal !important;
}
.sfe-config-dropdown.is-portaled .discuss-module-nav-config-item,
.discuss-module-nav-config-menu.is-portaled .discuss-module-nav-config-item,
.discuss-module-nav-group-menu.is-portaled .discuss-module-nav-config-item {
  display: block !important;
  padding: 8px 14px !important;
  color: #1f2937 !important;
  text-decoration: none !important;
  background: transparent !important;
}

th.sfe-select-all-th-z {
  position: relative;
  min-width: 42px;
  vertical-align: middle;
}
th.sfe-select-all-th-z .sfe-select-all-meta {
  display: block;
  margin-top: 2px;
  font-size: 10px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--sfe-text-muted, #6b7280);
  line-height: 1;
  text-align: center;
}
input.sfe-select-all-z {
  width: 15px;
  height: 15px;
  cursor: pointer;
  accent-color: var(--sfe-primary, #2563eb);
}

.o_breadcrumb.sfe-breadcrumb-pro .sfe-crumb-copyable {
  cursor: copy;
  border-radius: 4px;
  padding: 1px 4px;
  margin-inline: -4px;
}
.o_breadcrumb.sfe-breadcrumb-pro .sfe-crumb-copyable:hover {
  background: color-mix(in srgb, var(--sfe-primary, #2563eb) 8%, transparent);
}
.o_breadcrumb.sfe-breadcrumb-pro .sfe-crumb-copyable.is-copied {
  background: color-mix(in srgb, #16a34a 14%, transparent);
  color: #166534;
}

@media (prefers-reduced-motion: reduce) {
  
  
}

.sfe-title-truncate-z {
  max-width: min(52vw, 28rem);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: inline-block;
  vertical-align: bottom;
}
.sfe-title-truncate-z.is-truncated {
  cursor: help;
}

/* â€”â€” Pack 20260822a: filter drawer, notebook+CFDI, kanban empty, attach chips, install busy, offline â€”â€” */

.kanban-column.is-empty-col .kanban-cards {
  min-height: 88px;
}
.sfe-kanban-col-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin: 4px 2px;
  padding: 18px 12px;
  border: 1px dashed color-mix(in srgb, var(--sfe-border, #d8dde6) 85%, #94a3b8);
  border-radius: 8px;
  background: color-mix(in srgb, var(--sfe-surface, #fff) 88%, #f1f5f9);
  color: var(--sfe-text-muted, #6b7280);
  text-align: center;
  pointer-events: none;
}
.sfe-kanban-col-empty__title {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--sfe-text, #1f2937);
}
.sfe-kanban-col-empty__hint {
  font-size: 11.5px;
  line-height: 1.35;
  max-width: 16rem;
}

@keyframes sfe-install-spin-a {
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  
}

.sfe-offline-banner {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 32px;
  padding: 6px 12px;
  background: color-mix(in srgb, #92400e 92%, #111);
  color: #fffbeb;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .01em;
  box-shadow: 0 2px 8px rgba(15, 23, 42, .18);
}
.sfe-offline-banner[hidden] { display: none !important; }
.sfe-offline-banner__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #fbbf24;
  flex: 0 0 auto;
}
.sfe-offline-banner__dismiss {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  opacity: .85;
  cursor: pointer;
  font-size: 16px;
  line-height: 1;
  padding: 2px 4px;
  border-radius: 4px;
  margin-left: 4px;
}
.sfe-offline-banner__dismiss:hover {
  opacity: 1;
  background: rgba(255,255,255,.12);
}

/* —— Pack 20260822b (dialog display fixed in 22c) —— */
/* —— Pack 20260822c: soft-nav loader + dialog zombies —— */
/* 1. List zebra: subtler tint + denser rows */

/* 2. Form fieldset collapse */

@media (prefers-reduced-motion: reduce) {
  
}

/* 3. Modal/dialog: max-height + body scroll — ONLY when open.
   Closed <dialog> must stay display:none (UA). Pack 22b display:flex on all
   .sfe-doc-dialog made template-preview / convert checklist zombie at bottom-left. */
dialog.sfe-doc-dialog:not([open]),
dialog.sfe-shortcuts-modal:not([open]) {
  display: none !important;
}

/* 4. List search history chips */
.sfe-q-history {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 6px 0 2px;
  max-width: 100%;
}
.sfe-q-history[hidden] { display: none !important; }
.sfe-q-history__label {
  font-size: 11px;
  font-weight: 600;
  color: var(--sfe-text-muted, #64748b);
  margin-right: 2px;
}
.sfe-q-history__chip {
  appearance: none;
  border: 1px solid var(--sfe-border, #d8dde6);
  background: color-mix(in srgb, var(--sfe-surface, #fff) 88%, #eef2ff);
  color: var(--sfe-text, #0f172a);
  border-radius: 999px;
  padding: 2px 10px;
  font-size: 11.5px;
  font-weight: 600;
  line-height: 1.4;
  cursor: pointer;
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.sfe-q-history__chip:hover {
  border-color: color-mix(in srgb, var(--sfe-primary, #2563eb) 45%, var(--sfe-border, #d8dde6));
  color: var(--sfe-primary, #2563eb);
}
.sfe-q-history__clear {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--sfe-text-muted, #64748b);
  font-size: 11px;
  cursor: pointer;
  padding: 2px 4px;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.sfe-q-history__clear:hover { color: var(--sfe-danger, #dc2626); }

/* 5. Calendar / agenda densify */

/* 6. Failed-save red pulse */
.sfe-sticky-form-bar.sfe-save-flash-fail,
.sfe-form-action-bar.sfe-save-flash-fail {
  box-shadow: 0 0 0 2px color-mix(in srgb, #dc2626 55%, transparent), 0 8px 20px rgba(220, 38, 38, .18);
  transition: box-shadow .25s ease;
}
body.sfe-save-just-fail .oe_save_only,
body.sfe-save-just-fail .sfe-sticky-form-bar .btn-primary {
  outline: 2px solid color-mix(in srgb, #dc2626 70%, transparent);
  outline-offset: 1px;
}

/* —— Pack 20260822d: statusbar / selected+split / empty preview / chatter / settings / a11y —— */

/* 1. Densify form statusbar + workflow / oe_button_box */

/* 2. Selected row + split-pane open highlight */

/* 3. Empty split-preview — richer copy */
.sfe-split-preview__empty {
  margin: 28px 12px;
  text-align: center;
  color: var(--sfe-text-muted, #64748b);
}
.sfe-split-preview__empty-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin: 0 auto 10px;
  border-radius: 10px;
  border: 1px dashed color-mix(in srgb, var(--sfe-primary, #2563eb) 30%, var(--sfe-border, #d8dde6));
  background: color-mix(in srgb, var(--sfe-primary, #2563eb) 6%, #fff);
  color: var(--sfe-primary, #2563eb);
  font-size: 18px;
  line-height: 1;
}
.sfe-split-preview__empty-title {
  display: block;
  margin: 0 0 4px;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--sfe-text, #0f172a);
}
.sfe-split-preview__empty-hint {
  display: block;
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
  color: var(--sfe-text-muted, #64748b);
  max-width: 220px;
  margin-inline: auto;
}

/* 4. Chatter header densify + composer send */

/* 5. Settings section cards — less boxy */

/* 6. Soft-nav Listo hint — shorter fade (paired with JS 420ms) */
.sfe-soft-ready-hint {
  transition: opacity .18s ease, transform .18s ease;
}
.sfe-soft-ready-hint.is-on {
  opacity: 1;
}

/* 7. Stronger focus-visible on primary actions */

/* ===== Pack 20260822e — careful GUI polish ===== */

/* 1. Breadcrumb densify: thinner seps + compact home glyph */

/* 2. Form oe_title / record name typography */

/* 3. Pager meta «X–Y de Z» */
.sfe-pager-pro .o_apps_pager_range.sfe-pager-range-e,
.sfe-pager-range-e {
  display: inline-flex;
  align-items: baseline;
  gap: 3px;
  font-size: 12px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--sfe-text, #1f2937);
  letter-spacing: .01em;
  white-space: nowrap;
}
.sfe-pager-range-e__from,
.sfe-pager-range-e__to,
.sfe-pager-range-e__total {
  font-weight: 700;
}
.sfe-pager-range-e__de {
  font-size: 11px;
  font-weight: 550;
  color: var(--sfe-text-muted, #64748b);
  text-transform: lowercase;
}
.sfe-pager-range-e__sep {
  color: var(--sfe-text-muted, #94a3b8);
  font-weight: 500;
  margin: 0 1px;
}

/* 4. Soft-nav error toast (quiet densify) */
body.sfe-quiet-net #sfe-flash[data-type='error'],
body.sfe-quiet-net .sfe-flash.is-error,
body.sfe-quiet-net .o_notification.o_error {
  border-left-width: 3px;
  box-shadow: 0 4px 14px rgba(15, 23, 42, .08);
}

/* 5. Systray activity / inbox badges densify */

/* 6. Split preview action buttons equal height */

/* 7. Print / preview toolbar densify */

@media (prefers-reduced-motion: reduce) {
  
}

/* ===== Pack 20260822f — careful GUI polish ===== */

/* 1. Form notebook / tab pills densify (NOT module shell nav) */

/* Keep module-shell / discuss portal nav untouched */

/* 2. Empty-state Crear CTA polish */

/* 3. Sticky form action bar — subtler shadow */

/* 4. Stat button icon + label gap */

/* 5. Breadcrumb quiet underline on hover (links only) */

@media (prefers-reduced-motion: reduce) {
  
}

/* 6. Split resize grip — cursor + hit area */

/* ===== Pack 20260822g — careful GUI polish ===== */

/* 1. Many2one clear (×) — densify clear affordance inside input wrap */

/* 2. Binary / logo / attach upload — quiet indeterminate progress */
@keyframes sfe-upload-indeterminate-g {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}

@media (prefers-reduced-motion: reduce) {
  
}

/* 3. List checkbox column — denser width */

/* 4. Module shell tabs — clearer focus-visible ring (not soft-nav) */

/* 5. Copiloto FAB — denser, less collision with sticky bars */

@media (max-width: 480px) {
  
  
}
@media (prefers-reduced-motion: reduce) {
  
}

/* 6. Settings search clear (×) */

/* ===== Pack 20260822h — careful GUI polish ===== */

/* 1. Form monetary / qty inputs — tabular-nums + denser */

/* 2. List column resize handle — quiet grip on list th */

/* 3. Toast success/error icons — denser */

/* 4. Apps marketplace card grid — denser gaps */

/* 5. Clickable dashboard KPI — pointer cursor */

/* 6. Form one2many / line-editor densify */

/* ===== Pack 20260822i — careful GUI polish ===== */

/* 1. Date / datetime / time inputs — denser control height */

/* 2. Bulk bar selection count — primary chip color */

/* 3. Form radio / checkbox labels — denser */

/* 4. Quiet table footer / totals row */

/* 5. In-app user menu dropdown — denser polish */

/* 6. Soft-nav hint: never stack with branded overlay pill */

/* ===== Pack 20260822j — careful GUI polish ===== */

/* 1. Chatter message bubbles — densify */

/* 2. Form warning / info alerts — densify */

/* 3. List group header expand/collapse caret polish */

@media (prefers-reduced-motion: reduce) {
  
}

/* 4. Control panel search height consistency */

/* 5. Quiet disabled button opacity */

/* 6. Installed apps card — quieter hover shadow */

@media (prefers-reduced-motion: reduce) {
  
  
}

/* —— Pack 20260822k —— */
/* 1. Form char/text counters (maxlength) */

/* 2. List tag pills / badge status densify */

/* 3. Quiet scrollbar — module body / content / split */

/* 4. Wizard / stepper densify */

/* 5. Form image / avatar circle crop polish */

/* 6. Form sheet header densify when avatar present */

/* ===== Pack sfe-ui-innov-20260822l (careful polish) ===== */

/* 1. HTML editor / notes wysiwyg toolbar densify */

/* 2. List «Mostrar columnas» panel densify */

/* 3. Form priority / star densify */

/* 4. Quiet code/pre in chatter */

/* 5. Bank reconcile leftover chrome densify (leave SPEI cockpit alone) */

/* Explicitly do not restyle SPEI cockpit: why-list, chips, confidence, sticky strip */

/* 6. Form relational open-external link polish */

/* ===== Pack 20260822m — careful GUI polish ===== */

/* 1. Gantt / timeline chrome densify */

/* 2. Leaflet / map controls densify */

/* 3. Signature pad chrome densify */

/* 4. Quiet attach remove × (form chips + list filter chip-x) */

/* 5. Pivot / graph view toolbars densify */

/* 6. Form domain / filter widget densify (filter bands + list search chrome) */

/* ===== Pack sfe-ui-innov-20260822n (careful polish) ===== */

/* 1. View switcher densify (list/kanban/gantt/calendar) */

/* 2. Progress / meter densify */

/* 3. Activity feed densify */

/* 4. Systray / notification dropdown densify */

/* 5. Mail composer densify */

/* 6. Form sheet badges / status tags densify */

/* ===== Pack sfe-ui-innov-20260822o (careful polish) ===== */

/* 1. Timeline densify */

/* 2. Color picker densify */

/* 3. Rating / priority stars densify */

/* 4. Control panel / form action buttons densify */

/* 5. Quiet empty table cells */

/* 6. Popover / tooltip densify */

/* ===== Pack sfe-ui-innov-20260822p (careful polish) ===== */

/* 1. Sidebar / discuss nav densify */

/* 2. Toggle / boolean switch densify */

/* 3. Avatar stack densify */

/* 4. Form ribbon / button box densify */

/* 5. Search facet chips quieter densify */

/* 6. List footer / pager meta densify */

/* ===== Pack sfe-ui-innov-20260822q (careful polish) ===== */

/* 1. Accordion densify */

/* 2. Quiet underline tabs (forms/notebook already densified — polish classic nav-tabs) */

/* 3. Card / dashboard header densify */

/* 4. Input group densify */

/* 5. Alert / flash banner densify */

/* 6. Table row action column densify */

/* ===== Pack sfe-ui-innov-20260822r (careful polish) ===== */

/* 1. Breadcrumb trail quieter densify */

/* 2. Stat / KPI strip densify */

/* 3. Filter chip row densify */

/* 4. Modal footer densify (open dialogs only — never closed) */

/* 5. List tools toolbar densify */

/* 6. Field help / hint quieter */

/* ===== Pack sfe-ui-innov-20260822s (careful polish) ===== */

/* 1. Dropdown menus densify (not module-nav portals — those stay as-is) */

/* 2. Pagination densify */

/* 3. Badge / pill quieter densify */

/* 4. Form label gap densify */

/* 5. Split divider quieter */

/* 6. Soft-load bar / hint quieter (still 2px — no overlay) */

/* ===== Pack sfe-ui-innov-20260822t (careful polish) ===== */

/* 1. Icon buttons densify */

/* 2. Chip / facet close hit area */

/* 3. Empty state CTA gap */

/* 4. Form sheet padding densify */

/* 5. Kanban column header densify */

/* 6. Systray icon densify */

/* ===== Pack sfe-ui-innov-20260822u (careful polish) ===== */

/* 1. Module shell padding densify — keep full-width card */

/* 2. Lists inside shell full bleed (no nested floating card feel) */

/* 3. Module toolbar title densify */

/* 4. Apps header quieter densify */

/* 5. Content area flush when hosting module shell */

/* 6. Empty state inside shell — less “floating island” */

/* ===== Pack sfe-ui-innov-20260822v (careful polish) ===== */

/* 1. Quiet sticky thead inside module shell */

/* 2. Search bar densify */

/* 3. Create primary button densify */

/* 4. Breadcrumb under apps header densify */

/* 5. CSV / import toolbar densify */

/* 6. Studio button quieter */

/* ===== Pack sfe-ui-innov-20260822w (careful polish) ===== */

/* 1. Group-by control densify */

/* 2. Filters button densify */

/* 3. Quiet row hover in lists */

/* 4. Checkbox column align */

/* 5. Status badges in list rows */

/* 6. Module nav pills densify (shell tabs) */

/* Modal footer densify — open dialogs / shown modals only */

/* Quiet primary button radius — module shell only */

/* —— Pack 23k —— */

/* Soft-load bar stays 2px — label text only */

/* —— Pack 23m —— */

/* Quiet focus — accessible, not flashy */

/* Quiet border-radius consistency — module shell .btn */

/* ===== Pack sfe-ui-innov-20260823p ===== */

/* ===== Pack sfe-ui-innov-20260823q ===== */

/* ===== Pack sfe-ui-innov-20260823r ===== */

/* SFE brand: primary actions always blue (never module purple) */
.btn-primary,
a.btn-primary,
button.btn-primary,
.sfe-module-shell__toolbar .btn-primary,
.sfe-module-shell__toolbar-actions .btn-primary,
.account-odo-toolbar .btn-primary,
.sale-odo-toolbar .btn-primary,
.purchase-odo-toolbar .btn-primary,
.purchase-module-shell .btn-primary,
.purchase-module-shell a.btn-primary,
.crm-odo-toolbar .btn-primary,
.crm-odo-nuevo,
.account-odo-card__head .btn-primary,
.sfe-odo-selection-bar__primary .btn-primary,
.purchase-module-shell .sfe-odo-selection-bar__primary .btn-primary,
.sfe-empty-state__actions .btn-primary,
.sfe-doc-empty .btn-primary,
.list-view .btn-primary,
.o_form_view .btn-primary,
.form-actions-bar .btn-primary,
.sfe-doc-actions .btn-primary,
.batch-actions .btn-primary,
[data-sfe-create].btn-primary {
    background: #007BFF !important;
    background: var(--sfe-primary, #007BFF) !important;
    border-color: #007BFF !important;
    border-color: var(--sfe-primary, #007BFF) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    box-shadow: var(--sfe-shadow-primary, 0 1px 2px rgba(0, 86, 204, 0.2)) !important;
}
.btn-primary:hover,
a.btn-primary:hover,
button.btn-primary:hover,
.purchase-module-shell .btn-primary:hover,
.purchase-odo-toolbar .btn-primary:hover,
.sfe-module-shell__toolbar .btn-primary:hover,
.crm-odo-nuevo:hover {
    background: #0056CC !important;
    background: var(--sfe-primary-dark, #0056CC) !important;
    border-color: #0056CC !important;
    border-color: var(--sfe-primary-dark, #0056CC) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    filter: none !important;
}


/* sticky-compras-20260910k: Guardado status + Ctrl+S in bottom bar */
.sfe-form-action-bar .sfe-save-state,
.sfe-form-action-bar__status{
  display:inline-flex;align-items:center;gap:6px;margin-right:4px;
  font-size:12px;font-weight:500;color:var(--sfe-text-muted,#6b7280);
  white-space:nowrap;
}
.sfe-form-action-bar .sfe-save-state.is-dirty,
.sfe-form-action-bar__status.is-dirty{color:#b45309;font-weight:600}
.sfe-form-action-bar .sfe-save-state.is-clean,
.sfe-form-action-bar__status.is-clean{color:var(--sfe-text-muted,#6b7280)}
.sfe-form-action-bar__hint{display:inline-block!important;margin-left:auto;font-size:11px;color:var(--sfe-text-muted,#6b7280)}
@media (max-width:720px){
  .sfe-form-action-bar__hint{display:none!important}
}
