:root {
    --rc-primary: #0f766e;
    --rc-secondary: #2563eb;
    --rc-bg: #f4f7fb;
    --rc-surface: #ffffff;
    --rc-surface-soft: #f8fafc;
    --rc-surface-raised: #ffffff;
    --rc-border: #e2e8f0;
    --rc-border-strong: #cbd5e1;
    --rc-text: #172033;
    --rc-muted: #667085;
    --rc-subtle: #94a3b8;
    --rc-sidebar: #0f172a;
    --rc-sidebar-hover: #17233a;
    --rc-sidebar-text: #dbe4f0;
    --rc-success: #16875d;
    --rc-warning: #d97706;
    --rc-danger: #c2413b;
    --rc-info: #2563eb;
    --rc-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 28px rgba(15, 23, 42, .035);
    color-scheme: light;
}

:root[data-theme="dark"] {
    --rc-bg: #0b1220;
    --rc-surface: #111a2b;
    --rc-surface-soft: #162237;
    --rc-surface-raised: #142033;
    --rc-border: #26354d;
    --rc-border-strong: #354760;
    --rc-text: #ecf2fb;
    --rc-muted: #a7b4c7;
    --rc-subtle: #7f8ea5;
    --rc-sidebar: #070d18;
    --rc-sidebar-hover: #121d30;
    --rc-sidebar-text: #dbe5f2;
    --rc-success: #4fd19d;
    --rc-warning: #fbbf5a;
    --rc-danger: #ff7a73;
    --rc-info: #6da8ff;
    --rc-shadow: 0 1px 2px rgba(0, 0, 0, .22), 0 12px 34px rgba(0, 0, 0, .18);
    color-scheme: dark;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; font-family: Inter, "Segoe UI", system-ui, -apple-system, sans-serif; background: var(--rc-bg); color: var(--rc-text); }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }

/* Shell */
.app-shell { min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 244px; z-index: 1000; display: flex; flex-direction: column; background: var(--rc-sidebar); color: var(--rc-sidebar-text); border-right: 1px solid rgba(148,163,184,.10); }
.brand { min-height: 78px; display: flex; align-items: center; gap: 12px; padding: 13px 16px; border-bottom: 1px solid rgba(148,163,184,.14); }
.brand-visual { width: 52px; height: 52px; flex: 0 0 52px; display: grid; place-items: center; overflow: hidden; border-radius: 12px; background: #fff; border: 1px solid rgba(255,255,255,.18); }
.brand-logo { width: 100%; height: 100%; object-fit: contain; padding: 1px; }
.brand-mark { width: 100%; height: 100%; display: grid; place-items: center; color: #fff; background: var(--rc-primary); font-size: 24px; }
.brand-copy { min-width: 0; }
.brand-copy strong, .brand-copy span { display: block; }
.brand-copy strong { color: #fff; font-size: 16px; line-height: 1.15; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.brand-copy span { margin-top: 4px; color: #94a3b8; font-size: 10.5px; line-height: 1.25; }
.sidebar nav { flex: 1; overflow: auto; padding: 14px 10px 22px; }
.sidebar nav a { display: flex; align-items: center; gap: 12px; min-height: 42px; margin: 2px 0; padding: 9px 11px; border-radius: 8px; color: #cbd5e1; font-size: 13px; font-weight: 520; transition: background .12s ease, color .12s ease; }
.sidebar nav a .rz-icon { width: 20px; font-size: 18px; color: #8fa1b8; }
.sidebar nav a:hover { background: var(--rc-sidebar-hover); color: #fff; }
.sidebar nav a.active { background: color-mix(in srgb, var(--rc-primary) 82%, #0b1220); color: #fff; }
.sidebar nav a.active .rz-icon { color: #fff; }
.nav-caption { padding: 18px 11px 6px; color: #718198; font-size: 9px; font-weight: 800; letter-spacing: .14em; }
.sidebar-footer { display: flex; align-items: center; gap: 9px; padding: 14px 18px; border-top: 1px solid rgba(148,163,184,.14); color: #dbe5f2; }
.sidebar-footer div { display: flex; flex-direction: column; gap: 1px; }
.sidebar-footer strong { font-size: 11px; }
.sidebar-footer small { color: #7f8ea5; font-size: 9px; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 3px rgba(34,197,94,.12); }

main { min-height: 100vh; margin-left: 244px; background: var(--rc-bg); }
.topbar { position: sticky; top: 0; z-index: 900; height: 64px; display: flex; align-items: center; gap: 14px; padding: 0 24px; background: color-mix(in srgb, var(--rc-surface) 96%, transparent); border-bottom: 1px solid var(--rc-border); backdrop-filter: blur(10px); }
.menu-button { display: none; border: 0; background: transparent; color: var(--rc-text); padding: 7px; border-radius: 8px; cursor: pointer; }
.topbar-context { display: flex; flex-direction: column; min-width: 0; }
.topbar-context span { color: var(--rc-muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.topbar-context strong { font-size: 13px; font-weight: 650; }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.icon-button { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--rc-border); border-radius: 9px; background: var(--rc-surface); color: var(--rc-text); cursor: pointer; }
.icon-button:hover { border-color: var(--rc-border-strong); background: var(--rc-surface-soft); }
.user-chip { display: flex; align-items: center; gap: 7px; min-height: 36px; padding: 0 12px; background: var(--rc-surface-soft); border: 1px solid var(--rc-border); border-radius: 20px; color: var(--rc-muted); font-size: 11px; }
.user-chip .rz-icon { font-size: 16px; }
.page-body { max-width: 1680px; margin: 0 auto; padding: 28px 30px 48px; }

/* Headings and actions */
.page-heading, .map-page-heading { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 20px; }
.page-heading h1, .map-page-heading h1 { margin: 0; color: var(--rc-text); font-size: 27px; line-height: 1.15; letter-spacing: -.035em; }
.page-heading p, .map-page-heading p { margin: 6px 0 0; color: var(--rc-muted); font-size: 13px; line-height: 1.45; }
.eyebrow { margin-bottom: 6px; color: var(--rc-primary); font-size: 9px; font-weight: 800; letter-spacing: .15em; }
.enterprise-heading { margin-bottom: 18px; }
.heading-actions, .map-actions { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.primary-action, .secondary-action { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; padding: 0 14px; font-size: 12px; font-weight: 700; cursor: pointer; }
.primary-action { border: 1px solid var(--rc-primary); background: var(--rc-primary); color: #fff; }
.secondary-action { border: 1px solid var(--rc-border-strong); background: var(--rc-surface); color: var(--rc-text); }
.action-with-icon { gap: 7px; }
.action-with-icon .rz-icon { font-size: 17px; }
.full-action { width: 100%; margin-top: 14px; }
.text-action { display: inline-flex; align-items: center; gap: 5px; color: var(--rc-primary); font-size: 12px; font-weight: 700; }
.text-action .rz-icon { font-size: 16px; }
.heading-count { padding: 7px 11px; border: 1px solid var(--rc-border); border-radius: 18px; background: var(--rc-surface); color: var(--rc-muted); font-size: 11px; }

/* Panels and KPI */
.panel { background: var(--rc-surface); border: 1px solid var(--rc-border); border-radius: 12px; box-shadow: var(--rc-shadow); padding: 20px; color: var(--rc-text); }
.panel h2 { margin: 0 0 15px; font-size: 16px; }
.panel-title { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 12px; }
.panel-title h2 { margin: 0; }
.panel-title p { margin: 4px 0 0; color: var(--rc-muted); font-size: 11px; line-height: 1.4; }
.enterprise-panel-title { margin-bottom: 18px; }
.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.kpi-grid.five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.kpi-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.kpi-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kpi-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kpi-card { position: relative; min-height: 112px; overflow: hidden; padding: 17px 18px; border: 1px solid var(--rc-border); border-radius: 11px; background: var(--rc-surface); box-shadow: 0 1px 2px rgba(15,23,42,.025); }
.kpi-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--rc-subtle); }
.kpi-card.teal::before { background: var(--rc-primary); }
.kpi-card.blue::before { background: #3b82f6; }
.kpi-card.violet::before { background: #8b5cf6; }
.kpi-card.amber::before { background: #f59e0b; }
.kpi-card.red::before, .kpi-card.danger-soft::before { background: var(--rc-danger); }
.kpi-card > span { display: block; color: var(--rc-muted); font-size: 11px; font-weight: 600; }
.kpi-card > strong { display: block; margin: 8px 0 3px; color: var(--rc-text); font-size: 23px; line-height: 1.05; letter-spacing: -.03em; }
.kpi-card > small { color: var(--rc-subtle); font-size: 10px; }
.kpi-icon { position: absolute; top: 14px; right: 14px; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; background: var(--rc-surface-soft); color: var(--rc-muted); }
.kpi-icon .rz-icon { font-size: 18px; }
.compact-kpis .kpi-card { min-height: 106px; }

/* Existing dashboard */
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(280px, .8fr); gap: 18px; }
.result-card > span { color: var(--rc-muted); font-size: 12px; }
.result-card > strong { display: block; margin: 15px 0 4px; font-size: 30px; }
.result-card.positive > strong, .result-card.positive .margin-value { color: var(--rc-success); }
.result-card.negative > strong, .result-card.negative .margin-value { color: var(--rc-danger); }
.margin-value { font-size: 12px; font-weight: 700; }
.result-card hr { border: 0; border-top: 1px solid var(--rc-border); margin: 24px 0 16px; }
.result-card > div:not(.margin-value) { display: flex; justify-content: space-between; gap: 16px; margin: 11px 0; font-size: 12px; }
.quick-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 18px; }
.quick-grid a { display: flex; flex-direction: column; gap: 6px; padding: 17px; border: 1px solid var(--rc-border); border-radius: 10px; background: var(--rc-surface); }
.quick-grid a:hover { border-color: color-mix(in srgb, var(--rc-primary) 55%, var(--rc-border)); }
.quick-grid b { font-size: 13px; }
.quick-grid span { color: var(--rc-muted); font-size: 11px; }

/* Forms */
.split-layout { display: grid; grid-template-columns: minmax(330px, .78fr) minmax(600px, 1.7fr); gap: 18px; align-items: start; }
.wide-form { grid-template-columns: minmax(390px, .9fr) minmax(650px, 1.6fr); }
.form-panel { position: sticky; top: 82px; }
.form-card, .enterprise-form-card { padding: 22px; }
.form-grid, .form-section-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
.form-grid { margin-bottom: 18px; }
.form-grid label, .field { min-width: 0; }
.form-grid label { display: flex; flex-direction: column; gap: 6px; color: var(--rc-muted); font-size: 11px; font-weight: 650; }
.form-grid .span-2, .form-section-grid .span-2 { grid-column: span 2; }
.form-section-grid.one-column { grid-template-columns: 1fr; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field > label, .field-label { color: var(--rc-muted); font-size: 11px; font-weight: 700; }
.field > small { color: var(--rc-subtle); font-size: 10px; line-height: 1.4; }
.required { color: var(--rc-danger); }
.validation-message { color: var(--rc-danger); font-size: 10px; }
.form-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--rc-border); }
.section-icon { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 10px; background: color-mix(in srgb, var(--rc-primary) 10%, var(--rc-surface)); color: var(--rc-primary); }
.section-icon.small { width: 32px; height: 32px; border-radius: 8px; }
.section-icon.large { width: 48px; height: 48px; }
.section-icon .rz-icon { font-size: 20px; }
.section-icon.small .rz-icon { font-size: 17px; }
.section-icon.large .rz-icon { font-size: 24px; }
.switch-field { flex-direction: row; align-items: center; justify-content: space-between; min-height: 56px; padding: 10px 12px; border: 1px solid var(--rc-border); border-radius: 9px; background: var(--rc-surface-soft); }
.switch-field > div { display: flex; flex-direction: column; gap: 3px; }

/* Radzen controls consistency */
.rz-textbox, .rz-dropdown, .rz-numeric, .rz-datepicker, .rz-textarea { width: 100%; }
.rz-textbox, .rz-dropdown, .rz-numeric, .rz-datepicker { min-height: 40px; border-radius: 8px !important; }
.rz-textarea { border-radius: 8px !important; }
.rz-button { border-radius: 8px !important; font-weight: 650; }
.rz-button.rz-button-sm { border-radius: 7px !important; }
.rz-data-grid, .rz-datatable { border-radius: 9px; overflow: hidden; }
.rz-grid-table { font-size: 12px; }
.rz-grid-table td { vertical-align: middle; }
.rz-grid-table thead th { font-size: 10.5px; font-weight: 750; letter-spacing: .015em; }

/* Tables */
.table-panel { padding: 12px; overflow: hidden; }
.enterprise-table-panel { padding: 16px; }
.table-toolbar { display: flex; align-items: end; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; padding: 12px; border: 1px solid var(--rc-border); border-radius: 10px; background: var(--rc-surface-soft); }
.table-primary-cell { display: flex; align-items: center; gap: 10px; min-width: 180px; }
.table-primary-cell > div { display: flex; flex-direction: column; gap: 2px; }
.table-primary-cell strong { font-size: 12px; }
.table-primary-cell small { color: var(--rc-muted); font-size: 10px; }
.table-icon { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 8px; background: var(--rc-surface-soft); color: var(--rc-muted); }
.table-icon .rz-icon { font-size: 17px; }
.filter-bar { display: flex; align-items: center; gap: 10px; padding: 11px 12px; margin-bottom: 16px; border: 1px solid var(--rc-border); border-radius: 10px; background: var(--rc-surface); }
.filter-total { margin-left: auto; color: var(--rc-muted); font-size: 11px; }
.badge { display: inline-flex; align-items: center; justify-content: center; min-height: 22px; padding: 3px 8px; border-radius: 12px; font-size: 9.5px; font-weight: 750; white-space: nowrap; }
.badge.success { background: color-mix(in srgb, var(--rc-success) 14%, transparent); color: var(--rc-success); }
.badge.warning { background: color-mix(in srgb, var(--rc-warning) 15%, transparent); color: var(--rc-warning); }
.badge.danger { background: color-mix(in srgb, var(--rc-danger) 14%, transparent); color: var(--rc-danger); }
.badge.info { background: color-mix(in srgb, var(--rc-info) 14%, transparent); color: var(--rc-info); }
.badge.neutral { background: var(--rc-surface-soft); color: var(--rc-muted); border: 1px solid var(--rc-border); }
.money { font-variant-numeric: tabular-nums; white-space: nowrap; }
.money.positive { color: var(--rc-success); }
.money.negative { color: var(--rc-danger); }

/* Module nav */
.module-tabs { display: flex; align-items: center; gap: 4px; margin-bottom: 18px; padding: 5px; width: fit-content; max-width: 100%; overflow-x: auto; border: 1px solid var(--rc-border); border-radius: 10px; background: var(--rc-surface); }
.module-tabs a { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; padding: 0 11px; border-radius: 7px; color: var(--rc-muted); font-size: 11px; font-weight: 700; white-space: nowrap; }
.module-tabs a .rz-icon { font-size: 16px; }
.module-tabs a:hover { background: var(--rc-surface-soft); color: var(--rc-text); }
.module-tabs a.active { background: color-mix(in srgb, var(--rc-primary) 11%, var(--rc-surface)); color: var(--rc-primary); }

/* Finance hub */
.finance-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(290px, .7fr); gap: 18px; align-items: start; }
.accounts-overview-panel { min-width: 0; }
.account-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.account-card { min-width: 0; display: flex; flex-direction: column; gap: 5px; padding: 15px; border: 1px solid var(--rc-border); border-radius: 10px; background: var(--rc-surface-soft); transition: border-color .12s ease, transform .12s ease; }
.account-card:hover { border-color: color-mix(in srgb, var(--rc-primary) 45%, var(--rc-border)); transform: translateY(-1px); }
.account-card.inactive { opacity: .65; }
.account-card.needs-review { border-color: color-mix(in srgb, var(--rc-warning) 50%, var(--rc-border)); }
.account-card-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 3px; }
.account-icon { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 9px; background: color-mix(in srgb, var(--rc-primary) 10%, var(--rc-surface)); color: var(--rc-primary); }
.account-card > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.account-card > span { color: var(--rc-muted); font-size: 10px; }
.account-card > b { margin-top: 7px; font-size: 19px; letter-spacing: -.02em; }
.validation-hint { color: var(--rc-warning) !important; font-weight: 700; }
.finance-quick-panel { min-width: 0; }
.action-list { display: grid; gap: 6px; }
.action-list > a { display: grid; grid-template-columns: 36px 1fr 18px; align-items: center; gap: 10px; padding: 10px; border-radius: 9px; }
.action-list > a:hover { background: var(--rc-surface-soft); }
.action-list .action-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 8px; background: var(--rc-surface-soft); color: var(--rc-primary); }
.action-list > a > div { display: flex; flex-direction: column; gap: 2px; }
.action-list strong { font-size: 11px; }
.action-list small { color: var(--rc-muted); font-size: 9.5px; line-height: 1.25; }
.action-list > a > .rz-icon { color: var(--rc-subtle); font-size: 17px; }
.finance-recent { margin-top: 18px; }
.accounts-management-grid { display: grid; grid-template-columns: minmax(310px, .65fr) minmax(640px, 1.6fr); gap: 18px; align-items: start; }
.notice-card { display: flex; align-items: flex-start; gap: 11px; margin-top: 14px; padding: 12px 14px; border: 1px solid var(--rc-border); border-radius: 10px; background: var(--rc-surface); }
.notice-card > .rz-icon { margin-top: 1px; font-size: 18px; }
.notice-card > div { display: flex; flex-direction: column; gap: 3px; }
.notice-card strong { font-size: 11px; }
.notice-card span { color: var(--rc-muted); font-size: 10px; }
.warning-notice { border-color: color-mix(in srgb, var(--rc-warning) 35%, var(--rc-border)); }
.warning-notice > .rz-icon { color: var(--rc-warning); }
.info-notice > .rz-icon { color: var(--rc-info); }

/* Finance movement page */
.finance-operation-layout { display: grid; grid-template-columns: 370px minmax(620px, 1fr); gap: 18px; align-items: start; }
.finance-operation-card { position: sticky; top: 82px; }
.operation-type-picker { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 16px; }
.operation-type { display: flex; align-items: center; gap: 9px; min-height: 60px; padding: 9px 10px; border: 1px solid var(--rc-border); border-radius: 9px; background: var(--rc-surface); color: var(--rc-text); text-align: left; cursor: pointer; }
.operation-type:hover { background: var(--rc-surface-soft); }
.operation-type.active { border-color: color-mix(in srgb, var(--rc-primary) 60%, var(--rc-border)); box-shadow: 0 0 0 2px color-mix(in srgb, var(--rc-primary) 10%, transparent); }
.operation-type > span:last-child { display: flex; flex-direction: column; gap: 2px; }
.operation-type strong { font-size: 11px; }
.operation-type small { color: var(--rc-muted); font-size: 9px; line-height: 1.25; }
.operation-type-icon { width: 31px; height: 31px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 8px; }
.operation-type-icon.positive { background: color-mix(in srgb, var(--rc-success) 13%, transparent); color: var(--rc-success); }
.operation-type-icon.negative { background: color-mix(in srgb, var(--rc-danger) 12%, transparent); color: var(--rc-danger); }
.operation-summary { display: flex; justify-content: space-between; gap: 12px; margin-top: 14px; padding: 11px 12px; border: 1px solid var(--rc-border); border-radius: 9px; background: var(--rc-surface-soft); }
.operation-summary span { color: var(--rc-muted); font-size: 10px; }
.operation-summary strong { font-size: 12px; }
.finance-filter-toolbar .compact-field { min-width: 150px; }
.finance-filter-toolbar .grow { min-width: 230px; flex: 1; }
.reversal-bar { position: sticky; z-index: 850; bottom: 14px; display: grid; grid-template-columns: minmax(280px, 1fr) minmax(240px, 420px) auto auto; align-items: center; gap: 9px; margin-top: 15px; padding: 12px; border: 1px solid color-mix(in srgb, var(--rc-danger) 35%, var(--rc-border)); border-radius: 11px; background: var(--rc-surface-raised); box-shadow: 0 14px 40px rgba(15,23,42,.15); }
.reversal-copy { display: flex; align-items: center; gap: 9px; }
.reversal-copy > .rz-icon { color: var(--rc-danger); }
.reversal-copy > div { display: flex; flex-direction: column; gap: 2px; }
.reversal-copy strong { font-size: 11px; }
.reversal-copy span { color: var(--rc-muted); font-size: 9.5px; }

/* Transfer */
.transfer-layout { display: grid; grid-template-columns: minmax(620px, 1.35fr) minmax(270px, .55fr); gap: 18px; align-items: start; }
.transfer-card { padding: 22px; }
.transfer-account-flow { display: grid; grid-template-columns: 1fr 46px 1fr; align-items: stretch; gap: 8px; margin-bottom: 18px; }
.transfer-account-box { padding: 13px; border: 1px solid var(--rc-border); border-radius: 10px; background: var(--rc-surface-soft); }
.flow-label { display: block; margin-bottom: 7px; color: var(--rc-subtle); font-size: 9px; font-weight: 800; letter-spacing: .13em; }
.account-balance { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 3px 10px; margin-top: 11px; }
.account-balance small { color: var(--rc-muted); font-size: 9.5px; }
.account-balance strong { font-size: 16px; }
.account-balance span { grid-column: 1/-1; color: var(--rc-subtle); font-size: 9px; }
.transfer-arrow { display: grid; place-items: center; color: var(--rc-muted); }
.transfer-arrow .rz-icon { font-size: 25px; }
.transfer-fields { margin-top: 4px; }
.transfer-preview { display: grid; grid-template-columns: 1fr 38px 1fr; align-items: center; gap: 8px; margin-top: 18px; padding: 13px; border: 1px solid var(--rc-border); border-radius: 10px; background: var(--rc-surface-soft); }
.transfer-preview > div { display: flex; flex-direction: column; gap: 2px; }
.transfer-preview > div:last-child { text-align: right; }
.transfer-preview span { color: var(--rc-muted); font-size: 9.5px; }
.transfer-preview strong { font-size: 13px; }
.transfer-preview small { color: var(--rc-subtle); font-size: 9px; }
.transfer-preview > .rz-icon { color: var(--rc-muted); }
.transfer-help-panel { position: sticky; top: 82px; }
.transfer-help-panel h2 { margin-top: 14px; }
.transfer-help-panel p { color: var(--rc-muted); font-size: 11px; line-height: 1.55; }
.transfer-help-panel ul { display: grid; gap: 9px; padding: 0; list-style: none; }
.transfer-help-panel li { display: flex; align-items: flex-start; gap: 7px; color: var(--rc-muted); font-size: 10px; line-height: 1.4; }
.transfer-help-panel li .rz-icon { color: var(--rc-success); font-size: 16px; }

/* Settings */
.settings-layout-v2 { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 18px; align-items: start; max-width: 1280px; }
.settings-main-v2 { display: grid; gap: 14px; }
.settings-card-v2 { padding: 22px; }
.settings-card-header { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px solid var(--rc-border); }
.settings-card-header h2 { margin: 1px 0 3px; font-size: 15px; }
.settings-card-header p { margin: 0; color: var(--rc-muted); font-size: 10.5px; line-height: 1.4; }
.settings-preview-column { display: grid; gap: 14px; }
.sticky-preview { position: sticky; top: 82px; }
.brand-preview-panel { padding: 18px; }
.brand-preview { display: flex; align-items: center; gap: 11px; min-height: 78px; margin-top: 10px; padding: 12px; border: 1px solid var(--rc-border); border-radius: 10px; overflow: hidden; }
.brand-preview.light-preview { background: #f8fafc; color: #172033; }
.brand-preview.dark-preview { background: #0f172a; color: #f8fafc; }
.preview-logo-wrap { width: 54px; height: 54px; display: grid; place-items: center; flex: 0 0 54px; overflow: hidden; border-radius: 11px; background: #fff; }
.preview-logo-wrap img { width: 100%; height: 100%; object-fit: contain; padding: 1px; }
.preview-logo-fallback { width: 100%; height: 100%; display: grid; place-items: center; color: #fff; background: var(--rc-primary); }
.brand-preview > div:last-child { min-width: 0; }
.brand-preview strong, .brand-preview span { display: block; }
.brand-preview strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.brand-preview span { margin-top: 3px; color: #8491a5; font-size: 9px; }
.preview-colors { display: flex; align-items: center; gap: 7px; margin-top: 12px; }
.preview-colors > span { width: 22px; height: 22px; border-radius: 7px; border: 1px solid rgba(148,163,184,.25); }
.preview-colors small { color: var(--rc-muted); font-size: 9.5px; }
.file-picker { position: relative; display: grid; grid-template-columns: 35px 1fr; align-items: center; gap: 9px; min-height: 58px; padding: 9px 10px; border: 1px dashed var(--rc-border-strong); border-radius: 9px; background: var(--rc-surface-soft); overflow: hidden; }
.file-picker > .rz-icon { color: var(--rc-primary); font-size: 21px; }
.file-picker > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.file-picker strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10.5px; }
.file-picker small { color: var(--rc-muted); font-size: 9px; }
.file-picker input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.sticky-form-footer { position: sticky; z-index: 800; bottom: 12px; display: flex; justify-content: space-between; align-items: center; gap: 18px; max-width: 1280px; margin-top: 16px; padding: 12px 14px; border: 1px solid var(--rc-border); border-radius: 11px; background: color-mix(in srgb, var(--rc-surface) 96%, transparent); box-shadow: 0 12px 36px rgba(15,23,42,.10); backdrop-filter: blur(10px); }
.sticky-form-footer > div { display: flex; flex-direction: column; gap: 2px; }
.sticky-form-footer strong { font-size: 11px; }
.sticky-form-footer span { color: var(--rc-muted); font-size: 9.5px; }

/* Map */
.map-commandbar { display: grid; grid-template-columns: 210px 180px minmax(260px, 1fr) auto; gap: 9px; align-items: end; margin-bottom: 12px; padding: 10px; border: 1px solid var(--rc-border); border-radius: 11px; background: var(--rc-surface); box-shadow: 0 1px 2px rgba(15,23,42,.025); }
.map-command-field { display: flex; flex-direction: column; gap: 4px; }
.map-command-field > span { padding-left: 2px; color: var(--rc-muted); font-size: 9px; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; }
.map-search-wrap { position: relative; }
.map-search-wrap > .rz-icon { position: absolute; z-index: 3; top: 11px; left: 11px; color: var(--rc-subtle); font-size: 17px; pointer-events: none; }
.map-search-wrap .rz-textbox { padding-left: 35px !important; }
.map-switch { min-height: 40px; display: flex; align-items: center; gap: 7px; padding: 0 9px; border: 1px solid var(--rc-border); border-radius: 8px; background: var(--rc-surface-soft); color: var(--rc-muted); font-size: 10px; }
.map-workspace { display: grid; grid-template-columns: 290px minmax(0, 1fr); min-height: 620px; height: calc(100vh - 198px); overflow: hidden; border: 1px solid var(--rc-border); border-radius: 12px; background: var(--rc-surface); box-shadow: var(--rc-shadow); }
.map-tools { overflow: auto; border-right: 1px solid var(--rc-border); background: var(--rc-surface); }
.tool-summary { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--rc-border); }
.tool-summary > div { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; }
.tool-summary > div + div { border-left: 1px solid var(--rc-border); }
.tool-summary b { font-size: 19px; }
.tool-summary span { color: var(--rc-muted); font-size: 9px; }
.tool-section { padding: 16px; border-bottom: 1px solid var(--rc-border); }
.tool-section h3 { margin: 0 0 8px; font-size: 13px; }
.tool-section p { margin: 4px 0 12px; color: var(--rc-muted); font-size: 10px; line-height: 1.5; }
.tool-section .field { margin-top: 10px; }
.tool-section-title { display: flex; align-items: flex-start; gap: 9px; }
.tool-section-title h3 { margin: 0; }
.tool-section-title p { margin: 3px 0 0; }
.active-tool { box-shadow: inset 3px 0 0 var(--rc-primary); }
.coordinates, .route-help { display: flex; align-items: center; gap: 6px; margin: 11px 0; padding: 8px 9px; border: 1px solid var(--rc-border); border-radius: 8px; background: var(--rc-surface-soft); color: var(--rc-muted); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 9.5px; }
.tool-actions { display: grid; grid-template-columns: 1fr; gap: 7px; margin-top: 12px; }
.layer-row { display: flex; align-items: center; gap: 8px; min-height: 29px; color: var(--rc-muted); font-size: 10.5px; }
.layer-row i { width: 9px; height: 9px; border-radius: 50%; }
.layer-row b { margin-left: auto; color: var(--rc-text); }
.map-help-card strong { color: var(--rc-text); }
.selected-map-item { background: color-mix(in srgb, var(--rc-primary) 5%, var(--rc-surface)); }
.selected-map-head { display: flex; align-items: center; gap: 7px; margin-bottom: 8px; }
.selected-map-head small { color: var(--rc-muted); font-size: 9px; text-transform: uppercase; letter-spacing: .06em; }
.map-dot { width: 10px; height: 10px; border-radius: 50%; }
.map-line-sample { width: 22px; height: 4px; border-radius: 3px; }
.map-canvas-wrap { position: relative; min-width: 0; }
.network-map { width: 100%; height: 100%; background: #dfe6eb; }
.map-view-badge { position: absolute; z-index: 500; left: 12px; bottom: 12px; display: flex; align-items: center; gap: 6px; min-height: 30px; padding: 0 9px; border: 1px solid rgba(255,255,255,.55); border-radius: 8px; background: rgba(15,23,42,.78); color: #fff; backdrop-filter: blur(6px); font-size: 9.5px; }
.map-view-badge .rz-icon { font-size: 15px; }
.network-pin-container { background: transparent !important; border: 0 !important; }
.network-pin { --pin-color:#2563eb; position: relative; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50% 50% 50% 8px; transform: rotate(-45deg); background: var(--pin-color); border: 3px solid #fff; box-shadow: 0 3px 10px rgba(15,23,42,.36); }
.network-pin span { transform: rotate(45deg); color: #fff; font-size: 11px; font-weight: 800; }
.network-pin::after { content: ""; position: absolute; inset: 5px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; }
.map-popup { display: flex; flex-direction: column; min-width: 160px; gap: 4px; }
.map-popup small { color: #667085; font-size: 8.5px; text-transform: uppercase; letter-spacing: .08em; }
.map-popup b { font-size: 13px; }
.map-popup span { color: #475467; font-size: 10px; }
.map-popup em { margin-top: 3px; color: #98a2b3; font-size: 9px; font-style: normal; }
.map-detail-link { display: inline-block; margin-top: 8px; color: #2563eb; font-size: 10px; font-weight: 750; }
.network-label { border: 0 !important; background: rgba(255,255,255,.94) !important; color: #172033 !important; box-shadow: 0 2px 8px rgba(0,0,0,.14) !important; font-size: 10px !important; font-weight: 700; }
.leaflet-control-layers { border: 1px solid rgba(15,23,42,.08) !important; border-radius: 8px !important; box-shadow: 0 4px 18px rgba(15,23,42,.16) !important; font-size: 10px; }

/* Detail screens */
.detail-header { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 16px; padding: 20px; }
.detail-header h1 { margin: 5px 0 2px; font-size: 24px; }
.detail-header p { margin: 0; color: var(--rc-muted); font-size: 11px; }
.detail-balance { display: flex; flex-direction: column; text-align: right; }
.detail-balance strong { font-size: 25px; }
.detail-balance small, .detail-balance span { color: var(--rc-muted); font-size: 10px; }
.link-button { border: 0; background: none; color: var(--rc-primary); padding: 0; cursor: pointer; font-size: 11px; font-weight: 700; }
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding-top: 12px; }
.facts { display: grid; grid-template-columns: 150px 1fr; gap: 9px 14px; }
.facts dt { color: var(--rc-muted); font-size: 10px; }
.facts dd { margin: 0; font-size: 11px; font-weight: 650; }
.coordinates-box { padding: 11px; border: 1px solid var(--rc-border); border-radius: 8px; background: var(--rc-surface-soft); font-family: ui-monospace, Consolas, monospace; font-size: 10px; }
.timeline { display: grid; }
.timeline > div { display: flex; justify-content: space-between; gap: 20px; padding: 11px 0; border-bottom: 1px solid var(--rc-border); font-size: 11px; }
.timeline span { color: var(--rc-muted); }

/* Catalog */
.catalog-toolbar, .map-filterbar { display: flex; align-items: center; gap: 9px; margin-bottom: 12px; padding: 10px 12px; border: 1px solid var(--rc-border); border-radius: 10px; background: var(--rc-surface); }
.catalog-toolbar .rz-dropdown { min-width: 280px; }

/* Empty/loading */
.loading-panel { min-height: 300px; display: grid; place-items: center; color: var(--rc-muted); }
.empty-state { text-align: center; padding: 70px 20px; }
.compact-empty { padding: 35px 20px; }
.empty-state > .rz-icon { color: var(--rc-subtle); font-size: 30px; }
.empty-state h3 { margin: 8px 0 4px; font-size: 13px; }
.empty-state p { margin: 0 0 13px; color: var(--rc-muted); font-size: 10.5px; }
.setup-panel { max-width: 820px; padding: 22px; border: 1px solid color-mix(in srgb, var(--rc-warning) 45%, var(--rc-border)); border-left: 4px solid var(--rc-warning); border-radius: 10px; background: var(--rc-surface); }
.setup-panel p { color: var(--rc-muted); }
.setup-panel code { display: block; overflow: auto; padding: 12px; border-radius: 7px; background: #111827; color: #e5e7eb; }

/* Dark theme custom surfaces. Radzen itself uses material-dark-base.css. */
:root[data-theme="dark"] .leaflet-control-layers,
:root[data-theme="dark"] .leaflet-popup-content-wrapper,
:root[data-theme="dark"] .leaflet-popup-tip { background: #111a2b; color: #e6edf7; }
:root[data-theme="dark"] .leaflet-control-layers label { color: #e6edf7; }
:root[data-theme="dark"] .map-popup span { color: #b7c3d5; }
:root[data-theme="dark"] .map-popup small, :root[data-theme="dark"] .map-popup em { color: #8fa0b8; }
:root[data-theme="dark"] .rz-data-grid, :root[data-theme="dark"] .rz-datatable { border-color: var(--rc-border); }

/* Responsive */
@media (max-width: 1280px) {
    .kpi-grid.five { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .finance-dashboard-grid { grid-template-columns: 1fr; }
    .finance-quick-panel .action-list { grid-template-columns: repeat(2, 1fr); }
    .accounts-management-grid, .finance-operation-layout, .transfer-layout { grid-template-columns: 1fr; }
    .finance-operation-card, .transfer-help-panel { position: static; }
    .settings-layout-v2 { grid-template-columns: 1fr; }
    .settings-preview-column { grid-template-columns: 1fr 1fr; }
    .sticky-preview { position: static; }
}

@media (max-width: 1080px) {
    .kpi-grid, .kpi-grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .split-layout, .wide-form { grid-template-columns: 1fr; }
    .form-panel { position: static; }
    .dashboard-grid { grid-template-columns: 1fr; }
    .map-commandbar { grid-template-columns: 1fr 1fr; }
    .map-search-wrap { grid-column: span 2; }
    .map-workspace { grid-template-columns: 240px minmax(0,1fr); }
    .reversal-bar { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
    .sidebar { transform: translateX(-100%); transition: transform .18s ease; }
    .sidebar.open { transform: none; }
    main { margin-left: 0; }
    .menu-button { display: grid; place-items: center; }
    .topbar { padding: 0 12px; }
    .topbar-context span { display: none; }
    .user-chip span { display: none; }
    .user-chip { width: 36px; padding: 0; justify-content: center; }
    .page-body { padding: 20px 12px 38px; }
    .page-heading, .map-page-heading { align-items: flex-start; flex-direction: column; }
    .heading-actions, .map-actions { width: 100%; }
    .heading-actions > *, .map-actions > * { flex: 1; }
    .kpi-grid, .kpi-grid.five, .kpi-grid.four, .kpi-grid.three, .kpi-grid.two, .quick-grid { grid-template-columns: 1fr; }
    .form-grid, .form-section-grid { grid-template-columns: 1fr; }
    .form-grid .span-2, .form-section-grid .span-2 { grid-column: auto; }
    .account-card-grid { grid-template-columns: 1fr; }
    .finance-quick-panel .action-list { grid-template-columns: 1fr; }
    .module-tabs { width: 100%; }
    .map-commandbar { grid-template-columns: 1fr; }
    .map-search-wrap { grid-column: auto; }
    .map-workspace { grid-template-columns: 1fr; height: auto; }
    .map-tools { border-right: 0; border-bottom: 1px solid var(--rc-border); max-height: 330px; }
    .network-map { height: 62vh; min-height: 480px; }
    .transfer-account-flow { grid-template-columns: 1fr; }
    .transfer-arrow { transform: rotate(90deg); min-height: 30px; }
    .settings-preview-column { grid-template-columns: 1fr; }
    .sticky-form-footer { flex-direction: column; align-items: stretch; }
    .sticky-form-footer > div { display: none; }
    .filter-bar, .table-toolbar { align-items: stretch; flex-direction: column; }
    .filter-total { margin-left: 0; }
    .detail-header { align-items: flex-start; flex-direction: column; }
    .detail-balance { text-align: left; }
    .detail-grid { grid-template-columns: 1fr; }
    .facts { grid-template-columns: 1fr; }
    .facts dd { margin-bottom: 6px; }
    .reversal-bar { grid-template-columns: 1fr; }
    .catalog-toolbar { align-items: stretch; flex-direction: column; }
    .catalog-toolbar .rz-dropdown { min-width: 0; width: 100%; }
}

/* Network link editor */
.network-management-layout { grid-template-columns: minmax(420px, .9fr) minmax(650px, 1.5fr); }
.link-endpoints { display: grid; grid-template-columns: 1fr 38px 1fr; align-items: stretch; gap: 8px; margin: 16px 0; }
.endpoint-card { padding: 12px; border: 1px solid var(--rc-border); border-radius: 10px; background: var(--rc-surface-soft); }
.endpoint-card .field + .field { margin-top: 10px; }
.endpoint-link-icon { display: grid; place-items: center; color: var(--rc-muted); }
.endpoint-link-icon .rz-icon { font-size: 22px; }
.relationship-cell { display: flex; align-items: center; gap: 7px; min-width: 220px; }
.relationship-cell span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.relationship-cell .rz-icon { flex: 0 0 auto; color: var(--rc-subtle); font-size: 15px; }

/* Catalog administration */
.catalog-commandbar { display: flex; align-items: end; gap: 10px; margin-bottom: 16px; padding: 10px 12px; border: 1px solid var(--rc-border); border-radius: 10px; background: var(--rc-surface); }
.catalog-selector { min-width: 320px; display: flex; flex-direction: column; gap: 4px; }
.catalog-selector > span { color: var(--rc-muted); font-size: 9px; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; }
.catalog-summary { display: flex; align-items: center; gap: 7px; min-height: 40px; padding: 0 11px; border: 1px solid var(--rc-border); border-radius: 8px; background: var(--rc-surface-soft); }
.catalog-summary > .rz-icon { color: var(--rc-primary); font-size: 17px; }
.catalog-summary > div { display: flex; align-items: baseline; gap: 4px; }
.catalog-summary strong { font-size: 13px; }
.catalog-summary span { color: var(--rc-muted); font-size: 9px; }
.catalog-layout-v2 { grid-template-columns: minmax(360px, .72fr) minmax(650px, 1.55fr); }

@media (max-width: 1080px) {
    .network-management-layout, .catalog-layout-v2 { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
    .link-endpoints { grid-template-columns: 1fr; }
    .endpoint-link-icon { transform: rotate(90deg); min-height: 28px; }
    .catalog-commandbar { align-items: stretch; flex-direction: column; }
    .catalog-selector { min-width: 0; width: 100%; }
}


/* =========================================================
   UI/UX v3 · identidad institucional, sidebar y mapa
   ========================================================= */
:root {
    --rc-on-primary: #ffffff;
    --rc-on-secondary: #ffffff;
}

/* La identidad institucional debe ser visible, no meramente decorativa. */
.sidebar nav a.active {
    background: var(--rc-primary);
    color: var(--rc-on-primary);
    box-shadow: inset 3px 0 0 var(--rc-secondary);
}
.sidebar nav a.active .rz-icon { color: var(--rc-on-primary); }

.primary-action {
    background: var(--rc-primary);
    border-color: var(--rc-primary);
    color: var(--rc-on-primary);
}
.secondary-action {
    border-color: color-mix(in srgb, var(--rc-secondary) 58%, var(--rc-border));
    color: var(--rc-secondary);
}
.secondary-action:hover {
    background: color-mix(in srgb, var(--rc-secondary) 8%, var(--rc-surface));
    border-color: var(--rc-secondary);
}
.kpi-card.blue::before { background: var(--rc-secondary); }
.user-chip .rz-icon { color: var(--rc-secondary); }
.map-view-badge { border-left: 3px solid var(--rc-secondary); }
.selected-map-item { box-shadow: inset 3px 0 0 var(--rc-secondary); }
.module-tabs a.active { box-shadow: inset 0 -2px 0 var(--rc-secondary); }

/* Sincronización visual de controles Radzen con los colores de Empresa.
   Las variables --rz-* se actualizan también desde theme.js; estos selectores
   son una red de seguridad para controles cuyo tema base sea más específico. */
.rz-button.rz-primary,
.rz-button.rz-button-primary {
    background-color: var(--rc-primary) !important;
    border-color: var(--rc-primary) !important;
    color: var(--rc-on-primary) !important;
}
.rz-button.rz-secondary,
.rz-button.rz-button-secondary {
    background-color: var(--rc-secondary) !important;
    border-color: var(--rc-secondary) !important;
    color: var(--rc-on-secondary) !important;
}
.rz-switch.rz-switch-checked .rz-switch-circle,
.rz-switch.rz-state-active .rz-switch-circle {
    background: var(--rc-primary) !important;
}
.rz-switch.rz-switch-checked .rz-switch-wrapper,
.rz-switch.rz-state-active .rz-switch-wrapper {
    background: color-mix(in srgb, var(--rc-primary) 42%, var(--rc-surface-soft)) !important;
}

/* Sidebar contraíble también en escritorio. */
.sidebar,
main {
    transition: width .16s ease, margin-left .16s ease, transform .18s ease;
}
.menu-button {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border: 1px solid var(--rc-border);
    background: var(--rc-surface);
}
.menu-button:hover {
    border-color: color-mix(in srgb, var(--rc-primary) 45%, var(--rc-border));
    color: var(--rc-primary);
    background: color-mix(in srgb, var(--rc-primary) 5%, var(--rc-surface));
}
.app-shell.sidebar-collapsed .sidebar { width: 76px; }
.app-shell.sidebar-collapsed main { margin-left: 76px; }
.app-shell.sidebar-collapsed .brand {
    justify-content: center;
    min-height: 78px;
    padding-inline: 10px;
}
.app-shell.sidebar-collapsed .brand-visual {
    width: 48px;
    height: 48px;
    flex-basis: 48px;
}
.app-shell.sidebar-collapsed .brand-copy,
.app-shell.sidebar-collapsed .nav-caption,
.app-shell.sidebar-collapsed .sidebar nav a span,
.app-shell.sidebar-collapsed .sidebar-footer div {
    display: none;
}
.app-shell.sidebar-collapsed .sidebar nav {
    padding-inline: 9px;
}
.app-shell.sidebar-collapsed .sidebar nav a {
    justify-content: center;
    gap: 0;
    min-height: 44px;
    padding: 9px 0;
}
.app-shell.sidebar-collapsed .sidebar nav a .rz-icon {
    width: auto;
    margin: 0;
    font-size: 20px;
}
.app-shell.sidebar-collapsed .sidebar-footer {
    justify-content: center;
    padding-inline: 8px;
}

/* Configuración de marca */
.brand-color-field {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 94px;
    align-items: center;
    gap: 9px;
}
.brand-color-field .rz-colorpicker,
.brand-color-field .rz-colorpicker-trigger {
    width: 100% !important;
}
.brand-color-field code {
    display: grid;
    place-items: center;
    min-height: 38px;
    padding: 0 9px;
    border: 1px solid var(--rc-border);
    border-radius: 8px;
    background: var(--rc-surface-soft);
    color: var(--rc-muted);
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    font-size: 10px;
}
.brand-presets {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 2px;
}
.brand-preset {
    min-height: 48px;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 9px;
    border: 1px solid var(--rc-border);
    border-radius: 9px;
    background: var(--rc-surface);
    color: var(--rc-text);
    cursor: pointer;
    text-align: left;
    font-size: 10px;
    font-weight: 650;
}
.brand-preset:hover {
    border-color: var(--rc-border-strong);
    background: var(--rc-surface-soft);
}
.brand-preset.selected {
    border-color: var(--rc-primary);
    box-shadow: inset 0 0 0 1px var(--rc-primary);
}
.preset-swatches {
    width: 38px;
    height: 28px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    flex: 0 0 38px;
    overflow: hidden;
    border: 1px solid var(--rc-border);
    border-radius: 7px;
    background: #fff;
}
.preset-swatches i { display: block; }
.brand-ui-preview {
    margin-top: 13px;
    overflow: hidden;
    border: 1px solid var(--rc-border);
    border-radius: 9px;
    background: var(--rc-surface-soft);
}
.preview-nav-item {
    min-height: 38px;
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 9px;
    padding: 0 10px;
    border-radius: 7px;
    background: var(--rc-primary);
    color: var(--rc-on-primary);
    box-shadow: inset 3px 0 0 var(--rc-secondary);
    font-size: 10px;
    font-weight: 700;
}
.preview-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
    padding: 0 9px 9px;
}
.preview-primary-action,
.preview-secondary-action {
    min-height: 32px;
    display: grid;
    place-items: center;
    border-radius: 7px;
    font-size: 9px;
    font-weight: 750;
}
.preview-primary-action {
    background: var(--rc-primary);
    color: var(--rc-on-primary);
}
.preview-secondary-action {
    border: 1px solid var(--rc-secondary);
    background: var(--rc-surface);
    color: var(--rc-secondary);
}

/* Ocultación de etiquetas del mapa robusta; no depende únicamente del estado
   interno de los tooltips permanentes de Leaflet. */
.network-map.labels-hidden .leaflet-tooltip.network-label {
    display: none !important;
}

@media (max-width: 980px) {
    .brand-presets { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .app-shell.sidebar-collapsed .sidebar { width: 244px; }
    .app-shell.sidebar-collapsed main { margin-left: 0; }
    .app-shell.sidebar-collapsed .brand { justify-content: flex-start; padding: 13px 16px; }
    .app-shell.sidebar-collapsed .brand-copy { display: block; }
    .app-shell.sidebar-collapsed .nav-caption { display: block; }
    .app-shell.sidebar-collapsed .sidebar nav a {
        justify-content: flex-start;
        gap: 12px;
        padding: 9px 11px;
    }
    .app-shell.sidebar-collapsed .sidebar nav a span { display: inline; }
    .app-shell.sidebar-collapsed .sidebar-footer { justify-content: flex-start; padding: 14px 18px; }
    .app-shell.sidebar-collapsed .sidebar-footer div { display: flex; }
    .brand-presets { grid-template-columns: 1fr; }
    .brand-color-field { grid-template-columns: 1fr 82px; }
}

/* =========================================================
   UI/UX v4 · auditoría visual integral de temas y contraste
   ========================================================= */
:root {
    --rc-primary-ink: #0f766e;
    --rc-secondary-ink: #1d4ed8;
    --rc-primary-hover: #0d675f;
    --rc-primary-active: #0a5952;
    --rc-secondary-hover: #1f57d0;
    --rc-secondary-active: #1d4ed8;
    --rc-primary-soft: #e8f4f2;
    --rc-primary-soft-strong: #d7ece8;
    --rc-secondary-soft: #edf3ff;
    --rc-secondary-soft-strong: #dce8ff;
    --rc-primary-page-soft: #eef7f6;
    --rc-focus-ring: rgba(15, 118, 110, .24);
    --rc-secondary-ring: rgba(37, 99, 235, .20);
    --rc-control-bg: #ffffff;
    --rc-control-hover: #f8fafc;
    --rc-control-border: #cbd5e1;
    --rc-control-border-hover: #94a3b8;
    --rc-control-placeholder: #8a98aa;
    --rc-disabled-bg: #eef2f6;
    --rc-disabled-border: #d7dee8;
    --rc-disabled-text: #7d8a9d;
    --rc-overlay: #ffffff;
    --rc-row-hover: #f7f9fc;
    --rc-row-selected: var(--rc-primary-soft);
    --rc-table-head: #f8fafc;
    --rc-divider: #e7ecf2;
    --rc-chip-bg: #f4f7fb;
}

:root[data-theme="dark"] {
    --rc-control-bg: #101a2a;
    --rc-control-hover: #152238;
    --rc-control-border: #354760;
    --rc-control-border-hover: #526783;
    --rc-control-placeholder: #7f90a8;
    --rc-disabled-bg: #151e2e;
    --rc-disabled-border: #26354b;
    --rc-disabled-text: #6f7f95;
    --rc-overlay: #111a2b;
    --rc-row-hover: #152238;
    --rc-table-head: #0f1929;
    --rc-divider: #26354b;
    --rc-chip-bg: #162237;
}

/* La marca funciona como acento. Para texto sobre superficies se usa una
   variante con contraste suficiente calculada por theme.js. */
.eyebrow,
.text-action,
.catalog-summary > .rz-icon,
.section-icon,
.account-icon,
.module-tabs a.active,
.brand-color-field code:focus,
.rz-link,
a.rz-link {
    color: var(--rc-primary-ink) !important;
}

.section-icon,
.account-icon {
    background: var(--rc-primary-soft) !important;
}

.kpi-card.teal::before { background: var(--rc-primary); }
.kpi-card.blue::before { background: var(--rc-secondary); }

/* Botones propios */
.primary-action,
.save-brand-button {
    background: var(--rc-primary) !important;
    border-color: var(--rc-primary) !important;
    color: var(--rc-on-primary) !important;
    box-shadow: none !important;
}
.primary-action:hover,
.save-brand-button:hover:not(:disabled):not(.rz-state-disabled) {
    background: var(--rc-primary-hover) !important;
    border-color: var(--rc-primary-hover) !important;
    color: var(--rc-on-primary) !important;
}
.primary-action:active,
.save-brand-button:active:not(:disabled):not(.rz-state-disabled) {
    background: var(--rc-primary-active) !important;
    border-color: var(--rc-primary-active) !important;
}
.primary-action .rz-icon,
.primary-action .rz-button-text,
.save-brand-button .rz-icon,
.save-brand-button .rz-button-icon-left,
.save-brand-button .rz-button-icon-right,
.save-brand-button .rz-button-text {
    color: inherit !important;
}

.secondary-action {
    border-color: color-mix(in srgb, var(--rc-secondary) 72%, var(--rc-border)) !important;
    color: var(--rc-secondary-ink) !important;
    background: var(--rc-surface) !important;
}
.secondary-action:hover {
    background: var(--rc-secondary-soft) !important;
    border-color: var(--rc-secondary) !important;
    color: var(--rc-secondary-ink) !important;
}

/* Radzen: botones, incluidos sus hijos internos. Evita el texto gris/oliva
   que aparecía en botones de marca sobre modo claro. */
.rz-button.rz-primary,
.rz-button.rz-button-primary,
.rz-button[class*="rz-primary"] {
    background-color: var(--rc-primary) !important;
    border-color: var(--rc-primary) !important;
    color: var(--rc-on-primary) !important;
    box-shadow: none !important;
}
.rz-button.rz-primary:not(:disabled):not(.rz-state-disabled):hover,
.rz-button.rz-button-primary:not(:disabled):not(.rz-state-disabled):hover,
.rz-button[class*="rz-primary"]:not(:disabled):not(.rz-state-disabled):hover {
    background-color: var(--rc-primary-hover) !important;
    border-color: var(--rc-primary-hover) !important;
}
.rz-button.rz-primary:not(:disabled):not(.rz-state-disabled):active,
.rz-button.rz-button-primary:not(:disabled):not(.rz-state-disabled):active,
.rz-button[class*="rz-primary"]:not(:disabled):not(.rz-state-disabled):active {
    background-color: var(--rc-primary-active) !important;
    border-color: var(--rc-primary-active) !important;
}
.rz-button.rz-primary .rz-button-text,
.rz-button.rz-primary .rz-button-icon-left,
.rz-button.rz-primary .rz-button-icon-right,
.rz-button.rz-primary .rz-icon,
.rz-button.rz-button-primary .rz-button-text,
.rz-button.rz-button-primary .rz-button-icon-left,
.rz-button.rz-button-primary .rz-button-icon-right,
.rz-button.rz-button-primary .rz-icon,
.rz-button[class*="rz-primary"] .rz-button-text,
.rz-button[class*="rz-primary"] .rz-button-icon-left,
.rz-button[class*="rz-primary"] .rz-button-icon-right,
.rz-button[class*="rz-primary"] .rz-icon {
    color: var(--rc-on-primary) !important;
    fill: currentColor !important;
}

.rz-button.rz-secondary,
.rz-button.rz-button-secondary {
    background-color: var(--rc-secondary) !important;
    border-color: var(--rc-secondary) !important;
    color: var(--rc-on-secondary) !important;
    box-shadow: none !important;
}
.rz-button.rz-secondary .rz-button-text,
.rz-button.rz-secondary .rz-button-icon-left,
.rz-button.rz-secondary .rz-button-icon-right,
.rz-button.rz-secondary .rz-icon,
.rz-button.rz-button-secondary .rz-button-text,
.rz-button.rz-button-secondary .rz-button-icon-left,
.rz-button.rz-button-secondary .rz-button-icon-right,
.rz-button.rz-button-secondary .rz-icon {
    color: var(--rc-on-secondary) !important;
}

/* Estado deshabilitado: no usa la marca, por lo que nunca parece un botón
   activo con texto ilegible. */
.rz-button:disabled,
.rz-button.rz-state-disabled,
button:disabled {
    opacity: 1 !important;
    background: var(--rc-disabled-bg) !important;
    border-color: var(--rc-disabled-border) !important;
    color: var(--rc-disabled-text) !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
}
.rz-button:disabled .rz-button-text,
.rz-button:disabled .rz-icon,
.rz-button.rz-state-disabled .rz-button-text,
.rz-button.rz-state-disabled .rz-icon,
button:disabled .rz-icon {
    color: var(--rc-disabled-text) !important;
}

.save-brand-button {
    min-width: 158px;
    min-height: 40px;
    border-radius: 9px !important;
    font-weight: 750 !important;
    letter-spacing: .01em;
}

/* Focus accesible y coherente para mouse/teclado. */
button:focus-visible,
a:focus-visible,
.rz-button:focus-visible,
.rz-inputtext:focus-visible,
.rz-dropdown:focus-visible,
.rz-colorpicker:focus-visible,
.rz-switch:focus-visible,
.rz-chkbox:focus-visible,
.rz-radiobutton:focus-visible {
    outline: 3px solid var(--rc-focus-ring) !important;
    outline-offset: 2px !important;
}

/* Formularios y controles Radzen: misma superficie y borde en todo el sistema. */
.rz-textbox,
.rz-textarea,
.rz-inputtext,
.rz-numeric,
.rz-numeric input,
.rz-dropdown,
.rz-multiselect,
.rz-autocomplete,
.rz-datepicker,
.rz-colorpicker,
.rz-password,
.rz-fileupload-choose {
    background-color: var(--rc-control-bg) !important;
    color: var(--rc-text) !important;
    border-color: var(--rc-control-border) !important;
    box-shadow: none !important;
}
.rz-textarea,
.rz-textbox,
.rz-inputtext,
.rz-numeric input,
.rz-dropdown-label,
.rz-multiselect-label,
.rz-autocomplete-input,
.rz-datepicker input,
.rz-password input {
    color: var(--rc-text) !important;
}
.rz-inputtext::placeholder,
.rz-textbox::placeholder,
.rz-textarea::placeholder,
.rz-numeric input::placeholder,
.rz-autocomplete-input::placeholder {
    color: var(--rc-control-placeholder) !important;
    opacity: 1 !important;
}
.rz-textbox:hover,
.rz-textarea:hover,
.rz-numeric:hover,
.rz-dropdown:hover,
.rz-multiselect:hover,
.rz-autocomplete:hover,
.rz-datepicker:hover,
.rz-colorpicker:hover,
.rz-password:hover {
    border-color: var(--rc-control-border-hover) !important;
}
.rz-textbox:focus,
.rz-textarea:focus,
.rz-inputtext:focus,
.rz-numeric:focus-within,
.rz-dropdown:focus-within,
.rz-multiselect:focus-within,
.rz-autocomplete:focus-within,
.rz-datepicker:focus-within,
.rz-colorpicker:focus-within,
.rz-password:focus-within {
    border-color: var(--rc-primary-ink) !important;
    box-shadow: 0 0 0 3px var(--rc-focus-ring) !important;
    outline: none !important;
}
.rz-dropdown-trigger,
.rz-multiselect-trigger,
.rz-datepicker-trigger,
.rz-numeric-up,
.rz-numeric-down,
.rz-colorpicker-trigger {
    color: var(--rc-muted) !important;
    background: transparent !important;
}

/* Dropdowns, menús y overlays. */
.rz-dropdown-panel,
.rz-multiselect-panel,
.rz-autocomplete-panel,
.rz-popup,
.rz-context-menu,
.rz-menu-list,
.rz-calendar,
.rz-datepicker-calendar,
.rz-colorpicker-popup {
    background: var(--rc-overlay) !important;
    color: var(--rc-text) !important;
    border-color: var(--rc-border) !important;
    box-shadow: 0 16px 40px rgba(15, 23, 42, .14) !important;
}
:root[data-theme="dark"] .rz-dropdown-panel,
:root[data-theme="dark"] .rz-multiselect-panel,
:root[data-theme="dark"] .rz-autocomplete-panel,
:root[data-theme="dark"] .rz-popup,
:root[data-theme="dark"] .rz-context-menu,
:root[data-theme="dark"] .rz-menu-list,
:root[data-theme="dark"] .rz-calendar,
:root[data-theme="dark"] .rz-datepicker-calendar,
:root[data-theme="dark"] .rz-colorpicker-popup {
    box-shadow: 0 18px 44px rgba(0, 0, 0, .38) !important;
}
.rz-dropdown-item,
.rz-multiselect-item,
.rz-autocomplete-list-item,
.rz-menuitem-link {
    color: var(--rc-text) !important;
}
.rz-dropdown-item:hover,
.rz-multiselect-item:hover,
.rz-autocomplete-list-item:hover,
.rz-menuitem-link:hover {
    background: var(--rc-control-hover) !important;
}
.rz-dropdown-item.rz-state-highlight,
.rz-dropdown-item.rz-state-selected,
.rz-multiselect-item.rz-state-highlight,
.rz-autocomplete-list-item.rz-state-highlight {
    background: var(--rc-primary-soft) !important;
    color: var(--rc-primary-ink) !important;
}

/* Checkboxes, radios y switches */
.rz-chkbox-box,
.rz-radiobutton-box {
    background: var(--rc-control-bg) !important;
    border-color: var(--rc-control-border) !important;
    color: var(--rc-text) !important;
}
.rz-chkbox-box.rz-state-active,
.rz-chkbox-box.rz-state-checked,
.rz-radiobutton-box.rz-state-active,
.rz-radiobutton-box.rz-state-checked {
    background: var(--rc-primary) !important;
    border-color: var(--rc-primary) !important;
    color: var(--rc-on-primary) !important;
}
.rz-switch .rz-switch-wrapper {
    background: var(--rc-disabled-border) !important;
    border: 1px solid var(--rc-control-border) !important;
}
.rz-switch .rz-switch-circle {
    background: var(--rc-surface) !important;
    box-shadow: 0 1px 3px rgba(15, 23, 42, .22) !important;
}
.rz-switch.rz-switch-checked .rz-switch-wrapper,
.rz-switch.rz-state-active .rz-switch-wrapper {
    background: var(--rc-primary) !important;
    border-color: var(--rc-primary) !important;
}
.rz-switch.rz-switch-checked .rz-switch-circle,
.rz-switch.rz-state-active .rz-switch-circle {
    background: var(--rc-on-primary) !important;
}

/* Tablas y DataGrid */
.rz-data-grid,
.rz-datatable,
.rz-grid-table {
    color: var(--rc-text) !important;
    background: var(--rc-surface) !important;
    border-color: var(--rc-border) !important;
}
.rz-data-grid table,
.rz-grid-table { background: var(--rc-surface) !important; }
.rz-data-grid thead th,
.rz-grid-table thead th,
.rz-column-title {
    background: var(--rc-table-head) !important;
    color: var(--rc-muted) !important;
    border-color: var(--rc-divider) !important;
}
.rz-data-grid tbody td,
.rz-grid-table tbody td {
    background: var(--rc-surface) !important;
    color: var(--rc-text) !important;
    border-color: var(--rc-divider) !important;
}
.rz-data-grid tbody tr:hover td,
.rz-grid-table tbody tr:hover td {
    background: var(--rc-row-hover) !important;
}
.rz-data-grid tbody tr.rz-state-highlight td,
.rz-grid-table tbody tr.rz-state-highlight td {
    background: var(--rc-row-selected) !important;
    color: var(--rc-text) !important;
}
.rz-paginator {
    background: var(--rc-surface) !important;
    color: var(--rc-muted) !important;
    border-color: var(--rc-divider) !important;
}
.rz-paginator-element {
    color: var(--rc-muted) !important;
}
.rz-paginator-element.rz-state-active {
    background: var(--rc-primary) !important;
    color: var(--rc-on-primary) !important;
}

/* Diálogos y notificaciones */
.rz-dialog,
.rz-dialog-content,
.rz-dialog-titlebar {
    background: var(--rc-surface) !important;
    color: var(--rc-text) !important;
    border-color: var(--rc-border) !important;
}
.rz-dialog-titlebar { border-bottom: 1px solid var(--rc-divider) !important; }
.rz-dialog-mask { background: rgba(15, 23, 42, .48) !important; }
.rz-notification-item {
    border: 1px solid var(--rc-border) !important;
    box-shadow: var(--rc-shadow) !important;
}

/* Navegación y tabs: el relleno utiliza el color de marca y el texto el
   contraste calculado; los tabs ligeros usan la variante accesible. */
.sidebar nav a.active {
    background: var(--rc-primary) !important;
    color: var(--rc-on-primary) !important;
    box-shadow: inset 3px 0 0 var(--rc-secondary);
}
.sidebar nav a.active .rz-icon,
.sidebar nav a.active span { color: var(--rc-on-primary) !important; }
.sidebar nav a:hover:not(.active) {
    background: color-mix(in srgb, var(--rc-sidebar-hover) 88%, var(--rc-primary) 12%);
}
.module-tabs a.active {
    background: var(--rc-primary-soft) !important;
    color: var(--rc-primary-ink) !important;
    box-shadow: inset 0 -2px 0 var(--rc-secondary);
}

/* Cards, paneles y barras fijas. */
.panel,
.sticky-form-footer,
.reversal-bar,
.notice-card,
.filter-bar,
.module-tabs,
.catalog-summary {
    border-color: var(--rc-border) !important;
}
.sticky-form-footer {
    background: color-mix(in srgb, var(--rc-surface) 97%, transparent) !important;
}
:root[data-theme="dark"] .sticky-form-footer {
    box-shadow: 0 12px 36px rgba(0, 0, 0, .30) !important;
}

/* Badges y estados mantienen semántica y contraste en ambos temas. */
.badge.success { background: color-mix(in srgb, var(--rc-success) 16%, transparent); }
.badge.warning { background: color-mix(in srgb, var(--rc-warning) 17%, transparent); }
.badge.danger { background: color-mix(in srgb, var(--rc-danger) 16%, transparent); }
.badge.info { background: color-mix(in srgb, var(--rc-info) 16%, transparent); }

/* Configuración de identidad visual */
.brand-preset.selected {
    border-color: var(--rc-primary) !important;
    box-shadow: 0 0 0 3px var(--rc-focus-ring), inset 0 0 0 1px var(--rc-primary) !important;
}
.brand-preset.selected > span:last-child { color: var(--rc-primary-ink); }
.preview-nav-item {
    background: var(--rc-primary) !important;
    color: var(--rc-on-primary) !important;
    box-shadow: inset 3px 0 0 var(--rc-secondary);
}
.preview-nav-item .rz-icon,
.preview-nav-item span { color: inherit !important; }
.preview-primary-action {
    background: var(--rc-primary) !important;
    color: var(--rc-on-primary) !important;
}
.preview-secondary-action {
    border-color: var(--rc-secondary) !important;
    color: var(--rc-secondary-ink) !important;
    background: var(--rc-surface) !important;
}

/* Selector de color: evita que el control se pierda sobre fondos claros u oscuros. */
.brand-color-field .rz-colorpicker {
    min-height: 40px;
    border-radius: 8px !important;
}
.brand-color-field code {
    color: var(--rc-text) !important;
    background: var(--rc-control-bg) !important;
    border-color: var(--rc-control-border) !important;
}

/* Mapa: controles Leaflet armonizados con el tema sin alterar el mapa base. */
.leaflet-control-zoom a,
.leaflet-control-layers,
.leaflet-bar a {
    background: var(--rc-surface) !important;
    color: var(--rc-text) !important;
    border-color: var(--rc-border) !important;
}
.leaflet-control-zoom a:hover,
.leaflet-bar a:hover { background: var(--rc-control-hover) !important; }
.leaflet-control-layers label { color: var(--rc-text) !important; }
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
    background: var(--rc-surface) !important;
    color: var(--rc-text) !important;
}
.map-popup small,
.map-popup span,
.map-popup em { color: var(--rc-muted) !important; }
.map-detail-link { color: var(--rc-primary-ink) !important; }

/* Texto de ayuda y labels: evita grises demasiado tenues en dark mode. */
.field > label,
.field label,
.settings-card-header h2,
.panel-title h2 { color: var(--rc-text); }
.field > small,
.field small,
.settings-card-header p,
.panel-title p,
.help-text { color: var(--rc-muted) !important; }

/* El color secundario se reserva para acento complementario y nunca reemplaza
   estados semánticos (éxito, advertencia o error). */
.user-chip .rz-icon,
.map-view-badge .rz-icon { color: var(--rc-secondary-ink) !important; }
.selected-map-item { box-shadow: inset 3px 0 0 var(--rc-secondary); }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* ========================================================================== */
/* RedControl UX5 · espacios de trabajo comercial y financiero                */
/* ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
.page-body, .page-body > *, .panel, .rz-tabview, .rz-tabview-panels, .rz-tabview-panel { min-width: 0; }

/* Controles: no recortar radios, spinners, flechas o texto. */
.form-grid .rz-textbox,
.form-grid .rz-textarea,
.form-grid .rz-dropdown,
.form-grid .rz-numeric,
.form-grid .rz-datepicker,
.form-grid .rz-autocomplete,
.form-grid .rz-password,
.filter-bar .rz-textbox,
.filter-bar .rz-dropdown,
.filter-bar .rz-datepicker,
.billing-toolbar .rz-dropdown,
.billing-toolbar .rz-button,
.panel-title .rz-textbox { width: 100% !important; max-width: 100%; min-width: 0; }
.rz-datepicker, .rz-dropdown, .rz-textbox, .rz-textarea { overflow: visible !important; }
.rz-numeric input, .rz-datepicker input, .rz-dropdown-label, .rz-textbox, .rz-textarea {
    min-height: 38px;
}
.rz-numeric input { padding-right: 38px !important; }

/* Tabulación con apariencia de navegación de trabajo y no botones HTML crudos. */
.rz-tabview { background: transparent !important; border: 0 !important; box-shadow: none !important; }
.rz-tabview-nav { display: flex !important; flex-wrap: wrap; gap: 6px; padding: 5px !important; border: 1px solid var(--rc-border) !important; border-radius: 12px !important; background: var(--rc-surface) !important; width: fit-content; max-width: 100%; }
.rz-tabview-nav li { border: 0 !important; background: transparent !important; border-radius: 8px !important; margin: 0 !important; }
.rz-tabview-nav li a { display: flex !important; align-items: center; gap: 7px; min-height: 36px; padding: 8px 12px !important; border-radius: 8px !important; color: var(--rc-muted) !important; font-weight: 700; text-decoration: none !important; }
.rz-tabview-nav li.rz-tabview-selected, .rz-tabview-nav li[aria-selected="true"] { background: var(--rc-primary-soft) !important; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--rc-primary) 34%, transparent); }
.rz-tabview-nav li.rz-tabview-selected a, .rz-tabview-nav li[aria-selected="true"] a { color: var(--rc-primary-ink) !important; }
.rz-tabview-panels { padding: 18px 0 0 !important; background: transparent !important; border: 0 !important; }

/* Espacios de trabajo master/detail. */
.master-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 390px); gap: 16px; align-items: start; }
.master-detail-layout .table-panel { overflow: hidden; }
.editor-panel { position: sticky; top: 72px; align-self: start; }
.editor-panel:not(.open) { min-height: 220px; }
.editor-panel.wide-editor { min-width: 0; }
.commercial-section { grid-template-columns: minmax(0, 1.35fr) minmax(360px, .85fr); }
.finance-accounts-layout { grid-template-columns: minmax(0, 1.4fr) minmax(340px, .8fr); }
.documents-layout { grid-template-columns: minmax(0, 1.55fr) minmax(340px, .75fr); }

/* Comercial. */
.embedded-section { border-top: 1px solid var(--rc-border); padding-top: 16px; margin-top: 16px; }
.subsection-title h3 { margin: 0; font-size: 14px; }
.subsection-title p { margin: 4px 0 12px; color: var(--rc-muted); font-size: 12px; }
.inline-add-row { display: grid; grid-template-columns: minmax(0, 1fr) 100px auto; gap: 8px; align-items: end; }
.compact-line { display: grid; grid-template-columns: minmax(0, 1fr) auto 34px; gap: 10px; align-items: center; padding: 9px 10px; margin-top: 7px; border: 1px solid var(--rc-border); border-radius: 9px; background: var(--rc-surface-subtle); }
.compact-line > span:first-child { display: flex; align-items: center; gap: 7px; min-width: 0; }

/* Cliente: lista y expediente. */
.client-detail-header { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; }
.detail-title-row, .detail-header-actions, .subscription-meta, .subscription-services, .row-actions { display: flex; align-items: center; gap: 10px; }
.detail-header-actions { flex-wrap: wrap; justify-content: flex-end; }
.detail-avatar { width: 48px; height: 48px; border-radius: 13px; display: grid; place-items: center; background: var(--rc-primary-soft); color: var(--rc-primary-ink); font-size: 25px; flex: 0 0 auto; }
.detail-balance { display: grid; gap: 2px; min-width: 170px; padding: 10px 14px; border: 1px solid var(--rc-border); border-radius: 10px; background: var(--rc-surface-subtle); }
.detail-balance span, .detail-balance small { color: var(--rc-muted); }
.detail-balance strong { font-size: 19px; }
.detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.client-service-grid { grid-template-columns: minmax(0, 1.4fr) minmax(320px, .6fr); }
.subscription-card { border: 1px solid var(--rc-border); border-radius: 12px; padding: 14px; margin-bottom: 10px; background: var(--rc-surface-subtle); }
.subscription-card.inactive { opacity: .68; }
.subscription-card h3 { margin: 8px 0 3px; }
.subscription-card p { margin: 0 0 9px; color: var(--rc-muted); }
.subscription-meta, .subscription-services { flex-wrap: wrap; color: var(--rc-muted); font-size: 12px; margin-top: 8px; }
.subscription-services span { display: inline-flex; align-items: center; gap: 4px; padding: 5px 8px; border-radius: 999px; background: var(--rc-surface); border: 1px solid var(--rc-border); }
.facts { display: grid; grid-template-columns: 150px 1fr; gap: 8px 14px; margin: 0; }
.facts dt { color: var(--rc-muted); }
.facts dd { margin: 0; font-weight: 650; }
.timeline { display: grid; gap: 0; }
.timeline > div { display: grid; grid-template-columns: 180px 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--rc-border); }
.timeline span { color: var(--rc-muted); }

/* Facturación: toolbar y área de cobro sin botones recortados. */
.billing-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 18px; padding: 12px 14px !important; overflow: visible !important; }
.period-selector { display: grid; grid-template-columns: 170px 105px auto; gap: 10px; align-items: end; min-width: 0; }
.period-selector label { display: grid; gap: 5px; color: var(--rc-muted); font-size: 11px; font-weight: 700; }
.period-selector .rz-button { width: auto !important; min-width: 116px; white-space: nowrap; }
.billing-summary-inline { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px 16px; color: var(--rc-muted); font-size: 12px; }
.billing-summary-inline b { display: block; color: var(--rc-text); margin-top: 2px; }
.billing-workspace { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(350px, .65fr); gap: 16px; align-items: start; }
.billing-list-panel { min-width: 0; overflow: hidden; }
.payment-workbench { position: sticky; top: 72px; min-width: 0; }
.mode-switch, .finance-view-switch, .segmented-choice { display: flex; gap: 5px; padding: 4px; border: 1px solid var(--rc-border); border-radius: 10px; background: var(--rc-surface-subtle); }
.mode-switch button, .finance-view-switch button, .segmented-choice button { flex: 1 1 0; min-width: 0; display: inline-flex; justify-content: center; align-items: center; gap: 6px; padding: 8px 10px; border: 0; border-radius: 7px; background: transparent; color: var(--rc-muted); font: inherit; font-weight: 700; cursor: pointer; }
.mode-switch button.active, .finance-view-switch button.active, .segmented-choice button.active { background: var(--rc-primary-soft); color: var(--rc-primary-ink); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--rc-primary) 28%, transparent); }
.payment-allocation { margin-top: 14px; border-top: 1px solid var(--rc-border); padding-top: 12px; }
.allocation-heading { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.allocation-heading span { color: var(--rc-muted); font-size: 12px; }
.allocation-line { display: grid; grid-template-columns: minmax(0,1fr) 125px 32px; gap: 8px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--rc-border); }
.allocation-line.read-only { grid-template-columns: minmax(0,1fr) auto; }
.allocation-line div { display: grid; gap: 2px; min-width: 0; }
.allocation-line small { color: var(--rc-muted); }
.payment-total-card, .document-balance-card, .balance-preview { margin-top: 14px; padding: 12px 14px; border-radius: 10px; background: var(--rc-primary-soft); border: 1px solid color-mix(in srgb, var(--rc-primary) 24%, var(--rc-border)); display: grid; gap: 2px; }
.payment-total-card strong, .document-balance-card strong { font-size: 21px; color: var(--rc-primary-ink); }
.payment-total-card span, .payment-total-card small, .document-balance-card span, .document-balance-card small { color: var(--rc-muted); }
.invoice-detail-panel { margin-top: 12px; padding: 14px; border-top: 1px solid var(--rc-border); background: var(--rc-surface-subtle); }
.invoice-line { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 18px; padding: 10px 0; border-bottom: 1px solid var(--rc-border); }
.invoice-line > div { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.invoice-line > div:first-child { display: grid; gap: 2px; }
.invoice-line small, .invoice-line span { color: var(--rc-muted); font-size: 12px; }

/* Gasto/ingreso versus pago/cobro. */
.concept-strip { display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 14px; padding: 12px 14px; border: 1px solid var(--rc-border); border-radius: 12px; background: var(--rc-surface); margin-bottom: 16px; }
.concept-strip > div { display: grid; grid-template-columns: auto auto minmax(0,1fr); gap: 8px; align-items: center; }
.concept-strip span { color: var(--rc-muted); font-size: 12px; }
.info-strip.warning { background: color-mix(in srgb, #f59e0b 10%, var(--rc-surface)); border-color: color-mix(in srgb, #f59e0b 32%, var(--rc-border)); }
.row-actions { gap: 4px; justify-content: flex-end; }

/* Tesorería y manual de cuentas. */
.operation-shell { max-width: 860px; }
.operation-card { overflow: visible; }
.operation-hero { display: flex; gap: 12px; align-items: center; margin-bottom: 16px; }
.operation-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 11px; background: var(--rc-primary-soft); color: var(--rc-primary-ink); font-size: 22px; flex: 0 0 auto; }
.operation-hero h2 { margin: 2px 0; }
.operation-hero p { margin: 0; color: var(--rc-muted); }
.balance-preview { grid-template-columns: auto auto auto auto auto; align-items: center; width: fit-content; max-width: 100%; }
.account-tree-name { display: flex; align-items: center; gap: 8px; }
.tree-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--rc-secondary); flex: 0 0 auto; }

/* Resultados. */
.finance-filter { display: grid; grid-template-columns: 170px 170px auto; max-width: 560px; align-items: end; }
.finance-filter label { display: grid; gap: 5px; color: var(--rc-muted); font-size: 11px; font-weight: 700; }
.finance-view-switch { width: fit-content; max-width: 100%; margin-bottom: 16px; }
.finance-view-switch button { flex: 0 1 auto; min-width: 170px; }

/* Botones inactivos: legibilidad real en claro y oscuro. */
.rz-button:disabled, .rz-button.rz-state-disabled { opacity: 1 !important; background: var(--rc-surface-subtle) !important; color: var(--rc-muted) !important; border-color: var(--rc-border) !important; box-shadow: none !important; }
.rz-button:disabled .rz-button-icon, .rz-button.rz-state-disabled .rz-button-icon { color: var(--rc-muted) !important; }

@media (max-width: 1180px) {
    .master-detail-layout, .commercial-section, .finance-accounts-layout, .documents-layout, .billing-workspace { grid-template-columns: 1fr; }
    .editor-panel, .payment-workbench { position: static; }
    .billing-toolbar { align-items: stretch; flex-direction: column; }
    .billing-summary-inline { justify-content: flex-start; }
}
@media (max-width: 760px) {
    .period-selector, .finance-filter { grid-template-columns: 1fr; max-width: none; }
    .period-selector .rz-button { width: 100% !important; }
    .detail-grid, .client-service-grid { grid-template-columns: 1fr; }
    .client-detail-header { flex-direction: column; }
    .detail-header-actions { justify-content: flex-start; width: 100%; }
    .concept-strip { grid-template-columns: 1fr; }
    .concept-strip > .rz-icon { transform: rotate(90deg); justify-self: center; }
    .concept-strip > div { grid-template-columns: auto 1fr; }
    .concept-strip > div span { grid-column: 2; }
    .inline-add-row { grid-template-columns: 1fr; }
    .allocation-line { grid-template-columns: 1fr 110px 32px; }
    .finance-view-switch { width: 100%; flex-direction: column; }
    .finance-view-switch button { min-width: 0; }
    .facts, .timeline > div { grid-template-columns: 1fr; gap: 2px; }
    .balance-preview { grid-template-columns: 1fr 1fr; width: 100%; }
    .balance-preview > .rz-icon { display: none; }
}
.accounting-mapping-panel { margin-top: 16px; }
.accounting-mapping-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 22px; }
.mapping-row { display: grid; grid-template-columns: minmax(140px,.65fr) minmax(180px,1fr) 38px; gap: 8px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--rc-border); }
.mapping-row > div { display: grid; gap: 2px; min-width: 0; }
.mapping-row small { color: var(--rc-muted); }
@media (max-width: 900px){ .accounting-mapping-grid{grid-template-columns:1fr;} .mapping-row{grid-template-columns:minmax(120px,.55fr) minmax(160px,1fr) 38px;} }
/* Clientes y formularios de edición. */
.clients-workspace { overflow: hidden; }
.clients-toolbar { align-items: end; }
.toolbar-fields { display: grid; grid-template-columns: minmax(280px, 1fr) 190px; gap: 10px; min-width: min(520px, 48vw); }
.entity-cell { display: flex; align-items: center; gap: 10px; min-width: 0; }
.entity-avatar { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; background: var(--rc-primary-soft); color: var(--rc-primary-ink); flex: 0 0 auto; }
.entity-cell > div:last-child, .stacked-value { display: grid; gap: 2px; min-width: 0; }
.entity-cell strong, .entity-cell small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.entity-cell small, .stacked-value small { color: var(--rc-muted); }
.form-page-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; padding-bottom: 86px; }
.form-page-grid .span-all { grid-column: 1 / -1; }
.form-section-card { overflow: visible; }
.section-heading { display: flex; gap: 10px; align-items: center; border-bottom: 1px solid var(--rc-border); padding-bottom: 12px; margin-bottom: 16px; }
.section-heading h2 { margin: 0; font-size: 15px; }
.section-heading p { margin: 3px 0 0; color: var(--rc-muted); font-size: 12px; }
.section-icon { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; background: var(--rc-primary-soft); color: var(--rc-primary-ink); }
.sticky-form-actions { position: sticky; bottom: 12px; z-index: 20; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 11px 14px; border: 1px solid var(--rc-border); border-radius: 12px; background: color-mix(in srgb, var(--rc-surface) 94%, transparent); box-shadow: 0 8px 30px rgba(15,23,42,.10); backdrop-filter: blur(8px); }
.sticky-form-actions > div:first-child { display: grid; gap: 2px; }
.sticky-form-actions small { color: var(--rc-muted); }
.action-group { display: flex; align-items: center; gap: 8px; }
.form-grid-spacious { gap: 14px 16px; }
.form-grid.one { grid-template-columns: 1fr; }
.form-actions { display: flex; justify-content: flex-end; gap: 8px; padding-top: 12px; border-top: 1px solid var(--rc-border); margin-top: 12px; }
.toggle-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 42px; }
.toggle-row > div { display: grid; gap: 2px; }
.toggle-row small { color: var(--rc-muted); }
.plan-preview { display: grid; gap: 3px; padding: 10px 12px; border: 1px solid var(--rc-border); border-radius: 9px; background: var(--rc-surface-subtle); margin-top: 8px; }
.plan-preview small { color: var(--rc-muted); }
.service-additional-heading { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--rc-border); }

@media (max-width: 900px) {
    .toolbar-fields { min-width: 0; width: 100%; grid-template-columns: 1fr; }
    .clients-toolbar { align-items: stretch; flex-direction: column; }
    .form-page-grid { grid-template-columns: 1fr; }
    .form-page-grid .span-all { grid-column: auto; }
    .sticky-form-actions { flex-direction: column; align-items: stretch; }
    .action-group { justify-content: flex-end; }
}

/* ========================================================================== */
/* RedControl UX6 · separación operacional y controles consistentes           */
/* ========================================================================== */

.heading-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }

/* Sustituye tabviews frágiles por navegación propia, estable en todas las
   versiones de Radzen usadas por RedControl. */
.workspace-tabs {
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    padding:5px;
    margin:0 0 16px;
    width:fit-content;
    max-width:100%;
    border:1px solid var(--rc-border);
    border-radius:12px;
    background:var(--rc-surface);
    box-shadow:0 1px 2px rgba(15,23,42,.03);
}
.workspace-tabs.wide { width:100%; }
.workspace-tabs button {
    border:0;
    min-height:42px;
    padding:8px 13px;
    display:grid;
    grid-template-columns:auto auto;
    grid-template-rows:auto auto;
    column-gap:7px;
    align-items:center;
    border-radius:8px;
    background:transparent;
    color:var(--rc-muted);
    font:inherit;
    font-weight:700;
    cursor:pointer;
}
.workspace-tabs button > .rz-icon { grid-row:1 / 3; }
.workspace-tabs button > span { color:inherit; }
.workspace-tabs button > small { color:var(--rc-muted); font-size:10px; font-weight:500; text-align:left; }
.workspace-tabs button.active {
    background:var(--rc-primary-soft);
    color:var(--rc-primary-ink);
    box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--rc-primary) 30%, transparent);
}
.workspace-tabs button.active > small { color:var(--rc-primary-ink); opacity:.8; }
.workspace-tabs.wide button { flex:1 1 150px; justify-content:center; }

/* Controles Radzen: un solo borde exterior, sin esquinas recortadas. */
.rc-control-scope .rz-dropdown,
.rc-control-scope .rz-numeric,
.rc-control-scope .rz-datepicker,
.form-grid .rz-dropdown,
.form-grid .rz-numeric,
.form-grid .rz-datepicker,
.toolbar-fields .rz-dropdown,
.toolbar-fields .rz-textbox,
.billing-toolbar .rz-dropdown,
.panel-title .rz-textbox {
    border:1px solid var(--rc-control-border) !important;
    border-radius:9px !important;
    background:var(--rc-control-bg) !important;
    min-height:40px !important;
    overflow:hidden !important;
    box-shadow:none !important;
}
.rc-control-scope input.rz-textbox,
.rc-control-scope textarea.rz-textarea,
.form-grid input.rz-textbox,
.form-grid textarea.rz-textarea,
.toolbar-fields input.rz-textbox,
.panel-title input.rz-textbox {
    border:1px solid var(--rc-control-border) !important;
    border-radius:9px !important;
    background:var(--rc-control-bg) !important;
    min-height:40px !important;
    box-shadow:none !important;
}
.rz-dropdown .rz-dropdown-label,
.rz-datepicker input,
.rz-numeric input {
    border:0 !important;
    outline:0 !important;
    background:transparent !important;
    min-height:38px !important;
}
.rz-dropdown .rz-dropdown-trigger,
.rz-datepicker .rz-datepicker-trigger {
    border-left:1px solid var(--rc-divider) !important;
    background:var(--rc-control-bg) !important;
}
.rc-control-scope .rz-dropdown:focus-within,
.rc-control-scope .rz-numeric:focus-within,
.rc-control-scope .rz-datepicker:focus-within,
.form-grid .rz-dropdown:focus-within,
.form-grid .rz-numeric:focus-within,
.form-grid .rz-datepicker:focus-within,
.rc-control-scope input.rz-textbox:focus,
.rc-control-scope textarea.rz-textarea:focus {
    border-color:var(--rc-primary) !important;
    box-shadow:0 0 0 3px var(--rc-focus-ring) !important;
}

/* Estados de carga/error visibles; evita pantallas que parecen vacías. */
.error-state { min-height:150px; display:flex; align-items:center; gap:14px; padding:22px; }
.error-state > .rz-icon { font-size:28px; color:var(--rc-danger); }
.error-state > div { display:grid; gap:4px; flex:1; }
.error-state span { color:var(--rc-muted); }
.empty-state-large { min-height:220px; padding:28px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center; color:var(--rc-muted); }
.empty-state-large strong { color:var(--rc-text); font-size:15px; }
.empty-state-large > span { max-width:420px; line-height:1.5; }
.empty-state-icon { width:48px; height:48px; display:grid; place-items:center; border-radius:14px; background:var(--rc-primary-soft); color:var(--rc-primary-ink); font-size:24px; }
.empty-state-icon.success { background:color-mix(in srgb, var(--rc-success) 14%, var(--rc-surface)); color:var(--rc-success); }

/* Facturación */
.invoice-management-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(340px,.75fr); gap:16px; align-items:start; }
.invoice-inspector { position:sticky; top:72px; overflow:visible; }
.invoice-list-toolbar { align-items:end; }
.toolbar-fields.compact { grid-template-columns:minmax(220px,1fr) 165px; min-width:min(460px,45vw); }
.invoice-status-strip { display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; padding:10px 0 14px; border-bottom:1px solid var(--rc-border); color:var(--rc-muted); font-size:12px; }
.invoice-status-strip b { color:var(--rc-text); }
.invoice-totals-card { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:14px 0 18px; }
.invoice-totals-card > div { display:grid; gap:3px; padding:10px 12px; border:1px solid var(--rc-border); border-radius:9px; background:var(--rc-surface-subtle); }
.invoice-totals-card span { color:var(--rc-muted); font-size:11px; }
.invoice-totals-card strong { font-size:15px; }
.invoice-totals-card .grand { background:var(--rc-primary-soft); border-color:color-mix(in srgb,var(--rc-primary) 25%,var(--rc-border)); }
.invoice-totals-card .grand strong { color:var(--rc-primary-ink); font-size:18px; }
.invoice-lines-list { display:grid; gap:8px; }
.invoice-line-card { padding:11px 12px; border:1px solid var(--rc-border); border-radius:9px; background:var(--rc-surface); display:grid; gap:9px; }
.line-main { display:grid; gap:2px; }
.line-main small { color:var(--rc-muted); }
.line-values { display:flex; flex-wrap:wrap; gap:8px 14px; color:var(--rc-muted); font-size:11px; }
.line-values b,.line-values > strong { color:var(--rc-text); }
.line-values > strong { margin-left:auto; font-size:13px; }

/* Cuentas por cobrar */
.collections-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(350px,.72fr); gap:16px; align-items:start; }
.collection-checkout { position:sticky; top:72px; overflow:visible; }
.client-picker-card { padding:14px; margin-bottom:14px; border:1px solid var(--rc-border); border-radius:10px; background:var(--rc-surface-subtle); }
.client-picker-card > label { display:grid; gap:6px; color:var(--rc-muted); font-size:11px; font-weight:700; }
.client-debt-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:12px; }
.client-debt-summary > div { display:grid; gap:2px; padding:9px 10px; border-radius:8px; background:var(--rc-surface); border:1px solid var(--rc-border); }
.client-debt-summary span { font-size:10px; color:var(--rc-muted); }
.client-debt-summary strong { font-size:15px; }
.receivable-list { display:grid; gap:8px; }
.receivable-card { display:grid; grid-template-columns:34px minmax(0,1fr) minmax(0,145px); gap:10px; align-items:center; padding:12px; border:1px solid var(--rc-border); border-radius:10px; background:var(--rc-surface); transition:.15s ease; }
.receivable-card.selected { border-color:color-mix(in srgb,var(--rc-primary) 55%,var(--rc-border)); box-shadow:0 0 0 2px var(--rc-focus-ring); }
.receivable-card.overdue { box-shadow:inset 3px 0 0 var(--rc-danger); }
.receivable-select { display:grid; place-items:center; color:var(--rc-muted); }
.receivable-main { min-width:0; display:grid; gap:4px; }
.receivable-title { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.receivable-main > small,.receivable-concepts { color:var(--rc-muted); font-size:11px; }
.receivable-concepts { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.receivable-amounts { display:flex; flex-wrap:wrap; gap:7px 14px; font-size:11px; color:var(--rc-muted); }
.receivable-amounts b { color:var(--rc-text); }
.receivable-apply label { display:grid; gap:4px; color:var(--rc-muted); font-size:10px; font-weight:700; }
.collection-mode { margin-bottom:12px; }
.checkout-fields { margin-top:12px; }

/* Cuentas por pagar */
.payables-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(340px,.72fr); gap:16px; align-items:start; }
.payable-checkout { position:sticky; top:72px; overflow:visible; }
.payables-toolbar { align-items:end; }
.payable-meta { display:flex; flex-wrap:wrap; gap:8px 14px; margin:12px 0; color:var(--rc-muted); font-size:11px; }
.payable-meta b { color:var(--rc-text); }
.payment-result-preview { margin-top:14px; display:grid; grid-template-columns:1fr auto 1fr; gap:12px; align-items:center; padding:12px 14px; border:1px solid var(--rc-border); border-radius:10px; background:var(--rc-surface-subtle); }
.payment-result-preview > div { display:grid; gap:2px; }
.payment-result-preview span { color:var(--rc-muted); font-size:11px; }
.payment-result-preview strong { font-size:16px; }
.payment-result-preview > .rz-icon { color:var(--rc-primary-ink); }

/* Gastos/ingresos: acción de negocio explícita en vez del catálogo técnico. */
.transaction-choice { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:14px; }
.transaction-choice button { min-height:78px; display:flex; align-items:flex-start; gap:10px; text-align:left; padding:11px; border:1px solid var(--rc-border); border-radius:10px; background:var(--rc-surface); color:var(--rc-text); font:inherit; cursor:pointer; }
.transaction-choice button > .rz-icon { color:var(--rc-muted); margin-top:2px; }
.transaction-choice button > span { display:grid; gap:3px; }
.transaction-choice button small { color:var(--rc-muted); line-height:1.35; }
.transaction-choice button.active { border-color:var(--rc-primary); background:var(--rc-primary-soft); box-shadow:0 0 0 2px var(--rc-focus-ring); }
.transaction-choice button.active > .rz-icon,.transaction-choice button.active strong { color:var(--rc-primary-ink); }

/* Tesorería */
.treasury-overview { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(300px,.6fr); gap:16px; align-items:start; }
.financial-account-cards { display:grid; gap:8px; }
.financial-account-card { display:grid; grid-template-columns:42px minmax(0,1fr) auto auto 38px; gap:10px; align-items:center; padding:11px 12px; border:1px solid var(--rc-border); border-radius:10px; background:var(--rc-surface); }
.financial-account-card.inactive { opacity:.68; }
.financial-account-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:10px; background:var(--rc-primary-soft); color:var(--rc-primary-ink); }
.financial-account-main { min-width:0; display:grid; gap:3px; }
.financial-account-main > div { display:flex; gap:7px; align-items:center; flex-wrap:wrap; }
.financial-account-main small { color:var(--rc-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.financial-account-balance { display:grid; gap:2px; text-align:right; }
.financial-account-balance span { color:var(--rc-muted); font-size:10px; }
.financial-account-balance strong { font-size:15px; }
.treasury-guide { position:sticky; top:72px; }
.treasury-rule { display:flex; gap:10px; padding:11px 0; border-bottom:1px solid var(--rc-border); }
.treasury-rule > .rz-icon { color:var(--rc-primary-ink); }
.treasury-rule > div { display:grid; gap:2px; }
.treasury-rule span { color:var(--rc-muted); font-size:11px; line-height:1.4; }

/* Comercial */
.commercial-section .editor-panel { overflow:visible; }

@media (max-width:1180px) {
    .invoice-management-layout,.collections-layout,.payables-layout,.treasury-overview { grid-template-columns:1fr; }
    .invoice-inspector,.collection-checkout,.payable-checkout,.treasury-guide { position:static; }
}
@media (max-width:760px) {
    .heading-actions { width:100%; }
    .heading-actions .rz-button { flex:1 1 auto; }
    .workspace-tabs { width:100%; }
    .workspace-tabs button { flex:1 1 130px; }
    .toolbar-fields.compact { grid-template-columns:1fr; min-width:0; width:100%; }
    .invoice-list-toolbar,.payables-toolbar { align-items:stretch; flex-direction:column; }
    .client-debt-summary { grid-template-columns:1fr; }
    .receivable-card { grid-template-columns:34px minmax(0,1fr); }
    .receivable-apply { grid-column:2; }
    .transaction-choice { grid-template-columns:1fr; }
    .financial-account-card { grid-template-columns:38px minmax(0,1fr) auto; }
    .financial-account-balance { grid-column:2; text-align:left; }
    .financial-account-card > .badge { grid-column:3; grid-row:1; }
    .payment-result-preview { grid-template-columns:1fr 1fr; }
    .payment-result-preview > .rz-icon { display:none; }
}

/* V7 · UI de trabajo: páginas de consulta + formularios en diálogo */
.compact-heading { margin-bottom: 14px; align-items: center; }
.compact-heading h1 { margin-bottom: 0; }
.clean-panel-title { min-height: 42px; margin-bottom: 10px; }
.clean-panel-title > h2, .clean-panel-title > h3 { margin: 0; }
.full-width-panel { width: 100%; min-width: 0; }
.section-actions { display:flex; justify-content:flex-end; align-items:center; gap:8px; margin:0 0 12px; flex-wrap:wrap; }
.compact-tabs { margin-bottom:14px; }
.detail-code { color:var(--rc-muted); font-size:12px; }
.detail-big-number { display:block; font-size:28px; margin:8px 0 14px; }
.empty-state-clean { min-height:130px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; color:var(--rc-muted); }
.empty-state-clean .rz-icon { font-size:28px; color:var(--rc-muted); }
.empty-state-clean strong { color:var(--rc-text); }
.subscription-grid { display:grid; gap:10px; }
.subscription-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.subscription-head h3 { margin:0; }
.client-detail-tabs { width:100%; }
.client-detail-tabs button { flex:1 1 140px; }
.clean-detail-header p { display:none; }

/* Diálogos */
.rz-dialog-wrapper { padding:20px !important; }
.rz-dialog {
    max-width:calc(100vw - 32px) !important;
    max-height:calc(100vh - 32px) !important;
    border:1px solid var(--rc-border) !important;
    border-radius:14px !important;
    background:var(--rc-surface) !important;
    color:var(--rc-text) !important;
    box-shadow:0 22px 55px rgba(15,23,42,.22) !important;
    overflow:hidden !important;
}
.rz-dialog-titlebar {
    min-height:56px;
    display:flex;
    align-items:center;
    padding:14px 18px !important;
    border-bottom:1px solid var(--rc-border) !important;
    background:var(--rc-surface) !important;
    color:var(--rc-text) !important;
    font-weight:800 !important;
}
.rz-dialog-titlebar-close { color:var(--rc-muted) !important; border-radius:8px !important; }
.rz-dialog-content {
    padding:18px !important;
    background:var(--rc-surface) !important;
    color:var(--rc-text) !important;
    overflow:auto !important;
    max-height:calc(100vh - 106px) !important;
}
.dialog-form { display:grid; gap:18px; min-width:0; }
.dialog-wide { min-width:0; }
.dialog-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 16px; }
.dialog-grid.one { grid-template-columns:1fr; }
.dialog-grid .span-2 { grid-column:1 / -1; }
.dialog-grid > label,
.inline-entry-grid > label {
    min-width:0;
    display:grid;
    gap:6px;
    color:var(--rc-muted);
    font-size:11px;
    font-weight:700;
}
.dialog-grid .rz-textbox,
.dialog-grid .rz-textarea,
.dialog-grid .rz-dropdown,
.dialog-grid .rz-numeric,
.dialog-grid .rz-datepicker,
.inline-entry-grid .rz-textbox,
.inline-entry-grid .rz-dropdown,
.inline-entry-grid .rz-numeric {
    width:100% !important;
}
.dialog-actions {
    position:sticky;
    bottom:-18px;
    z-index:3;
    display:flex;
    justify-content:flex-end;
    gap:8px;
    padding:13px 0 0;
    margin-top:2px;
    border-top:1px solid var(--rc-border);
    background:var(--rc-surface);
}
.dialog-section { padding-top:14px; border-top:1px solid var(--rc-border); display:grid; gap:10px; }
.dialog-section:first-child { padding-top:0; border-top:0; }
.dialog-section-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.dialog-section-head h3 { margin:0; font-size:14px; }
.inline-entry-grid { display:grid; grid-template-columns:minmax(0,1fr) 110px 150px auto; gap:8px; align-items:end; }
.dialog-list { display:grid; gap:7px; }
.dialog-list-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:10px; align-items:center; padding:9px 10px; border:1px solid var(--rc-border); border-radius:9px; background:var(--rc-surface-subtle); }
.dialog-list-row small { color:var(--rc-muted); }
.dialog-toggle-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.dialog-choice {
    min-height:62px;
    display:flex;
    gap:10px;
    align-items:center;
    padding:10px 12px;
    border:1px solid var(--rc-border);
    border-radius:10px;
    background:var(--rc-surface);
    color:var(--rc-text);
    cursor:pointer;
    text-align:left;
}
.dialog-choice.active { border-color:var(--rc-primary); background:var(--rc-primary-soft); box-shadow:0 0 0 2px var(--rc-focus-ring); }
.dialog-choice .rz-icon { color:var(--rc-muted); }
.dialog-choice.active .rz-icon { color:var(--rc-primary-ink); }
.dialog-choice.compact-choice { min-height:46px; }
.dialog-summary-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; padding:11px 12px; border:1px solid var(--rc-border); border-radius:10px; background:var(--rc-surface-subtle); }
.dialog-summary-row span { color:var(--rc-muted); font-size:12px; }
.dialog-document-list { display:grid; gap:8px; max-height:320px; overflow:auto; padding-right:2px; }
.dialog-document-row { display:grid; grid-template-columns:34px minmax(0,1fr) 150px; gap:10px; align-items:center; padding:11px; border:1px solid var(--rc-border); border-radius:10px; background:var(--rc-surface); }
.dialog-document-row.selected { border-color:var(--rc-primary); box-shadow:0 0 0 2px var(--rc-focus-ring); }
.dialog-document-main { display:grid; gap:3px; min-width:0; }
.dialog-document-main small { color:var(--rc-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dialog-total { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; padding:12px 14px; border-radius:10px; background:var(--rc-primary-soft); }
.dialog-total span { color:var(--rc-muted); font-size:11px; }
.dialog-total strong { font-size:22px; color:var(--rc-primary-ink); }
.invoice-dialog { display:grid; gap:14px; }
.invoice-dialog-header { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; }
.invoice-dialog-header > div { display:grid; gap:3px; }
.invoice-dialog-header strong { font-size:18px; }
.invoice-dialog-header span:not(.badge) { color:var(--rc-muted); }
.invoice-dialog-meta { display:flex; flex-wrap:wrap; gap:8px 18px; color:var(--rc-muted); font-size:11px; padding-bottom:12px; border-bottom:1px solid var(--rc-border); }
.invoice-dialog-meta b { color:var(--rc-text); }
.dialog-invoice-totals { margin:0; grid-template-columns:repeat(3,minmax(0,1fr)); }

/* Tablas: ancho útil y acciones estables */
.table-panel .rz-data-grid { width:100%; }
.rc-grid .rz-grid-table { min-width:760px; }
.row-actions { white-space:nowrap; }
.entity-cell { min-width:0; }
.entity-cell strong, .entity-cell small { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* Controles: borde completo también dentro de diálogos/overlays */
.rz-dialog .rz-dropdown,
.rz-dialog .rz-numeric,
.rz-dialog .rz-datepicker,
.rz-dialog input.rz-textbox,
.rz-dialog textarea.rz-textarea,
.rz-dialog .rz-autocomplete {
    border:1px solid var(--rc-control-border) !important;
    border-radius:9px !important;
    background:var(--rc-control-bg) !important;
    color:var(--rc-text) !important;
    min-height:40px !important;
    box-shadow:none !important;
}
.rz-dialog .rz-dropdown:focus-within,
.rz-dialog .rz-numeric:focus-within,
.rz-dialog .rz-datepicker:focus-within,
.rz-dialog input.rz-textbox:focus,
.rz-dialog textarea.rz-textarea:focus {
    border-color:var(--rc-primary) !important;
    box-shadow:0 0 0 3px var(--rc-focus-ring) !important;
}
.rz-dialog .rz-dropdown-label,
.rz-dialog .rz-numeric input,
.rz-dialog .rz-datepicker input { color:var(--rc-text) !important; }
.rz-popup, .rz-dropdown-panel, .rz-autocomplete-panel {
    background:var(--rc-surface) !important;
    color:var(--rc-text) !important;
    border:1px solid var(--rc-border) !important;
    border-radius:10px !important;
    box-shadow:0 14px 32px rgba(15,23,42,.18) !important;
}

@media (max-width:760px) {
    .rz-dialog-wrapper { padding:8px !important; }
    .rz-dialog { width:calc(100vw - 16px) !important; max-width:calc(100vw - 16px) !important; max-height:calc(100vh - 16px) !important; }
    .rz-dialog-content { padding:14px !important; max-height:calc(100vh - 76px) !important; }
    .dialog-grid { grid-template-columns:1fr; }
    .dialog-grid .span-2 { grid-column:auto; }
    .dialog-toggle-row { grid-template-columns:1fr; }
    .inline-entry-grid { grid-template-columns:1fr; }
    .dialog-document-row { grid-template-columns:34px minmax(0,1fr); }
    .dialog-document-row > :last-child { grid-column:2; }
    .dialog-invoice-totals { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .dialog-actions { bottom:-14px; }
    .client-detail-tabs button { flex:1 1 120px; }
}

/* Corrección de selectores de opciones dentro de formularios modales */
.dialog-choice {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    padding:0;
    border:0;
    background:transparent;
}
.dialog-choice > button {
    min-height:58px;
    display:flex;
    gap:9px;
    align-items:center;
    justify-content:flex-start;
    padding:10px 12px;
    border:1px solid var(--rc-border);
    border-radius:10px;
    background:var(--rc-surface);
    color:var(--rc-text);
    font:inherit;
    font-weight:700;
    cursor:pointer;
    text-align:left;
}
.dialog-choice > button .rz-icon { color:var(--rc-muted); }
.dialog-choice > button.active {
    border-color:var(--rc-primary);
    background:var(--rc-primary-soft);
    color:var(--rc-primary-ink);
    box-shadow:0 0 0 2px var(--rc-focus-ring);
}
.dialog-choice > button.active .rz-icon { color:var(--rc-primary-ink); }
.dialog-choice.compact-choice > button { min-height:46px; }
@media (max-width:760px) { .dialog-choice { grid-template-columns:1fr; } }
.inline-entry-grid { grid-template-columns:minmax(0,1fr) 120px auto; }
@media (max-width:760px) { .inline-entry-grid { grid-template-columns:1fr; } }

/* V9 · formularios compactos, tesorería y mapa */
.dialog-grid > label,
.inline-entry-grid > label {
    display:block;
    min-width:0;
    color:var(--rc-muted);
    font-size:11px;
    font-weight:700;
    line-height:1.25;
}
.dialog-grid > label > .rz-textbox,
.dialog-grid > label > .rz-textarea,
.dialog-grid > label > .rz-dropdown,
.dialog-grid > label > .rz-numeric,
.dialog-grid > label > .rz-datepicker,
.inline-entry-grid > label > .rz-textbox,
.inline-entry-grid > label > .rz-dropdown,
.inline-entry-grid > label > .rz-numeric { display:block; margin-top:6px; width:100% !important; }
.required { display:inline !important; margin-left:2px; vertical-align:baseline; }

.rz-dropdown,.rz-numeric,.rz-datepicker,input.rz-textbox,textarea.rz-textarea {
    border:1px solid var(--rc-control-border) !important;
    border-radius:9px !important;
    box-sizing:border-box !important;
}
.rz-dropdown .rz-dropdown-trigger,.rz-datepicker .rz-datepicker-trigger { border-radius:0 8px 8px 0 !important; }
.rz-dropdown-label,.rz-numeric input,.rz-datepicker input,input.rz-textbox { min-height:38px !important; }

.route-editor-actions,.map-edit-actions { display:flex; gap:6px; flex-wrap:wrap; margin:10px 0; }
.route-editor-actions .rz-button { flex:1 1 auto; }
.route-vertex-wrap { background:transparent !important; border:0 !important; }
.route-vertex { width:24px; height:24px; display:grid; place-items:center; border:2px solid #fff; border-radius:50%; background:var(--rc-primary); color:var(--rc-on-primary); font:700 10px/1 system-ui; box-shadow:0 2px 8px rgba(15,23,42,.35); cursor:grab; }
.route-vertex.selected { width:28px; height:28px; margin:-2px; outline:3px solid rgba(245,158,11,.45); background:#f59e0b; }
.network-pin.network-pin-icon span.rzi { font-size:17px; font-weight:400; }
.map-workspace:fullscreen { width:100vw; height:100vh; border:0; border-radius:0; background:var(--rc-surface); }
.map-workspace:fullscreen .network-map { height:100vh; }
.map-workspace:fullscreen .map-tools { max-height:100vh; }

.view-toggle { display:inline-flex; border:1px solid var(--rc-border); border-radius:9px; overflow:hidden; background:var(--rc-surface); }
.view-toggle button { display:flex; align-items:center; gap:5px; min-height:36px; padding:0 10px; border:0; border-right:1px solid var(--rc-border); background:transparent; color:var(--rc-muted); font:700 11px/1 system-ui; cursor:pointer; }
.view-toggle button:last-child { border-right:0; }
.view-toggle button.active { background:var(--rc-primary-soft); color:var(--rc-primary-ink); }
.manual-toolbar { align-items:center; }
.account-tree-view { display:grid; border:1px solid var(--rc-border); border-radius:10px; overflow:hidden; }
.account-tree-row { --tree-depth:0; display:grid; grid-template-columns:32px 100px minmax(180px,1fr) 105px 90px 40px; gap:8px; align-items:center; min-height:48px; padding:6px 8px 6px calc(8px + (var(--tree-depth) * 22px)); border-bottom:1px solid var(--rc-border); background:var(--rc-surface); }
.account-tree-row:last-child { border-bottom:0; }
.account-tree-row.control { background:color-mix(in srgb,var(--rc-surface-subtle) 65%,var(--rc-surface)); }
.tree-expander { width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--rc-muted);cursor:pointer; }
.tree-expander:disabled { opacity:.35; cursor:default; }
.account-code { font:700 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace; color:var(--rc-primary-ink); }
.account-tree-label { display:grid; gap:2px; min-width:0; }
.account-tree-label strong { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.account-tree-label small { color:var(--rc-muted); }

@media (max-width:900px){
    .account-tree-row { grid-template-columns:28px 88px minmax(150px,1fr) 38px; }
    .account-tree-row > .badge { display:none; }
}

/* V10 · consolidación operativa */
.dialog-xwide { width:min(1080px,calc(100vw - 48px)); max-width:100%; }
.req-entry-grid { grid-template-columns:minmax(150px,1fr) minmax(180px,1.2fr) 110px auto; }
.inventory-entry-row { display:grid; grid-template-columns:minmax(220px,1fr) 110px 130px auto; gap:8px; align-items:end; }
.serial-capture { display:grid; gap:7px; margin-top:10px; padding:10px; border:1px solid var(--rc-border); border-radius:10px; background:var(--rc-surface-subtle); }
.serial-capture small { color:var(--rc-muted); }
.inline-check { display:flex !important; align-items:center; gap:8px; min-height:40px; }
.inline-kpis { display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center; color:var(--rc-muted); font-size:12px; }
.inline-kpis strong { color:var(--rc-text); }

.client-alert-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:12px 0; }
.client-alert-card { display:flex; align-items:flex-start; gap:10px; min-width:0; padding:12px; border:1px solid var(--rc-border); border-radius:11px; background:var(--rc-surface); color:var(--rc-text); text-align:left; cursor:pointer; }
.client-alert-card > .rz-icon { margin-top:1px; }
.client-alert-card > div { min-width:0; display:grid; gap:3px; }
.client-alert-card strong,.client-alert-card span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.client-alert-card span { color:var(--rc-muted); font-size:11px; }
.client-alert-card.important { border-color:color-mix(in srgb,#d97706 48%,var(--rc-border)); background:color-mix(in srgb,#d97706 8%,var(--rc-surface)); }
.client-alert-card.urgent { border-color:color-mix(in srgb,#dc2626 52%,var(--rc-border)); background:color-mix(in srgb,#dc2626 8%,var(--rc-surface)); }

.activity-feed { display:grid; gap:8px; }
.activity-item { display:grid; grid-template-columns:38px minmax(0,1fr) auto; gap:10px; align-items:start; padding:12px; border:1px solid var(--rc-border); border-radius:10px; background:var(--rc-surface); }
.activity-item.important { border-left:4px solid #d97706; }
.activity-item.urgent { border-left:4px solid #dc2626; }
.activity-icon { width:36px; height:36px; display:grid; place-items:center; border-radius:9px; background:var(--rc-surface-subtle); color:var(--rc-primary-ink); }
.activity-body { min-width:0; display:grid; gap:6px; }
.activity-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.activity-head span { color:var(--rc-muted); font-size:11px; white-space:nowrap; }
.activity-body p { margin:0; color:var(--rc-text); white-space:pre-wrap; }
.activity-meta { display:flex; flex-wrap:wrap; gap:5px 12px; color:var(--rc-muted); font-size:11px; }

.execution-row { display:grid; grid-template-columns:minmax(220px,1fr) minmax(180px,1fr) minmax(170px,1fr); gap:10px; align-items:center; padding:10px 0; border-bottom:1px solid var(--rc-border); }
.execution-row:last-child { border-bottom:0; }
.execution-main { min-width:0; display:grid; gap:3px; }
.execution-main strong,.execution-main span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.execution-main span { color:var(--rc-muted); font-size:11px; }

.opening-entry-grid { display:grid; grid-template-columns:minmax(200px,1.2fr) 135px minmax(170px,1fr) minmax(180px,1fr) 115px 115px auto; gap:8px; align-items:center; }
.split-total { display:flex; justify-content:flex-end; gap:18px; flex-wrap:wrap; padding:10px 0 0; color:var(--rc-muted); }
.split-total strong { color:var(--rc-text); }
.reconciliation-list { display:grid; gap:8px; }
.reconciliation-row { display:grid; grid-template-columns:minmax(180px,1fr) repeat(3,minmax(115px,.55fr)) 90px; gap:10px; align-items:center; padding:10px 12px; border:1px solid var(--rc-border); border-radius:10px; background:var(--rc-surface); }
.reconciliation-row > span,.reconciliation-row > strong { text-align:right; }
.reconciliation-row > :first-child { text-align:left; }
.subscription-main { min-width:0; }

@media (max-width:980px) {
    .client-alert-strip { grid-template-columns:1fr; }
    .req-entry-grid,.inventory-entry-row,.opening-entry-grid { grid-template-columns:1fr 1fr; }
    .execution-row { grid-template-columns:1fr; }
    .reconciliation-row { grid-template-columns:1fr 1fr; }
    .reconciliation-row > span,.reconciliation-row > strong { text-align:left; }
}
@media (max-width:620px) {
    .req-entry-grid,.inventory-entry-row,.opening-entry-grid,.reconciliation-row { grid-template-columns:1fr; }
    .activity-item { grid-template-columns:34px minmax(0,1fr); }
    .activity-item > .rz-button { grid-column:2; justify-self:start; }
    .activity-head { display:grid; gap:3px; }
}

/* V24 · Inventario operativo */
.inventory-movement-dialog { gap:14px; }
.dialog-callout { display:flex; align-items:flex-start; gap:10px; padding:11px 12px; border:1px solid var(--rc-border); border-radius:10px; background:var(--rc-surface-subtle); }
.dialog-callout .rz-icon { margin-top:1px; }
.dialog-callout div { display:grid; gap:2px; }
.dialog-callout strong { font-size:13px; }
.dialog-callout span { font-size:12px; color:var(--rc-muted); line-height:1.35; }
.dialog-callout.info { border-color:color-mix(in srgb, var(--rz-primary) 24%, var(--rc-border)); }
.dialog-callout.warning { border-color:color-mix(in srgb, #d97706 30%, var(--rc-border)); }
.inventory-payment-box { display:grid; gap:10px; padding:10px 12px; border:1px solid var(--rc-border); border-radius:10px; background:var(--rc-surface-subtle); }
.switch-label { display:flex !important; align-items:center; gap:8px; }
.inventory-line-editor { display:grid; grid-template-columns:minmax(260px,1fr) 130px 145px auto; gap:9px; align-items:end; padding:12px; border:1px solid var(--rc-border); border-radius:10px; background:var(--rc-surface-subtle); }
.inventory-line-editor > label { min-width:0; }
.inventory-line-editor .span-2 { grid-column:span 2; }
.line-editor-action { display:flex; align-items:end; height:100%; }
.section-summary { font-size:12px; color:var(--rc-muted); }
.stock-hint { font-size:12px; color:var(--rc-muted); margin-top:7px; }
.empty-inline { min-height:74px; display:flex; align-items:center; justify-content:center; gap:8px; border:1px dashed var(--rc-border); border-radius:10px; color:var(--rc-muted); }
.inventory-lines-table { border:1px solid var(--rc-border); border-radius:10px; overflow:hidden; }
.inventory-lines-head,.inventory-lines-row { display:grid; grid-template-columns:minmax(220px,1.5fr) 110px 125px 130px 135px 86px; gap:10px; align-items:center; padding:9px 11px; }
.inventory-lines-head { background:var(--rc-surface-subtle); font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--rc-muted); font-weight:700; }
.inventory-lines-row { border-top:1px solid var(--rc-border); }
.inventory-lines-row:first-of-type { border-top:0; }
.inventory-lines-row > div:first-child { display:grid; gap:2px; min-width:0; }
.inventory-lines-row small { color:var(--rc-muted); }
.inventory-lines-row.simple { grid-template-columns:minmax(220px,1fr) 120px 160px 52px; }
.row-actions { display:flex; justify-content:flex-end; gap:5px; }
.inventory-sticky-actions { position:sticky; bottom:-1px; z-index:2; background:var(--rc-surface); border-top:1px solid var(--rc-border); margin:2px -2px -2px; padding-top:11px; }
.dialog-total-block { margin-right:auto; display:grid; gap:1px; }
.dialog-total-block small { color:var(--rc-muted); }
.dialog-total-block strong { font-size:16px; }
.inventory-series-dialog { gap:12px; }
.inventory-series-grid { border:1px solid var(--rc-border); border-radius:10px; overflow:hidden; }
.inventory-series-head,.inventory-series-row { display:grid; grid-template-columns:42px minmax(165px,1fr) minmax(165px,1fr) minmax(135px,.8fr) minmax(145px,.85fr) 135px; gap:8px; align-items:center; padding:8px 10px; }
.inventory-series-head { background:var(--rc-surface-subtle); font-size:11px; font-weight:700; color:var(--rc-muted); text-transform:uppercase; }
.inventory-series-row { border-top:1px solid var(--rc-border); }
.serial-index { text-align:center; color:var(--rc-muted); font-weight:700; }
@media (max-width:900px){.inventory-line-editor{grid-template-columns:1fr 1fr}.inventory-line-editor .span-2{grid-column:1/-1}.inventory-lines-head{display:none}.inventory-lines-row,.inventory-lines-row.simple{grid-template-columns:1fr 1fr}.inventory-series-head{display:none}.inventory-series-row{grid-template-columns:36px 1fr 1fr}.inventory-series-row>*:nth-child(n+4){grid-column:2/-1}}

/* V24.3 · Entrada de inventario / equipos serializados */
.inventory-detail-section { gap:10px; }
.inventory-line-editor {
    grid-template-columns:minmax(340px,1.8fr) 120px 150px 160px;
    gap:10px;
    align-items:end;
}
.inventory-line-editor > label,
.inventory-unit-fields > label { min-width:0; }
.inventory-line-editor .rz-dropdown,
.inventory-line-editor .rz-numeric,
.inventory-line-editor .rz-numeric input,
.inventory-line-editor .rz-button { width:100%; }
.line-editor-action { min-width:0; }
.line-editor-action .rz-button { width:100%; white-space:nowrap; }
.inventory-editor-hint {
    display:flex;
    align-items:flex-start;
    gap:9px;
    padding:9px 11px;
    border:1px solid var(--rc-border);
    border-radius:9px;
    background:var(--rc-surface-subtle);
}
.inventory-editor-hint > .rz-icon { margin-top:1px; color:var(--rz-primary); }
.inventory-editor-hint > div { display:grid; gap:2px; min-width:0; }
.inventory-editor-hint strong { font-size:12px; }
.inventory-editor-hint span,
.inventory-editor-hint small { font-size:11.5px; line-height:1.35; color:var(--rc-muted); }
.inventory-editor-hint.editing { border-color:color-mix(in srgb, var(--rz-primary) 32%, var(--rc-border)); }
.inventory-lines-head,
.inventory-lines-row {
    grid-template-columns:minmax(230px,1.55fr) 95px 120px 125px minmax(135px,.85fr) 82px;
}
.inventory-lines-row.is-editing { background:color-mix(in srgb, var(--rz-primary) 5%, var(--rc-surface)); }
.inventory-units-cell { min-width:0; }
.inventory-units-cell .rz-button { width:auto; max-width:100%; white-space:nowrap; }
.muted-dash { color:var(--rc-muted); }

.inventory-series-dialog { gap:12px; }
.inventory-units-callout { margin-bottom:1px; }
.inventory-units-stack { display:grid; gap:10px; max-height:min(58vh,560px); overflow:auto; padding-right:2px; }
.inventory-unit-card {
    border:1px solid var(--rc-border);
    border-radius:11px;
    background:var(--rc-surface);
    overflow:hidden;
}
.inventory-unit-card-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:9px 11px;
    border-bottom:1px solid var(--rc-border);
    background:var(--rc-surface-subtle);
}
.inventory-unit-card-head > div { display:flex; align-items:center; gap:8px; }
.inventory-unit-card-head strong { font-size:12.5px; }
.inventory-unit-card-head small { color:var(--rc-muted); font-size:11px; }
.inventory-unit-number {
    width:24px;
    height:24px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:7px;
    background:color-mix(in srgb, var(--rz-primary) 12%, var(--rc-surface));
    color:var(--rz-primary);
    font-size:11px;
    font-weight:800;
}
.inventory-unit-fields {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px 12px;
    padding:11px;
}
.inventory-unit-fields .rz-textbox,
.inventory-unit-fields .rz-numeric,
.inventory-unit-fields .rz-numeric input { width:100%; }
.inventory-series-actions { border-top:1px solid var(--rc-border); padding-top:11px; }
.inventory-series-summary { margin-right:auto; display:grid; gap:1px; }
.inventory-series-summary small { color:var(--rc-muted); }
.inventory-series-summary strong { font-size:15px; }

@media (max-width:1050px) {
    .inventory-line-editor { grid-template-columns:minmax(280px,1fr) 105px 130px 150px; }
}
@media (max-width:820px) {
    .inventory-line-editor { grid-template-columns:1fr 1fr; }
    .line-editor-action { grid-column:1/-1; }
    .inventory-unit-fields { grid-template-columns:1fr 1fr; }
}
@media (max-width:560px) {
    .inventory-line-editor,
    .inventory-unit-fields { grid-template-columns:1fr; }
    .line-editor-action { grid-column:auto; }
}

/* V24.4 · Operaciones de inventario en página completa */
.inv-operation-page { max-width: 1460px; margin: 0 auto; padding-bottom: 94px; }
.inv-op-card { margin-bottom: 16px; padding: 0; overflow: hidden; border: 1px solid var(--rc-border); border-radius: 12px; background: var(--rc-surface); box-shadow: var(--rc-shadow); }
.inv-op-card.compact-card { padding-bottom: 2px; }
.inv-op-card-head { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 18px; border-bottom: 1px solid var(--rc-border); }
.inv-op-card-head.no-border { border-bottom: 0; padding-bottom: 4px; }
.inv-op-card-head > div:first-child { display: flex; align-items: center; gap: 11px; min-width: 0; }
.inv-op-card-head h2 { margin: 0; font-size: 15px; line-height: 1.2; color: var(--rc-text); }
.inv-op-card-head p { margin: 4px 0 0; font-size: 10.5px; line-height: 1.4; color: var(--rc-muted); }
.inv-step { width: 29px; height: 29px; flex: 0 0 29px; display: grid; place-items: center; border-radius: 8px; background: color-mix(in srgb, var(--rc-primary) 11%, var(--rc-surface)); color: var(--rc-primary); font-size: 11px; font-weight: 800; }
.inv-card-summary { color: var(--rc-muted); font-size: 11px; white-space: nowrap; }
.inv-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 18px; padding: 18px; }
.inv-form-grid .span-2 { grid-column: span 2; }
.inv-field { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.inv-field > label { color: var(--rc-muted); font-size: 10.5px; font-weight: 700; }
.inv-field.compact { gap: 4px; }
.inv-field.compact > label { font-size: 9.5px; }
.inv-payment-strip { margin: 0 18px 18px; padding: 13px 14px; border: 1px solid var(--rc-border); border-radius: 10px; background: var(--rc-surface-soft); }
.inv-check-line { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.inv-check-line input { width: 17px; height: 17px; accent-color: var(--rc-primary); }
.inv-check-line span { display: flex; flex-direction: column; gap: 2px; }
.inv-check-line strong { font-size: 11px; color: var(--rc-text); }
.inv-check-line small { font-size: 9.5px; color: var(--rc-muted); }
.inv-payment-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-top: 13px; padding-top: 13px; border-top: 1px solid var(--rc-border); }
.inv-add-bar { display: grid; grid-template-columns: minmax(300px,1fr) 190px; align-items: end; gap: 12px; padding: 15px 18px; background: var(--rc-surface-soft); border-bottom: 1px solid var(--rc-border); }
.inv-add-picker { width: 100%; }
.inv-add-picker .rz-dropdown { width: 100% !important; min-height: 40px !important; }
.inv-add-button.rz-button { width: 100% !important; min-width: 190px; min-height: 40px !important; justify-content: center; white-space: nowrap; font-weight: 750 !important; }
.inv-add-button.rz-button:disabled,
.inv-add-button.rz-button.rz-state-disabled { background: var(--rc-disabled-bg) !important; border: 1px solid var(--rc-border-strong) !important; color: var(--rc-disabled-text) !important; }
.inv-empty-state { min-height: 132px; display: flex; align-items: center; justify-content: center; gap: 12px; color: var(--rc-muted); }
.inv-empty-state > .rz-icon { font-size: 27px; color: var(--rc-subtle); }
.inv-empty-state div { display: flex; flex-direction: column; gap: 3px; }
.inv-empty-state strong { color: var(--rc-text); font-size: 12px; }
.inv-empty-state span { font-size: 10.5px; }
.inv-lines { display: flex; flex-direction: column; gap: 10px; padding: 14px 18px 18px; }
.inv-line-card { overflow: hidden; border: 1px solid var(--rc-border); border-radius: 10px; background: var(--rc-surface); }
.inv-line-main { display: grid; grid-template-columns: minmax(280px,1.5fr) 125px 165px 135px 150px; gap: 12px; align-items: end; padding: 13px 14px; }
.inv-line-main.salida-line { grid-template-columns: minmax(320px,1.6fr) 170px auto; }
.inv-line-product { min-width: 0; display: flex; align-items: center; gap: 10px; align-self: center; }
.inv-product-icon { width: 37px; height: 37px; flex: 0 0 37px; display: grid; place-items: center; border: 1px solid var(--rc-border); border-radius: 9px; background: var(--rc-surface-soft); color: var(--rc-primary); }
.inv-product-icon .rz-icon { font-size: 18px; }
.inv-line-product > div:last-child { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.inv-line-product strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--rc-text); font-size: 12px; }
.inv-line-product span { color: var(--rc-muted); font-size: 9.5px; }
.inv-native-input { width: 100%; min-width: 0; height: 38px; padding: 0 10px; border: 1px solid var(--rc-border-strong); border-radius: 8px; outline: none; background: var(--rc-surface); color: var(--rc-text); font-size: 11px; transition: border-color .12s ease, box-shadow .12s ease; }
.inv-native-input:focus { border-color: var(--rc-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--rc-primary) 12%, transparent); }
.inv-money-input { display: flex; align-items: center; min-width: 0; height: 38px; border: 1px solid var(--rc-border-strong); border-radius: 8px; overflow: hidden; background: var(--rc-surface); }
.inv-money-input:focus-within { border-color: var(--rc-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--rc-primary) 12%, transparent); }
.inv-money-input > span { height: 100%; display: grid; place-items: center; padding: 0 9px; border-right: 1px solid var(--rc-border); color: var(--rc-muted); background: var(--rc-surface-soft); font-size: 10px; font-weight: 700; }
.inv-money-input .inv-native-input { height: 36px; border: 0; border-radius: 0; box-shadow: none; }
.inv-line-total { align-self: center; display: flex; flex-direction: column; gap: 3px; }
.inv-line-total span { color: var(--rc-muted); font-size: 9.5px; }
.inv-line-total strong { color: var(--rc-text); font-size: 13px; font-variant-numeric: tabular-nums; }
.inv-line-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; align-self: center; }
.inv-equipment-button { min-height: 34px; display: inline-flex; align-items: center; gap: 6px; padding: 0 10px; border: 1px solid var(--rc-border-strong); border-radius: 8px; background: var(--rc-surface); color: var(--rc-text); font-size: 10px; font-weight: 700; cursor: pointer; }
.inv-equipment-button:hover { border-color: color-mix(in srgb, var(--rc-primary) 50%, var(--rc-border)); color: var(--rc-primary); }
.inv-equipment-button .rz-icon { font-size: 15px; }
.inv-equipment-area { padding: 0 14px 14px; border-top: 1px solid var(--rc-border); background: var(--rc-surface-soft); }
.inv-equipment-head { display: flex; justify-content: space-between; gap: 12px; padding: 12px 2px 10px; }
.inv-equipment-head > div { display: flex; flex-direction: column; gap: 2px; }
.inv-equipment-head strong { font-size: 11px; color: var(--rc-text); }
.inv-equipment-head span { font-size: 9.5px; color: var(--rc-muted); }
.inv-equipment-table { overflow-x: auto; border: 1px solid var(--rc-border); border-radius: 9px; background: var(--rc-surface); }
.inv-equipment-grid { min-width: 900px; display: grid; grid-template-columns: 42px minmax(150px,1.15fr) minmax(150px,1fr) minmax(130px,.8fr) minmax(140px,.9fr) minmax(140px,.8fr); gap: 8px; align-items: center; padding: 8px 9px; border-top: 1px solid var(--rc-border); }
.inv-equipment-grid:first-child { border-top: 0; }
.inv-equipment-grid-head { min-height: 35px; background: var(--rc-surface-soft); color: var(--rc-muted); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .035em; }
.inv-equipment-grid .inv-native-input, .inv-equipment-grid .inv-money-input { height: 34px; }
.inv-equipment-grid .inv-money-input .inv-native-input { height: 32px; }
.inv-unit-number { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 7px; background: var(--rc-surface-soft); color: var(--rc-muted); font-size: 10px; font-weight: 800; }
.inv-equipment-choice-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.inv-equipment-choice { min-width: 0; display: flex; align-items: center; gap: 9px; padding: 10px; border: 1px solid var(--rc-border); border-radius: 9px; background: var(--rc-surface); cursor: pointer; }
.inv-equipment-choice:hover { border-color: var(--rc-border-strong); }
.inv-equipment-choice.selected { border-color: color-mix(in srgb, var(--rc-primary) 55%, var(--rc-border)); background: color-mix(in srgb, var(--rc-primary) 7%, var(--rc-surface)); }
.inv-equipment-choice input { width: 16px; height: 16px; flex: 0 0 auto; accent-color: var(--rc-primary); }
.inv-equipment-choice span { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.inv-equipment-choice strong { color: var(--rc-text); font-size: 10.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.inv-equipment-choice small { color: var(--rc-muted); font-size: 9px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.inv-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; padding: 12px 18px 18px; }
.inv-summary-grid > div { min-height: 64px; display: flex; flex-direction: column; justify-content: center; gap: 5px; padding: 10px 12px; border: 1px solid var(--rc-border); border-radius: 9px; background: var(--rc-surface-soft); }
.inv-summary-grid span { color: var(--rc-muted); font-size: 9.5px; }
.inv-summary-grid strong { color: var(--rc-text); font-size: 15px; }
.inv-summary-grid .total { border-color: color-mix(in srgb, var(--rc-primary) 28%, var(--rc-border)); background: color-mix(in srgb, var(--rc-primary) 6%, var(--rc-surface)); }
.inv-summary-grid .total strong { color: var(--rc-primary); font-size: 18px; }
.inv-page-actions { position: sticky; bottom: 0; z-index: 20; display: flex; justify-content: flex-end; gap: 9px; margin-top: 14px; padding: 12px 14px; border: 1px solid var(--rc-border); border-radius: 11px; background: color-mix(in srgb, var(--rc-surface) 96%, transparent); box-shadow: 0 -8px 28px rgba(15,23,42,.055); backdrop-filter: blur(8px); }

@media (max-width: 1180px) {
    .inv-line-main { grid-template-columns: minmax(260px,1fr) 115px 150px 150px; }
    .inv-line-total { display: none; }
    .inv-equipment-choice-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 860px) {
    .inv-form-grid, .inv-payment-fields, .inv-summary-grid { grid-template-columns: 1fr; }
    .inv-form-grid .span-2 { grid-column: auto; }
    .inv-add-bar { grid-template-columns: 1fr; }
    .inv-add-button.rz-button { min-width: 0; }
    .inv-line-main, .inv-line-main.salida-line { grid-template-columns: 1fr; align-items: stretch; }
    .inv-line-actions { justify-content: flex-start; }
    .inv-equipment-choice-grid { grid-template-columns: 1fr; }
    .inv-card-summary { display: none; }
}

/* V24.8 · Detalle de movimientos y asientos */
.movement-accounting-card { margin-top: 16px; }
.movement-accounting-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.movement-accounting-summary > div {
    display: grid;
    gap: 3px;
    padding: 12px 14px;
    border: 1px solid var(--rc-border);
    border-radius: 10px;
    background: var(--rc-surface-subtle);
}
.movement-accounting-summary span { color: var(--rc-muted); font-size: 10px; }
.movement-accounting-summary strong { font-size: 14px; }
.accounting-account-cell { display: grid; gap: 2px; }
.accounting-account-cell strong { font-size: 11px; }
.accounting-account-cell span { color: var(--rc-muted); font-size: 10px; }
.accounting-detail-totals {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 24px;
    padding: 14px 16px;
    border-top: 1px solid var(--rc-border);
}
.accounting-detail-totals span { color: var(--rc-muted); }

@media (max-width: 760px) {
    .movement-accounting-summary { grid-template-columns: 1fr; }
    .accounting-detail-totals { align-items: flex-end; flex-direction: column; gap: 6px; }
}

/* V25 · Núcleo contable, implantación y selectores jerárquicos */
.account-selector { position:relative; min-width:0; }
.account-selector-label { display:block; margin-bottom:6px; font-weight:650; font-size:12px; color:var(--rc-text); }
.account-selector-trigger { width:100%; min-height:40px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:7px 10px; border:1px solid var(--rc-control-border); border-radius:9px; background:var(--rc-surface); color:var(--rc-text); text-align:left; cursor:pointer; }
.account-selector-trigger:hover,.account-selector.open .account-selector-trigger { border-color:color-mix(in srgb,var(--rc-primary) 55%,var(--rc-control-border)); box-shadow:0 0 0 3px color-mix(in srgb,var(--rc-primary) 10%,transparent); }
.account-selector-value { min-width:0; display:grid; gap:2px; }
.account-selector-value strong { font:700 11px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace; color:var(--rc-primary-ink); }
.account-selector-value > span:not(.account-selector-placeholder) { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; color:var(--rc-text); }
.account-selector-placeholder { color:var(--rc-muted); font-size:12px; }
.account-selector-popover { position:absolute; z-index:1200; top:calc(100% + 6px); left:0; width:min(620px,calc(100vw - 36px)); max-height:430px; overflow:hidden; border:1px solid var(--rc-border); border-radius:12px; background:var(--rc-surface); box-shadow:0 18px 42px rgba(15,23,42,.18); }
.account-selector-search { display:grid; grid-template-columns:22px minmax(0,1fr) auto; align-items:center; gap:6px; padding:10px; border-bottom:1px solid var(--rc-border); background:var(--rc-surface-subtle); }
.account-selector-search input { width:100%; min-height:34px; border:0; outline:0; background:transparent; color:var(--rc-text); }
.account-selector-context { padding:7px 11px; border-bottom:1px solid var(--rc-border); font-size:11px; color:var(--rc-muted); }
.account-selector-tree { max-height:340px; overflow:auto; padding:6px; }
.account-selector-row { --account-depth:0; display:grid; grid-template-columns:28px minmax(0,1fr); align-items:center; min-height:36px; padding-left:calc(var(--account-depth) * 18px); border-radius:8px; }
.account-selector-row:hover { background:var(--rc-surface-subtle); }
.account-selector-row.selected { background:var(--rc-primary-soft); }
.account-selector-choice { display:grid; grid-template-columns:84px minmax(0,1fr) auto; align-items:center; gap:8px; min-height:34px; padding:4px 8px; border:0; background:transparent; color:var(--rc-text); text-align:left; cursor:pointer; }
.account-selector-choice:disabled { cursor:default; opacity:.62; }
.account-selector-choice .account-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.account-selector-choice small { color:var(--rc-muted); font-size:10px; }

.chart-table-wrap { overflow:auto; }
.chart-table { width:100%; min-width:880px; border-collapse:collapse; }
.chart-table th { position:sticky; top:0; z-index:2; padding:10px 12px; border-bottom:1px solid var(--rc-border); background:var(--rc-surface-subtle); color:var(--rc-muted); font-size:11px; text-align:left; white-space:normal; }
.chart-table td { padding:9px 12px; border-bottom:1px solid var(--rc-border); vertical-align:middle; }
.chart-table tr.group td { background:color-mix(in srgb,var(--rc-surface-subtle) 58%,var(--rc-surface)); }
.chart-table tr.inactive { opacity:.58; }
.chart-account-cell { --tree-depth:0; display:grid; grid-template-columns:28px 88px minmax(170px,1fr); gap:7px; align-items:center; padding-left:calc(var(--tree-depth) * 18px); }
.chart-account-cell > div { min-width:0; display:grid; gap:2px; }
.chart-account-cell strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.chart-account-cell small { color:var(--rc-muted); font-size:10px; }
.role-chip-list { display:flex; gap:5px; flex-wrap:wrap; }
.role-chip { display:inline-flex; padding:3px 7px; border-radius:999px; background:var(--rc-primary-soft); color:var(--rc-primary-ink); font-size:10px; font-weight:650; }

.implantation-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.7fr); gap:16px; align-items:start; }
.implantation-checklist { display:grid; gap:8px; }
.implantation-check { display:grid; grid-template-columns:36px minmax(0,1fr) auto; gap:10px; align-items:center; padding:11px 12px; border:1px solid var(--rc-border); border-radius:10px; background:var(--rc-surface); }
.implantation-check .check-icon { width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:var(--rc-surface-subtle);color:var(--rc-primary-ink); }
.implantation-check > div { min-width:0; display:grid; gap:2px; }
.implantation-check small { color:var(--rc-muted); }
.implantation-summary { position:sticky; top:16px; }
.implantation-summary dl { display:grid; grid-template-columns:1fr auto; gap:8px 14px; margin:0; }
.implantation-summary dt { color:var(--rc-muted); }
.implantation-summary dd { margin:0; font-weight:700; text-align:right; }
.implantation-action-stack { display:grid; gap:8px; margin-top:14px; }

.period-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.period-card { padding:13px; border:1px solid var(--rc-border); border-radius:11px; background:var(--rc-surface); }
.period-card.closed { background:color-mix(in srgb,var(--rc-surface-subtle) 70%,var(--rc-surface)); }
.period-card-head { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.period-card h3 { margin:0; font-size:14px; }
.period-card p { margin:5px 0 0; color:var(--rc-muted); font-size:11px; }
.period-card-actions { display:flex; justify-content:flex-end; gap:6px; margin-top:12px; }

.opening-layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(300px,.55fr); gap:16px; align-items:start; }
.opening-tree { overflow:auto; border:1px solid var(--rc-border); border-radius:11px; }
.opening-tree-row { --tree-depth:0; display:grid; grid-template-columns:minmax(260px,1fr) 145px 145px 110px; gap:8px; align-items:center; min-height:44px; padding:6px 10px 6px calc(10px + var(--tree-depth) * 18px); border-bottom:1px solid var(--rc-border); }
.opening-tree-row:last-child { border-bottom:0; }
.opening-tree-row.group { background:var(--rc-surface-subtle); font-weight:700; }
.opening-tree-row.protected { background:color-mix(in srgb,var(--rc-primary-soft) 38%,var(--rc-surface)); }
.opening-account-name { display:flex; align-items:center; gap:8px; min-width:0; }
.opening-account-name strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.opening-account-name .account-code { min-width:76px; }
.opening-input { width:100%; min-height:36px; padding:6px 8px; border:1px solid var(--rc-control-border); border-radius:8px; background:var(--rc-surface); color:var(--rc-text); text-align:right; }
.opening-sidebar { position:sticky; top:16px; display:grid; gap:12px; }
.opening-totals { display:grid; grid-template-columns:1fr auto; gap:8px 12px; }
.opening-totals strong { text-align:right; }
.auxiliary-opening-section { display:grid; gap:8px; }
.auxiliary-opening-row { display:grid; grid-template-columns:minmax(180px,1fr) 145px; gap:10px; align-items:center; padding:8px 0; border-bottom:1px solid var(--rc-border); }
.auxiliary-opening-row:last-child { border-bottom:0; }

.stock-serial-tag { display:inline-flex; align-items:center; gap:4px; font-size:11px; color:var(--rc-muted); }

@media (max-width:1100px){ .period-grid{grid-template-columns:repeat(3,minmax(0,1fr));} .opening-layout,.implantation-grid{grid-template-columns:1fr;} .opening-sidebar,.implantation-summary{position:static;} }
@media (max-width:760px){ .period-grid{grid-template-columns:1fr 1fr;} .opening-tree-row{grid-template-columns:minmax(220px,1fr) 120px 120px;} .opening-tree-row > :last-child{display:none;} }
@media (max-width:520px){ .period-grid{grid-template-columns:1fr;} .account-selector-popover{position:fixed;left:12px;right:12px;top:18vh;width:auto;max-height:64vh;} .account-selector-tree{max-height:50vh;} }

/* =========================================================
   V25.6 · Selector jerárquico de cuentas estable
   ========================================================= */
.account-selector-popover {
    left: 0 !important;
    right: auto !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    max-height: 440px;
}
.account-selector-help {
    display: grid;
    gap: 2px;
    padding: 8px 11px;
    border-bottom: 1px solid var(--rc-border);
    background: color-mix(in srgb, var(--rc-surface-subtle) 65%, var(--rc-surface));
}
.account-selector-help > span {
    color: var(--rc-text);
    font-size: 11px;
    font-weight: 700;
}
.account-selector-help > small {
    color: var(--rc-muted);
    font-size: 10px;
}
.account-selector-tree {
    max-height: 330px;
    overflow: auto;
    overscroll-behavior: contain;
}
.account-selector-row {
    min-width: 0;
}
.account-selector-choice {
    width: 100%;
    grid-template-columns: minmax(70px, 86px) minmax(0, 1fr) auto;
}
.account-selector-choice .account-code {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.account-selector-choice .account-name {
    white-space: normal;
    line-height: 1.25;
}
.account-selector-choice .account-kind {
    white-space: nowrap;
    padding: 2px 6px;
    border-radius: 999px;
    background: var(--rc-surface-subtle);
}
.account-selector-row.selectable .account-kind {
    color: var(--rc-primary-ink);
    background: var(--rc-primary-soft);
}
.account-selector-row.context-only .account-selector-choice {
    opacity: .72;
}

@media (max-width: 520px) {
    .account-selector-popover {
        position: fixed !important;
        left: 12px !important;
        right: 12px !important;
        top: 18vh !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        max-height: 64vh !important;
    }
}

/* =========================================================
   V25.6 · Configuración / catálogos
   ========================================================= */
.settings-hub-heading {
    align-items: flex-start;
}
.settings-hub-layout {
    display: grid;
    grid-template-columns: 290px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}
.settings-nav-panel,
.settings-content-panel {
    border: 1px solid var(--rc-border);
    border-radius: 14px;
    background: var(--rc-surface);
    box-shadow: var(--rc-shadow-sm);
}
.settings-nav-panel {
    position: sticky;
    top: 14px;
    padding: 12px;
    max-height: calc(100vh - 110px);
    overflow: auto;
}
.settings-nav-search,
.settings-record-search {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: center;
    gap: 7px;
    min-height: 40px;
    padding: 0 10px;
    border: 1px solid var(--rc-control-border);
    border-radius: 10px;
    background: var(--rc-surface);
    color: var(--rc-muted);
}
.settings-nav-search input,
.settings-record-search input {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--rc-text);
    font: inherit;
}
.settings-company-link {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) 20px;
    gap: 9px;
    align-items: center;
    margin-top: 10px;
    padding: 10px;
    border-radius: 10px;
    color: var(--rc-text);
    text-decoration: none;
}
.settings-company-link:hover,
.settings-nav-item:hover {
    background: var(--rc-surface-subtle);
}
.settings-company-link > span:nth-child(2) {
    display: grid;
    gap: 2px;
}
.settings-company-link small {
    color: var(--rc-muted);
    font-size: 10px;
}
.settings-nav-icon,
.settings-content-icon {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background: var(--rc-primary-soft);
    color: var(--rc-primary-ink);
}
.settings-nav-divider {
    height: 1px;
    margin: 10px 2px;
    background: var(--rc-border);
}
.settings-nav-section {
    display: grid;
    gap: 3px;
    margin-top: 8px;
}
.settings-nav-caption {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 7px 8px 5px;
    color: var(--rc-muted);
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .045em;
    text-transform: uppercase;
}
.settings-nav-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    min-height: 36px;
    padding: 7px 10px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--rc-text);
    text-align: left;
    cursor: pointer;
}
.settings-nav-item.active {
    background: var(--rc-primary-soft);
    color: var(--rc-primary-ink);
    font-weight: 700;
}
.settings-content-panel {
    min-width: 0;
    padding: 16px;
}
.settings-content-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--rc-border);
}
.settings-content-title {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    min-width: 0;
}
.settings-content-title > div {
    min-width: 0;
}
.settings-content-category {
    display: block;
    margin-bottom: 2px;
    color: var(--rc-primary-ink);
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: .055em;
    text-transform: uppercase;
}
.settings-content-title h2 {
    margin: 0;
    font-size: 17px;
}
.settings-content-title p {
    margin: 4px 0 0;
    color: var(--rc-muted);
    font-size: 11px;
    line-height: 1.45;
}
.settings-summary-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin: 14px 0;
}
.settings-summary-item {
    display: grid;
    gap: 3px;
    padding: 10px 12px;
    border: 1px solid var(--rc-border);
    border-radius: 10px;
    background: var(--rc-surface-subtle);
}
.settings-summary-item span {
    color: var(--rc-muted);
    font-size: 10px;
}
.settings-summary-item strong {
    font-size: 16px;
}
.settings-list-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}
.settings-record-search {
    flex: 1 1 360px;
    max-width: 520px;
}
.settings-state-filter {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px;
    border: 1px solid var(--rc-border);
    border-radius: 10px;
    background: var(--rc-surface-subtle);
}
.settings-state-filter button {
    min-height: 30px;
    padding: 5px 10px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--rc-muted);
    cursor: pointer;
}
.settings-state-filter button.active {
    background: var(--rc-surface);
    color: var(--rc-text);
    box-shadow: 0 1px 2px rgba(15, 23, 42, .08);
    font-weight: 700;
}
.settings-grid-wrap {
    min-width: 0;
}
.settings-value-cell {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
}
.settings-value-cell > div {
    display: grid;
    gap: 2px;
    min-width: 0;
}
.settings-value-cell strong,
.settings-description {
    overflow: hidden;
    text-overflow: ellipsis;
}
.settings-value-cell small {
    color: var(--rc-muted);
    font-size: 10px;
}
.settings-color-dot {
    flex: 0 0 auto;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--dot-color, #94a3b8);
}
.settings-actions-header {
    display: block;
    text-align: right;
}
.settings-row-actions {
    justify-content: flex-end;
}
.settings-empty-state {
    display: grid;
    place-items: center;
    gap: 7px;
    min-height: 260px;
    padding: 30px;
    text-align: center;
    color: var(--rc-muted);
}
.settings-empty-state > span {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--rc-surface-subtle);
    color: var(--rc-primary-ink);
}
.settings-empty-state strong {
    color: var(--rc-text);
}
.settings-empty-state p {
    margin: 0;
    max-width: 440px;
}

@media (max-width: 1050px) {
    .settings-hub-layout { grid-template-columns: 250px minmax(0, 1fr); }
    .settings-summary-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 780px) {
    .settings-hub-layout { grid-template-columns: 1fr; }
    .settings-nav-panel { position: static; max-height: none; }
    .settings-content-header, .settings-list-toolbar { align-items: stretch; flex-direction: column; }
    .settings-record-search { max-width: none; flex-basis: auto; }
}

/* V25.6 · Los selectores contables necesitan ancho real para navegar el manual. */
.account-selector-field { min-width: 0; }
.account-selector-field .account-selector-popover { width: 100% !important; }

/* =========================================================
   V25.7 · Refinamiento visual de jerarquía contable
   ========================================================= */
.account-selector-trigger {
    min-height: 36px;
    padding: 5px 9px;
    gap: 8px;
    border-radius: 8px;
}
.account-selector-trigger:hover,
.account-selector.open .account-selector-trigger {
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--rc-primary) 8%, transparent);
}
.account-selector-value { gap: 1px; }
.account-selector-value strong {
    font-size: 10px;
    line-height: 1.15;
}
.account-selector-value > span:not(.account-selector-placeholder),
.account-selector-placeholder {
    font-size: 11px;
    line-height: 1.2;
}
.account-selector-popover {
    top: calc(100% + 4px);
    max-height: 398px;
    border-radius: 10px;
    box-shadow: 0 12px 28px rgba(15,23,42,.14);
}
.account-selector-search {
    grid-template-columns: 18px minmax(0,1fr) auto;
    gap: 5px;
    padding: 7px 8px;
    background: var(--rc-surface);
}
.account-selector-search > .rzi,
.account-selector-search > .rz-icon {
    font-size: 17px;
}
.account-selector-search input {
    min-height: 28px;
    font-size: 12px;
}
.account-selector-help {
    gap: 1px;
    padding: 6px 9px;
    background: color-mix(in srgb, var(--rc-surface-subtle) 45%, var(--rc-surface));
}
.account-selector-help > span {
    font-size: 10.5px;
    font-weight: 650;
}
.account-selector-help > small {
    font-size: 9.5px;
    line-height: 1.25;
}
.account-selector-tree {
    max-height: 304px;
    padding: 4px;
}
.account-selector-row {
    min-height: 29px;
    border-radius: 6px;
    padding-left: calc(var(--account-depth) * 14px);
}
.account-selector-row.has-children {
    grid-template-columns: 22px minmax(0,1fr);
}
.account-selector-row.leaf {
    grid-template-columns: minmax(0,1fr);
    padding-left: calc(22px + (var(--account-depth) * 14px));
}
.account-selector .tree-expander {
    width: 22px;
    height: 22px;
    border-radius: 5px;
}
.account-selector .tree-expander .rzi,
.account-selector .tree-expander .rz-icon {
    font-size: 16px;
}
.account-selector-choice {
    grid-template-columns: 72px minmax(0,1fr) auto;
    gap: 6px;
    min-height: 27px;
    padding: 2px 5px;
    border-radius: 5px;
    font-size: 12px;
}
.account-selector-choice .account-code {
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
}
.account-selector-choice .account-name {
    font-size: 12px;
    line-height: 1.15;
    font-weight: 500;
}
.account-selector-row.has-children.context-only .account-name {
    color: var(--rc-muted);
    font-weight: 600;
}
.account-selector-choice .account-kind {
    padding: 1px 5px;
    font-size: 8.5px;
    line-height: 1.35;
    border-radius: 999px;
    opacity: .84;
}
.account-selector-row.context-only .account-selector-choice {
    opacity: .9;
}
.account-selector-row:hover {
    background: color-mix(in srgb, var(--rc-surface-subtle) 72%, transparent);
}
.account-selector-row.selected {
    background: color-mix(in srgb, var(--rc-primary-soft) 72%, var(--rc-surface));
}

/* Manual de cuentas: misma lógica visual, sin marcador para cuentas hoja. */
.chart-account-cell {
    gap: 5px;
    padding-left: calc(var(--tree-depth) * 14px);
}
.chart-account-cell.has-children {
    grid-template-columns: 22px 74px minmax(150px,1fr);
}
.chart-account-cell.leaf {
    grid-template-columns: 74px minmax(150px,1fr);
    padding-left: calc(22px + (var(--tree-depth) * 14px));
}
.chart-account-cell .tree-expander {
    width: 22px;
    height: 22px;
    border-radius: 5px;
}
.chart-account-cell .tree-expander .rzi,
.chart-account-cell .tree-expander .rz-icon {
    font-size: 16px;
}
.chart-account-cell .account-code {
    font-size: 10px;
}
.chart-account-cell .manual-account-title {
    min-width: 0;
    display: block;
}
.chart-account-cell .manual-account-title strong {
    font-size: 12px;
    line-height: 1.2;
    font-weight: 600;
}
.chart-table tbody tr.group .manual-account-title strong {
    font-weight: 700;
}
.chart-table td {
    padding-top: 7px;
    padding-bottom: 7px;
}

@media (max-width: 520px) {
    .account-selector-choice {
        grid-template-columns: 64px minmax(0,1fr);
    }
    .account-selector-choice .account-kind {
        display: none;
    }
}

/* V26 · parámetros operativos y numeración */
.numbering-list{display:flex;flex-direction:column;gap:8px}
.numbering-row{display:grid;grid-template-columns:minmax(180px,1.6fr) minmax(90px,.7fr) 82px 86px 86px 38px;gap:10px;align-items:end;padding:10px 0;border-bottom:1px solid var(--border-color,#e2e8f0)}
.numbering-row:last-child{border-bottom:0}
.numbering-name{display:flex;flex-direction:column;gap:2px;padding-bottom:5px;min-width:0}
.numbering-name strong{font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.numbering-name small{font-size:.72rem;color:var(--muted,#64748b)}
.numbering-switch{display:flex;align-items:center;gap:6px;height:40px;font-size:.78rem;color:var(--muted,#64748b)}
@media(max-width:900px){.numbering-row{grid-template-columns:1fr 1fr}.numbering-name{grid-column:1/-1}.numbering-switch{height:auto}.numbering-row>.rz-button{justify-self:end}}

/* V26.3 · configuración compacta, políticas legibles y numeración protegida */
.settings-section-tabs{
    display:inline-flex;align-items:center;gap:4px;margin:0 0 14px;padding:4px;border:1px solid var(--rc-border);border-radius:11px;background:var(--rc-surface);box-shadow:0 1px 2px rgba(15,23,42,.025)
}
.settings-section-tab{
    display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:var(--rc-muted);font:inherit;font-size:10.5px;font-weight:750;cursor:pointer;transition:.16s ease
}
.settings-section-tab .rz-icon{font-size:16px}
.settings-section-tab:hover{background:var(--rc-surface-soft);color:var(--rc-text)}
.settings-section-tab.active{background:color-mix(in srgb,var(--rc-primary) 10%,var(--rc-surface));color:var(--rc-primary)}
.settings-layout-v2.settings-layout-single{grid-template-columns:minmax(0,1fr);max-width:1180px}
.settings-layout-v2.settings-layout-single .settings-main-v2{max-width:1180px}
.settings-card-v2{padding:18px 20px}
.settings-card-header{margin-bottom:16px;padding-bottom:12px}
.settings-card-header small{display:block;margin-top:2px;color:var(--rc-muted);font-size:9.5px;line-height:1.4}
.settings-inline-notice{display:flex;align-items:flex-start;gap:8px;margin:-2px 0 12px;padding:9px 11px;border:1px solid var(--rc-border);border-radius:9px;background:var(--rc-surface-soft);color:var(--rc-muted);font-size:9.5px;line-height:1.4}
.settings-inline-notice .rz-icon{font-size:16px;color:var(--rc-primary);flex:0 0 auto}
.numbering-card-v2{overflow:hidden}
.numbering-table-v2{width:100%;overflow-x:auto;border:1px solid var(--rc-border);border-radius:10px;background:var(--rc-surface)}
.numbering-table-head,.numbering-row-v2{display:grid;grid-template-columns:minmax(150px,1.25fr) minmax(92px,.7fr) 112px 78px 72px minmax(175px,1.1fr) 38px;gap:9px;align-items:center;min-width:870px}
.numbering-table-head{min-height:34px;padding:0 11px;background:var(--rc-surface-soft);border-bottom:1px solid var(--rc-border);color:var(--rc-muted);font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.numbering-row-v2{min-height:63px;padding:8px 11px;border-bottom:1px solid var(--rc-border)}
.numbering-row-v2:last-child{border-bottom:0}
.numbering-row-v2:hover{background:color-mix(in srgb,var(--rc-surface-soft) 65%,transparent)}
.numbering-row-v2 .field{margin:0}
.numbering-row-v2 .field.compact .rz-textbox,.numbering-row-v2 .field.compact .rz-dropdown,.numbering-row-v2 .field.compact .rz-numeric{width:100%}
.numbering-name-v2{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1px 7px;align-items:center;min-width:0}
.numbering-name-v2 strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px}
.numbering-name-v2 small{grid-column:1/-1;color:var(--rc-muted);font-size:8.5px}
.numbering-status{justify-self:end;padding:2px 6px;border-radius:999px;font-size:7.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.numbering-status.used{background:color-mix(in srgb,var(--rc-primary) 10%,var(--rc-surface));color:var(--rc-primary)}
.numbering-year{display:flex;align-items:center;gap:5px;color:var(--rc-muted);font-size:9px;white-space:nowrap}
.numbering-preview-v2{display:flex;flex-direction:column;gap:2px;min-width:0}
.numbering-preview-v2 small{color:var(--rc-muted);font-size:8px;text-transform:uppercase;letter-spacing:.05em}
.numbering-preview-v2 code{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--rc-text);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9.5px;font-weight:700;background:transparent}
.mobile-only-label{display:none!important}

@media(max-width:900px){
    .settings-section-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
    .settings-section-tab{justify-content:center}
    .numbering-table-head{display:none}
    .numbering-table-v2{border:0;background:transparent;overflow:visible}
    .numbering-row-v2{grid-template-columns:1fr 1fr;min-width:0;margin-bottom:10px;padding:12px;border:1px solid var(--rc-border);border-radius:10px;background:var(--rc-surface)}
    .numbering-name-v2,.numbering-preview-v2{grid-column:1/-1}
    .numbering-year{align-self:end;min-height:38px}
    .numbering-row-v2>.rz-button{justify-self:end;align-self:end}
    .mobile-only-label{display:block!important}
}
@media(max-width:520px){
    .settings-section-tabs{grid-template-columns:1fr 1fr}
    .numbering-row-v2{grid-template-columns:1fr}
    .numbering-name-v2,.numbering-preview-v2{grid-column:auto}
    .numbering-row-v2>.rz-button{justify-self:stretch;width:100%}
}

/* ========================================================================== */
/* V26.4 · Numeric estable + políticas operativas compactas                  */
/* ========================================================================== */

/*
   Radzen 8.x posiciona los dos controles del Numeric de forma absoluta.
   RedControl les daba estilos parciales heredados de versiones anteriores
   (.rz-spinner), lo que dejaba las zonas de clic superpuestas/ambiguas.
   Este bloque define una única geometría para TODOS los RadzenNumeric.
*/
.rz-numeric {
    position: relative !important;
    overflow: hidden !important;
}

.rz-numeric input,
.rz-numeric input.rz-inputtext {
    padding-inline-end: 38px !important;
}

.rz-numeric .rz-numeric-button {
    position: absolute !important;
    inset-inline-end: 0 !important;
    width: 30px !important;
    min-width: 30px !important;
    height: 50% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-inline-start: 1px solid var(--rc-divider) !important;
    border-radius: 0 !important;
    background: var(--rc-control-bg) !important;
    color: var(--rc-muted) !important;
    box-shadow: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    z-index: 3 !important;
    cursor: pointer !important;
    touch-action: manipulation;
}

.rz-numeric .rz-numeric-up {
    inset-block-start: 0 !important;
    inset-block-end: auto !important;
    border-block-end: 1px solid var(--rc-divider) !important;
}

.rz-numeric .rz-numeric-down {
    inset-block-start: auto !important;
    inset-block-end: 0 !important;
}

.rz-numeric .rz-numeric-button .rzi,
.rz-numeric .rz-numeric-button .rz-icon {
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    font-size: 13px !important;
    line-height: 1 !important;
    pointer-events: none !important;
}

.rz-numeric:not(.rz-state-disabled) .rz-numeric-button:hover {
    background: var(--rc-surface-soft) !important;
    color: var(--rc-primary) !important;
}

.rz-numeric:not(.rz-state-disabled) .rz-numeric-button:active {
    background: color-mix(in srgb, var(--rc-primary) 10%, var(--rc-surface)) !important;
    color: var(--rc-primary-ink) !important;
}

.rz-numeric.rz-state-disabled .rz-numeric-button,
.rz-numeric .rz-numeric-button:disabled {
    cursor: default !important;
    color: var(--rc-disabled-text) !important;
    background: var(--rc-disabled-bg) !important;
}

/* Unidad como dato semántico, no como un segundo botón pegado al input. */
.field-unit {
    margin-inline-start: 4px;
    color: var(--rc-muted);
    font-size: 9px;
    font-weight: 650;
}

/* Políticas: filas compactas, explicación a la izquierda y valor a la derecha. */
.policy-card-v3 .settings-card-header {
    margin-bottom: 4px;
}

.policy-list-v3 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 28px;
}

.policy-row-v3 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 112px;
    gap: 16px;
    align-items: center;
    min-width: 0;
    padding: 13px 0;
    border-bottom: 1px solid var(--rc-border);
}

.policy-row-v3:nth-last-child(-n + 2):not(.policy-row-wide) {
    border-bottom-color: transparent;
}

.policy-row-v3.policy-row-wide {
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 330px);
}

.policy-copy-v3 {
    min-width: 0;
}

.policy-copy-v3 strong {
    display: block;
    margin: 0 0 3px;
    color: var(--rc-text);
    font-size: 11px;
    font-weight: 750;
    line-height: 1.25;
}

.policy-copy-v3 span {
    display: block;
    max-width: 560px;
    color: var(--rc-muted);
    font-size: 9.25px;
    line-height: 1.4;
}

.policy-control-v3 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 7px;
    align-items: center;
    min-width: 0;
}

.policy-control-v3 > .rz-numeric,
.policy-control-v3 > .rz-dropdown,
.policy-control-v3 > .rz-textbox,
.policy-control-v3 > input.rz-textbox {
    width: 100% !important;
    min-width: 0;
}

.policy-control-v3 > small {
    min-width: 24px;
    color: var(--rc-muted);
    font-size: 8.5px;
    font-weight: 700;
    text-transform: lowercase;
}

.policy-control-v3.policy-control-text,
.policy-control-v3.policy-control-time {
    display: block;
}

.policy-control-time {
    max-width: 150px;
    justify-self: end;
    width: 100%;
}

@media (max-width: 980px) {
    .policy-list-v3 {
        grid-template-columns: 1fr;
    }

    .policy-row-v3,
    .policy-row-v3.policy-row-wide {
        grid-column: auto;
        grid-template-columns: minmax(0, 1fr) minmax(118px, 34%);
    }

    .policy-row-v3:nth-last-child(-n + 2):not(.policy-row-wide) {
        border-bottom-color: var(--rc-border);
    }

    .policy-row-v3:last-child {
        border-bottom-color: transparent;
    }
}

@media (max-width: 620px) {
    .policy-row-v3,
    .policy-row-v3.policy-row-wide {
        grid-template-columns: 1fr;
        gap: 8px;
        padding: 12px 0;
    }

    .policy-control-v3,
    .policy-control-time {
        max-width: none;
        justify-self: stretch;
        width: 100%;
    }
}

/* V26.6 · Puesta en marcha simplificada */
.pm-statusbar {
    display:grid;
    grid-template-columns:36px minmax(0,1fr) auto;
    gap:12px;
    align-items:center;
    padding:12px 14px;
    margin-bottom:14px;
    border:1px solid var(--rc-border);
    border-left:3px solid var(--rc-warning, #d97706);
    border-radius:12px;
    background:var(--rc-surface);
}
.pm-statusbar.ready { border-left-color:#2563eb; }
.pm-statusbar.done { border-left-color:#16a34a; }
.pm-status-icon { width:34px; height:34px; display:grid; place-items:center; border-radius:9px; background:var(--rc-surface-subtle); color:var(--rc-primary-ink); }
.pm-statusbar > div:nth-child(2) { display:grid; gap:2px; }
.pm-statusbar strong { font-size:12px; color:var(--rc-text); }
.pm-statusbar span { font-size:10px; color:var(--rc-muted); line-height:1.4; }
.pm-status-date { display:grid; gap:1px; text-align:right; }
.pm-status-date small { font-size:8px; text-transform:uppercase; letter-spacing:.05em; color:var(--rc-muted); }
.pm-status-date b { font-size:11px; }

.pm-flow { display:grid; gap:12px; max-width:1180px; margin:0 auto; }
.pm-step { display:grid; grid-template-columns:34px minmax(0,1fr); gap:12px; padding:14px; border:1px solid var(--rc-border); border-radius:12px; background:var(--rc-surface); }
.pm-step.active { border-color:color-mix(in srgb,var(--rc-primary) 30%,var(--rc-border)); }
.pm-step.locked { opacity:.82; }
.pm-step-index { width:30px; height:30px; display:grid; place-items:center; border-radius:9px; background:var(--rc-surface-subtle); color:var(--rc-muted); font-size:11px; font-weight:800; }
.pm-step.active .pm-step-index { background:var(--rc-primary-soft); color:var(--rc-primary); }
.pm-step.complete .pm-step-index { background:#e8f7ef; color:#087443; }
.pm-step-body { min-width:0; }
.pm-step-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:12px; }
.pm-step-head h2 { margin:0; font-size:14px; color:var(--rc-text); }
.pm-step-head p { margin:3px 0 0; font-size:10px; line-height:1.45; color:var(--rc-muted); }
.pm-badge { display:inline-flex; align-items:center; white-space:nowrap; padding:3px 8px; border-radius:999px; font-size:8px; font-weight:750; }
.pm-badge.success { background:#e8f7ef; color:#087443; }
.pm-badge.warning { background:#fff4dc; color:#9a5b00; }
.pm-badge.neutral { background:var(--rc-surface-subtle); color:var(--rc-muted); }

.pm-base-form { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:10px; align-items:end; }
.pm-base-form .field small { display:block; margin-top:4px; color:var(--rc-muted); font-size:8.5px; }
.pm-base-action { display:flex; align-items:center; gap:7px; padding-bottom:1px; }
.pm-base-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.pm-base-summary > div { padding:9px 10px; border-radius:9px; background:var(--rc-surface-subtle); display:grid; gap:2px; }
.pm-base-summary small { font-size:8px; color:var(--rc-muted); text-transform:uppercase; letter-spacing:.04em; }
.pm-base-summary strong { font-size:10.5px; }
.pm-inline-status { display:flex; align-items:center; gap:7px; margin-top:10px; padding:8px 10px; border-radius:9px; font-size:9px; }
.pm-inline-status.success { background:#eef9f3; color:#087443; }
.pm-inline-status.warning { background:#fff8e8; color:#8a5700; }
.pm-inline-status .rz-icon { font-size:15px; }

.pm-data-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.pm-data-card { display:grid; grid-template-columns:30px minmax(0,1fr); gap:9px; padding:10px; border:1px solid var(--rc-border); border-radius:10px; background:var(--rc-surface); min-width:0; }
.pm-data-card > .rz-button { grid-column:2; justify-self:start; margin-top:2px; }
.pm-data-icon { width:28px; height:28px; display:grid; place-items:center; border-radius:8px; background:var(--rc-surface-subtle); color:var(--rc-primary-ink); }
.pm-data-icon .rz-icon { font-size:16px; }
.pm-data-copy { display:grid; gap:3px; min-width:0; }
.pm-data-copy strong { font-size:10.5px; color:var(--rc-text); }
.pm-data-copy > span { font-size:8.8px; line-height:1.4; color:var(--rc-muted); }
.pm-data-copy small { font-size:8.5px; color:var(--rc-muted); }
.pm-data-copy small b { color:var(--rc-text); }

.pm-equipment-form { margin-top:12px; padding:12px; border:1px solid color-mix(in srgb,var(--rc-primary) 22%,var(--rc-border)); border-radius:10px; background:color-mix(in srgb,var(--rc-primary-soft) 24%,var(--rc-surface)); }
.pm-subhead { display:flex; justify-content:space-between; margin-bottom:10px; }
.pm-subhead > div { display:grid; gap:2px; }
.pm-subhead strong { font-size:11px; }
.pm-subhead span { font-size:9px; color:var(--rc-muted); }
.pm-form-actions { display:flex; justify-content:flex-end; gap:8px; padding-top:10px; margin-top:10px; border-top:1px solid var(--rc-border); }

.pm-opening-action { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 12px; border-radius:10px; background:var(--rc-surface-subtle); }
.pm-opening-action > div { display:grid; gap:2px; }
.pm-opening-action strong { font-size:10.5px; }
.pm-opening-action span { font-size:9px; line-height:1.4; color:var(--rc-muted); }
.pm-finish-state { display:grid; grid-template-columns:28px minmax(0,1fr) auto; gap:10px; align-items:center; padding:10px 12px; border-radius:10px; background:#eef9f3; }
.pm-finish-state > .rz-icon { color:#087443; font-size:20px; }
.pm-finish-state > div { display:grid; gap:2px; }
.pm-finish-state strong { font-size:10.5px; color:#0b5f3a; }
.pm-finish-state span { font-size:9px; color:#47715e; }

.startup-settings-summary { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:10px; align-items:center; }
.startup-settings-summary > div { display:grid; gap:2px; padding:8px 10px; border-radius:9px; background:var(--rc-surface-subtle); }
.startup-settings-summary small { font-size:8px; color:var(--rc-muted); }
.startup-settings-summary strong { font-size:10px; }

/* V26.6 · Apertura contable simplificada */
.opening-v2-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:14px; align-items:start; }
.opening-v2-main { display:grid; gap:12px; min-width:0; }
.opening-v2-intro { display:flex; align-items:center; gap:16px; padding:10px 12px; border:1px solid var(--rc-border); border-radius:10px; background:var(--rc-surface); }
.opening-v2-intro > div { min-width:110px; display:grid; gap:2px; }
.opening-v2-intro small { font-size:8px; color:var(--rc-muted); text-transform:uppercase; letter-spacing:.04em; }
.opening-v2-intro strong { font-size:11px; }
.opening-v2-intro p { margin:0; font-size:9px; line-height:1.45; color:var(--rc-muted); }
.opening-v2-card { border:1px solid var(--rc-border); border-radius:11px; background:var(--rc-surface); padding:12px; }
.opening-v2-head { margin-bottom:10px; }
.opening-v2-head > div { display:flex; gap:9px; align-items:flex-start; }
.opening-v2-number { width:24px; height:24px; flex:0 0 24px; display:grid; place-items:center; border-radius:7px; background:var(--rc-primary-soft); color:var(--rc-primary); font-size:9px; font-weight:800; }
.opening-v2-head h2 { margin:0; font-size:12px; }
.opening-v2-head p { margin:2px 0 0; font-size:8.8px; color:var(--rc-muted); line-height:1.4; }
.opening-v2-auto-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:9px; }
.opening-v2-auto { display:grid; gap:2px; padding:8px 10px; border-radius:9px; background:var(--rc-surface-subtle); }
.opening-v2-auto span { font-size:8.5px; color:var(--rc-muted); }
.opening-v2-auto strong { font-size:11px; }
.opening-v2-auto small { font-size:7.8px; color:var(--rc-muted); }
.opening-v2-detail { border-top:1px solid var(--rc-border); }
.opening-v2-detail summary { cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 2px; font-size:9.5px; font-weight:700; }
.opening-v2-detail summary::-webkit-details-marker { display:none; }
.opening-v2-detail summary::after { content:'›'; color:var(--rc-muted); font-size:14px; transform:rotate(90deg); transition:transform .15s ease; }
.opening-v2-detail[open] summary::after { transform:rotate(-90deg); }
.opening-v2-detail summary b { margin-left:auto; font-size:9px; }
.opening-v2-list { display:grid; padding-bottom:8px; }
.opening-v2-list.scrollable { max-height:330px; overflow:auto; padding-right:3px; }
.opening-v2-row { display:grid; grid-template-columns:minmax(0,1fr) 150px; gap:10px; align-items:center; padding:7px 0; border-top:1px solid var(--rc-border); }
.opening-v2-row > div:first-child { display:grid; gap:1px; min-width:0; }
.opening-v2-row strong { font-size:9.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.opening-v2-row small { font-size:8px; color:var(--rc-muted); }
.opening-v2-amount { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:5px; border:1px solid var(--rc-control-border); border-radius:8px; padding:0 7px; min-height:34px; }
.opening-v2-amount span { color:var(--rc-muted); font-size:8px; font-weight:700; }
.opening-v2-amount input { width:100%; border:0; outline:0; background:transparent; color:var(--rc-text); text-align:right; font:inherit; font-size:9.5px; }
.opening-v2-search { display:grid; grid-template-columns:18px 1fr; gap:5px; align-items:center; border:1px solid var(--rc-control-border); border-radius:8px; min-height:34px; padding:0 8px; margin-bottom:6px; }
.opening-v2-search .rz-icon { font-size:15px; color:var(--rc-muted); }
.opening-v2-search input { border:0; outline:0; background:transparent; color:var(--rc-text); font:inherit; font-size:9px; }
.opening-v2-empty { padding:12px; text-align:center; color:var(--rc-muted); font-size:8.8px; }
.opening-v2-empty.boxed { border:1px dashed var(--rc-border); border-radius:9px; margin-top:9px; }
.opening-v2-manual-form { display:grid; grid-template-columns:minmax(0,1fr) 110px 130px; gap:8px; align-items:end; }
.opening-v2-manual-form .span-2 { grid-column:span 2; }
.opening-v2-add { display:flex; align-items:flex-end; }
.opening-v2-manual-list { margin-top:10px; border:1px solid var(--rc-border); border-radius:9px; overflow:hidden; }
.opening-v2-manual-header,.opening-v2-manual-row { display:grid; grid-template-columns:minmax(0,1fr) 120px 120px 34px; gap:8px; align-items:center; padding:7px 9px; }
.opening-v2-manual-header { background:var(--rc-surface-subtle); font-size:7.8px; color:var(--rc-muted); text-transform:uppercase; letter-spacing:.03em; }
.opening-v2-manual-row { border-top:1px solid var(--rc-border); font-size:9px; }
.opening-v2-manual-row > div { display:grid; gap:1px; min-width:0; }
.opening-v2-manual-row strong { font-size:9px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.opening-v2-manual-row small { font-size:7.8px; color:var(--rc-muted); }
.opening-v2-manual-row > span { text-align:right; }
.opening-v2-sidebar { position:sticky; top:14px; }
.opening-v2-summary { display:grid; gap:10px; padding:12px; border:1px solid var(--rc-border); border-radius:11px; background:var(--rc-surface); }
.opening-v2-summary-head > div { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.opening-v2-summary-head small { font-size:8px; color:var(--rc-muted); text-transform:uppercase; letter-spacing:.04em; }
.opening-v2-summary-head strong { font-size:10px; }
.opening-v2-summary dl { display:grid; grid-template-columns:1fr auto; gap:7px 10px; margin:0; padding:9px 0; border-top:1px solid var(--rc-border); border-bottom:1px solid var(--rc-border); }
.opening-v2-summary dt { font-size:8.8px; color:var(--rc-muted); }
.opening-v2-summary dd { margin:0; text-align:right; font-size:9px; font-weight:700; }
.opening-v2-total { display:grid; gap:5px; }
.opening-v2-total > div { display:flex; justify-content:space-between; gap:8px; font-size:9px; }
.opening-v2-total .balanced { color:#087443; }
.opening-v2-total .difference { color:#b42318; }
.opening-v2-state { display:flex; align-items:flex-start; gap:6px; padding:8px; border-radius:8px; font-size:8.5px; line-height:1.4; }
.opening-v2-state.success { background:#eef9f3; color:#087443; }
.opening-v2-state.warning { background:#fff8e8; color:#8a5700; }
.opening-v2-state .rz-icon { font-size:14px; }
.opening-v2-footnote { display:block; text-align:center; font-size:7.8px; line-height:1.35; color:var(--rc-muted); }

@media (max-width:1050px) {
    .pm-data-grid { grid-template-columns:1fr; }
    .pm-base-form { grid-template-columns:1fr 1fr; }
    .pm-base-action { grid-column:1/-1; }
    .opening-v2-layout { grid-template-columns:1fr; }
    .opening-v2-sidebar { position:static; }
}
@media (max-width:680px) {
    .pm-statusbar { grid-template-columns:32px 1fr; }
    .pm-status-date { display:none; }
    .pm-step { grid-template-columns:1fr; }
    .pm-step-index { display:none; }
    .pm-step-head { flex-direction:column; }
    .pm-base-form,.pm-base-summary,.startup-settings-summary { grid-template-columns:1fr; }
    .pm-opening-action,.pm-finish-state { grid-template-columns:1fr; align-items:start; }
    .opening-v2-intro { flex-direction:column; align-items:flex-start; }
    .opening-v2-auto-grid { grid-template-columns:1fr; }
    .opening-v2-row { grid-template-columns:1fr; }
    .opening-v2-manual-form { grid-template-columns:1fr; }
    .opening-v2-manual-form .span-2 { grid-column:auto; }
    .opening-v2-manual-header { display:none; }
    .opening-v2-manual-row { grid-template-columns:1fr auto; }
    .opening-v2-manual-row > span { display:none; }
}
