/* =========================================================
   RedControl V30.3.6 · Sistema visual transversal INGSTELIN
   Capa final: corrige ritmo, controles, grids y dialogos sin
   cambiar la arquitectura ni los flujos funcionales.
   ========================================================= */

:root {
    --rc-ui-radius-xs: 6px;
    --rc-ui-radius-sm: 8px;
    --rc-ui-radius-md: 11px;
    --rc-ui-radius-lg: 14px;
    --rc-ui-control-h: 38px;
    --rc-ui-control-h-sm: 32px;
    --rc-ui-gap-xs: 6px;
    --rc-ui-gap-sm: 10px;
    --rc-ui-gap-md: 14px;
    --rc-ui-gap-lg: 20px;
    --rc-ui-section-gap: 22px;
    --rc-ui-page-gap: 24px;
    --rc-ui-table-head: color-mix(in srgb, var(--rc-surface-soft) 88%, var(--rc-surface));
    --rc-ui-hover: color-mix(in srgb, var(--rc-primary) 5%, var(--rc-surface));
    --rc-ui-focus: color-mix(in srgb, var(--rc-primary) 24%, transparent);
}

/* ---------- Ritmo general de pagina ---------- */
.page-body {
    width: 100%;
    max-width: 1760px;
    padding: 24px 26px 46px;
}

.page-body > :first-child { margin-top: 0; }
.page-body > .page-heading,
.page-body > .map-page-heading { margin-bottom: 20px !important; }

.page-heading,
.map-page-heading {
    align-items: flex-end;
    gap: 18px;
}

.page-heading > div:first-child,
.map-page-heading > div:first-child { min-width: 0; }

.page-heading h1,
.map-page-heading h1 {
    font-size: 23px !important;
    line-height: 1.18 !important;
    letter-spacing: -.025em !important;
    font-weight: 620 !important;
}

.page-heading p,
.map-page-heading p,
.page-heading-note {
    max-width: 820px;
    margin-top: 4px !important;
    line-height: 1.45 !important;
    color: var(--rc-muted) !important;
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    min-height: 18px;
    margin-bottom: 5px !important;
    font-size: 9px !important;
    letter-spacing: .13em !important;
}

.heading-actions,
.map-actions {
    justify-content: flex-end;
    gap: 8px !important;
    margin-left: auto;
}

/* ---------- Superficies y secciones ---------- */
.page-body .panel,
.page-body .table-panel,
.page-body .settings-card-v2,
.page-body .plan-section-card,
.page-body .inv-op-card,
.page-body .tool-section,
.page-body .ot-section,
.page-body .detail-card,
.page-body .financial-summary-card,
.page-body .financial-quick-card {
    border-radius: var(--rc-ui-radius-md) !important;
    border-color: var(--rc-border) !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .025), 0 8px 24px rgba(15, 23, 42, .028) !important;
}

.panel,
.table-panel { padding: 18px !important; }

.full-width-panel + .full-width-panel,
.panel + .panel,
.table-panel + .panel,
.panel + .table-panel { margin-top: var(--rc-ui-gap-md); }

.panel-title,
.clean-panel-title {
    min-height: 0 !important;
    margin-bottom: 14px !important;
    padding-bottom: 11px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 14px !important;
    border-bottom: 1px solid color-mix(in srgb, var(--rc-border) 78%, transparent);
}

.panel-title > div,
.clean-panel-title > div { min-width: 0; }

.panel-title h2,
.clean-panel-title h2,
.clean-panel-title h3 {
    margin: 0 !important;
    font-size: 15px !important;
    line-height: 1.28 !important;
    font-weight: 650 !important;
    letter-spacing: -.012em;
}

.panel-title small,
.clean-panel-title small,
.panel-title p,
.clean-panel-title p {
    display: block;
    margin-top: 3px !important;
    color: var(--rc-muted) !important;
    font-size: 11.5px !important;
    line-height: 1.4 !important;
}

/* ---------- Navegaciones internas y tabs ---------- */
.workspace-tabs,
.compact-tabs,
.finance-doc-subnav,
.plan-tabs {
    display: flex;
    align-items: center;
    gap: 6px !important;
    width: max-content;
    max-width: 100%;
    margin: 0 0 20px !important;
    padding: 4px !important;
    border: 1px solid var(--rc-border) !important;
    border-radius: 10px !important;
    background: var(--rc-surface) !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .025) !important;
    overflow-x: auto;
    scrollbar-width: thin;
}

.workspace-tabs button,
.compact-tabs button,
.finance-doc-subnav a,
.plan-tabs button,
.plan-tabs a {
    min-height: 36px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    padding: 7px 12px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 7px !important;
    background: transparent !important;
    color: var(--rc-muted) !important;
    font-size: 12px !important;
    font-weight: 650 !important;
    white-space: nowrap;
}

.workspace-tabs button.active,
.compact-tabs button.active,
.finance-doc-subnav a.active,
.plan-tabs button.active,
.plan-tabs a.active {
    color: var(--rc-primary) !important;
    background: color-mix(in srgb, var(--rc-primary) 9%, var(--rc-surface)) !important;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--rc-primary) 24%, var(--rc-border)) !important;
}

.workspace-tabs + *,
.compact-tabs + *,
.finance-doc-subnav + *,
.plan-tabs + * { margin-top: 0 !important; }

/* ---------- KPI: compactos, alineados y sin ruido ---------- */
.kpi-grid,
.financial-summary-grid,
.finance-summary-strip {
    gap: 12px !important;
    margin-bottom: 18px !important;
}

.kpi-card,
.financial-summary-card,
.finance-summary-item {
    min-height: 88px !important;
    padding: 14px 15px !important;
    border-radius: 10px !important;
}

.kpi-card > span,
.financial-summary-card > span,
.finance-summary-item > span {
    font-size: 10.5px !important;
    line-height: 1.25;
    text-transform: uppercase;
    letter-spacing: .025em;
    font-weight: 650 !important;
}

.kpi-card > strong,
.financial-summary-card > strong,
.finance-summary-item > strong {
    margin-top: 6px !important;
    font-size: 20px !important;
    line-height: 1.08 !important;
    font-variant-numeric: tabular-nums;
}

.kpi-card > small,
.financial-summary-card > small,
.finance-summary-item > small {
    display: block;
    margin-top: 4px;
    line-height: 1.3;
}

/* ---------- Botones ---------- */
.rz-button {
    min-height: var(--rc-ui-control-h-sm) !important;
    border-radius: var(--rc-ui-radius-sm) !important;
    padding: 6px 11px !important;
    font-size: 11.5px !important;
    font-weight: 650 !important;
    letter-spacing: 0 !important;
    box-shadow: none !important;
}

.rz-button.rz-button-md { min-height: 36px !important; }
.rz-button.rz-button-sm { min-height: 30px !important; padding: 4px 8px !important; }
.rz-button-icon-only { width: 34px !important; min-width: 34px !important; padding-inline: 0 !important; }
.rz-button-icon-only.rz-button-sm { width: 30px !important; min-width: 30px !important; }
.rz-button .rz-button-icon-left { margin-right: 5px !important; }

.row-actions {
    display: inline-flex !important;
    align-items: center;
    justify-content: flex-end;
    gap: 4px !important;
    white-space: nowrap;
}

.row-actions .rz-button { margin: 0 !important; }

/* ---------- Formularios y controles ---------- */
.dialog-grid,
.form-grid,
.inline-entry-grid,
.inv-form-grid,
.form-section-grid {
    column-gap: 16px !important;
    row-gap: 14px !important;
}

.field,
.dialog-grid > label,
.form-grid > label,
.inline-entry-grid > label,
.inv-field,
.dialog-field-block {
    min-width: 0 !important;
    display: grid !important;
    gap: 6px !important;
    align-content: start;
}

.field > label,
.field label,
.dialog-grid > label,
.form-grid > label,
.inv-field > label,
.dialog-field-block {
    color: var(--rc-muted) !important;
    font-size: 11px !important;
    line-height: 1.25 !important;
    font-weight: 620 !important;
    letter-spacing: .005em !important;
}

.field-explainer,
.dialog-section-help,
.dialog-grid small,
.form-grid small {
    color: var(--rc-muted) !important;
    font-size: 11px !important;
    line-height: 1.42 !important;
}

.rc-control-scope .rz-textbox,
.rc-control-scope .rz-textarea,
.rc-control-scope .rz-dropdown,
.rc-control-scope .rz-numeric,
.rc-control-scope .rz-datepicker,
.dialog-form .rz-textbox,
.dialog-form .rz-textarea,
.dialog-form .rz-dropdown,
.dialog-form .rz-numeric,
.dialog-form .rz-datepicker,
.form-grid .rz-textbox,
.form-grid .rz-textarea,
.form-grid .rz-dropdown,
.form-grid .rz-numeric,
.form-grid .rz-datepicker,
.inv-field .rz-textbox,
.inv-field .rz-textarea,
.inv-field .rz-dropdown,
.inv-field .rz-numeric,
.inv-field .rz-datepicker {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    border-radius: var(--rc-ui-radius-sm) !important;
}

.rz-textbox,
.rz-dropdown,
.rz-numeric,
.rz-datepicker,
.rz-autocomplete {
    min-height: var(--rc-ui-control-h) !important;
}

input.rz-textbox,
textarea.rz-textarea,
.rz-dropdown-label,
.rz-numeric input,
.rz-datepicker input,
.rz-autocomplete input {
    min-height: var(--rc-ui-control-h) !important;
    padding: 8px 10px !important;
    font-size: 12.5px !important;
    line-height: 1.3 !important;
    font-weight: 400 !important;
}

textarea.rz-textarea { min-height: 82px !important; resize: vertical; }

.rz-dropdown .rz-dropdown-trigger,
.rz-datepicker .rz-datepicker-trigger,
.rz-numeric .rz-numeric-up,
.rz-numeric .rz-numeric-down {
    min-width: 36px !important;
    width: 36px !important;
}

.rz-datepicker .rz-datepicker-trigger {
    border-inline-start: 1px solid var(--rc-border) !important;
}

.rz-numeric input { padding-right: 42px !important; }

.rz-dropdown:focus-within,
.rz-datepicker:focus-within,
.rz-numeric:focus-within,
.rz-autocomplete:focus-within,
input.rz-textbox:focus,
textarea.rz-textarea:focus {
    box-shadow: 0 0 0 3px var(--rc-ui-focus) !important;
    border-color: color-mix(in srgb, var(--rc-primary) 55%, var(--rc-border)) !important;
}

.rz-dropdown-panel,
.rz-autocomplete-panel,
.rz-datepicker-calendar {
    border-radius: 10px !important;
    border-color: var(--rc-border) !important;
    box-shadow: 0 14px 38px rgba(15, 23, 42, .13) !important;
}

.rz-dropdown-item,
.rz-autocomplete-item,
.rz-listbox-item {
    min-height: 34px;
    display: flex;
    align-items: center;
    padding: 7px 10px !important;
    font-size: 12.5px !important;
}

/* ---------- Dialogos ---------- */
.rz-dialog {
    max-width: calc(100vw - 28px) !important;
    max-height: calc(100vh - 28px) !important;
    border-radius: var(--rc-ui-radius-lg) !important;
    overflow: hidden !important;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .24) !important;
}

.rz-dialog .rz-dialog-titlebar {
    min-height: 50px !important;
    padding: 13px 18px !important;
    border-bottom: 1px solid var(--rc-border) !important;
    background: var(--rc-surface) !important;
}

.rz-dialog .rz-dialog-title {
    font-size: 14.5px !important;
    font-weight: 650 !important;
    letter-spacing: -.01em !important;
}

.rz-dialog .rz-dialog-content {
    padding: 16px 18px 18px !important;
    scrollbar-gutter: stable;
    background: var(--rc-surface) !important;
}

.dialog-form { gap: 16px !important; }

.dialog-form > .dialog-section {
    margin: 0 !important;
    padding: 14px !important;
    border: 1px solid var(--rc-border) !important;
    border-radius: 10px !important;
    background: color-mix(in srgb, var(--rc-surface-soft) 44%, var(--rc-surface)) !important;
}

.dialog-form > .dialog-section + .dialog-section { margin-top: 0 !important; }

.dialog-section-head {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin: 0 0 12px !important;
    padding: 0 0 10px !important;
    border-bottom: 1px solid color-mix(in srgb, var(--rc-border) 80%, transparent) !important;
}

.dialog-section-head::after { display: none !important; }
.dialog-section-head h3 {
    margin: 0 !important;
    color: var(--rc-text) !important;
    font-size: 12.5px !important;
    font-weight: 650 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

.dialog-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-wrap: wrap;
    gap: 8px !important;
    margin-top: 16px !important;
    padding-top: 12px !important;
    border-top: 1px solid var(--rc-border) !important;
}

/* ---------- Grids: filtro, sort y titulo nunca se montan ---------- */
.rz-data-grid,
.rc-grid,
.business-grid {
    width: 100%;
    border-radius: 10px !important;
    overflow: auto !important;
    border-color: var(--rc-border) !important;
}

.rc-grid .rz-grid-table,
.business-grid .rz-grid-table,
.rz-data-grid .rz-grid-table {
    width: 100%;
    min-width: 940px;
    border-collapse: separate !important;
    border-spacing: 0;
}

.rz-data-grid .rz-grid-table thead > tr > th {
    position: relative !important;
    min-width: 96px;
    min-height: 46px !important;
    padding: 8px 10px !important;
    vertical-align: middle !important;
    overflow: visible !important;
    background: var(--rc-ui-table-head) !important;
    border-bottom: 1px solid var(--rc-border) !important;
}

.rz-data-grid .rz-grid-table thead > tr > th:has(> .rz-grid-filter-icon) {
    min-width: 124px;
    padding-right: 39px !important;
}

.rz-data-grid .rz-grid-table thead > tr > th > .rz-column-title,
.rz-data-grid .rz-grid-table thead > tr > th .rz-column-title {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 30px !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 0 !important;
    overflow: visible !important;
}

.rz-data-grid .rz-grid-table thead > tr > th .rz-column-title-content,
.rz-data-grid .rz-grid-table thead > tr > th > .rz-column-title > span:first-child {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    line-height: 1.18 !important;
    font-size: 10.5px !important;
    font-weight: 650 !important;
    letter-spacing: .018em !important;
}

.rz-data-grid .rz-grid-table thead > tr > th > .rz-grid-filter-icon {
    position: absolute !important;
    right: 7px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 26px !important;
    min-width: 26px !important;
    height: 26px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 6px !important;
    opacity: .58;
}

.rz-data-grid .rz-grid-table thead > tr > th > .rz-grid-filter-icon:hover,
.rz-data-grid .rz-grid-table thead > tr > th > .rz-grid-filter-icon:focus-visible,
.rz-data-grid .rz-grid-table thead > tr > th > .rz-grid-filter-icon.rz-grid-filter-active { opacity: 1; }

.rz-data-grid .rz-grid-table thead .rz-sortable-column-icon {
    position: static !important;
    flex: 0 0 auto !important;
    width: 16px !important;
    margin: 0 !important;
}

.rz-data-grid .rz-grid-table tbody td {
    min-height: 42px;
    padding: 9px 10px !important;
    vertical-align: middle !important;
    line-height: 1.3 !important;
    font-size: 12px !important;
    border-bottom-color: color-mix(in srgb, var(--rc-border) 74%, transparent) !important;
}

.rz-data-grid .rz-grid-table tbody tr:hover td { background: var(--rc-ui-hover) !important; }

.rz-data-grid .rz-paginator {
    min-height: 46px;
    padding: 8px 10px !important;
    border-top: 1px solid var(--rc-border) !important;
    background: var(--rc-surface) !important;
}

/* ---------- Toolbars y filtros ---------- */
.toolbar-fields,
.filter-bar,
.billing-toolbar,
.period-selector,
.invoice-list-toolbar,
.finance-workbar-main,
.finance-workbar-actions {
    gap: 10px !important;
}

.billing-toolbar,
.clean-filter-panel {
    margin-bottom: 16px !important;
}

.period-selector {
    display: flex !important;
    align-items: end !important;
    flex-wrap: wrap;
}

.period-selector > label {
    min-width: 136px;
    display: grid !important;
    gap: 5px;
    color: var(--rc-muted);
    font-size: 10.5px;
    font-weight: 650;
}

.period-selector > label .rz-dropdown { width: 100% !important; }

.billing-period-status {
    min-width: 190px;
    display: grid;
    gap: 2px;
    align-content: center;
    min-height: var(--rc-ui-control-h);
    padding: 6px 10px;
    border: 1px solid var(--rc-border);
    border-radius: var(--rc-ui-radius-sm);
    background: var(--rc-surface-soft);
}
.billing-period-status strong { font-size: 11.5px; font-weight: 650; }
.billing-period-status small { color: var(--rc-muted); font-size: 10.5px; line-height: 1.3; }
.billing-period-status.is-closed strong { color: var(--rc-warning); }
.billing-period-status.is-invalid strong { color: var(--rc-danger); }
.billing-period-status.is-open strong { color: var(--rc-success); }

/* ---------- Estados, vacios y mensajes ---------- */
.badge,
.ing-badge,
.ot-state-chip {
    white-space: nowrap;
    line-height: 1.15 !important;
}

.empty-state,
.empty-state-clean,
.compact-empty,
.empty-inline {
    min-height: 90px;
    padding: 20px !important;
    border-radius: 10px !important;
    color: var(--rc-muted) !important;
}

.dialog-callout,
.field-explainer,
.account-workspace-note,
.finance-table-note {
    border-radius: 9px !important;
    line-height: 1.42 !important;
}

/* ---------- Vistas detalle ---------- */
.detail-header,
.clean-detail-header {
    gap: 16px !important;
    margin-bottom: 16px !important;
}

.detail-grid,
.facts,
.dialog-summary-row,
.ot-context-grid {
    gap: 10px !important;
}

.detail-grid > div,
.facts > div,
.dialog-summary-row > div,
.ot-context-card {
    min-width: 0;
    border-radius: 9px !important;
}

.detail-grid strong,
.facts strong,
.dialog-summary-row strong { overflow-wrap: anywhere; }

/* ---------- Factura en pantalla: plan manda, composicion acompana ---------- */
.invoice-pro-dialog { gap: 16px !important; }
.invoice-plan-list { gap: 10px !important; }
.invoice-plan-card { border-radius: 10px !important; }
.invoice-plan-head {
    padding: 13px 14px 7px !important;
    align-items: center !important;
}
.invoice-plan-head small { margin-bottom: 2px; }
.invoice-plan-head strong { font-size: 14px !important; font-weight: 650 !important; }
.invoice-plan-head span { margin-top: 3px !important; font-size: 11px !important; }
.invoice-plan-total { font-size: 14px !important; font-weight: 700 !important; }
.invoice-included-services {
    display: block !important;
    padding: 0 14px 12px !important;
    border-top: 0 !important;
}
.invoice-included-services > span { display: none !important; }
.invoice-included-list {
    display: block !important;
    padding-top: 0 !important;
    color: var(--rc-muted) !important;
    font-size: 11px !important;
    line-height: 1.45;
}
.invoice-included-list::before { content: "Incluye: "; font-weight: 650; }
.invoice-included-list > span {
    display: inline !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: inherit !important;
    font-size: inherit !important;
}
.invoice-included-list > span:not(:last-child)::after { content: " · "; color: var(--rc-subtle); }

/* ---------- Responsive ---------- */
@media (max-width: 1200px) {
    .page-body { padding-inline: 20px; }
    .kpi-grid.five { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
    .kpi-grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 900px) {
    .page-heading,
    .map-page-heading { align-items: flex-start !important; flex-direction: column; }
    .heading-actions,
    .map-actions { width: 100%; justify-content: flex-start; margin-left: 0; }
    .panel-title,
    .clean-panel-title { align-items: flex-start !important; flex-wrap: wrap; }
    .toolbar-fields { width: 100%; }
    .rc-grid .rz-grid-table,
    .business-grid .rz-grid-table,
    .rz-data-grid .rz-grid-table { min-width: 860px; }
    .dialog-form > .dialog-section { padding: 12px !important; }
}

@media (max-width: 680px) {
    .page-body { padding: 18px 12px 34px; }
    .page-heading h1,
    .map-page-heading h1 { font-size: 20px !important; }
    .kpi-grid,
    .kpi-grid.five,
    .kpi-grid.four,
    .kpi-grid.three,
    .kpi-grid.two,
    .financial-summary-grid,
    .finance-summary-strip { grid-template-columns: 1fr !important; }
    .heading-actions .rz-button { flex: 1 1 145px; }
    .workspace-tabs,
    .compact-tabs,
    .finance-doc-subnav,
    .plan-tabs { width: 100%; }
    .dialog-grid,
    .form-grid,
    .inline-entry-grid,
    .inv-form-grid,
    .form-section-grid { grid-template-columns: 1fr !important; }
    .dialog-grid .span-2,
    .dialog-grid .span-3,
    .form-grid .span-2,
    .form-grid .span-3 { grid-column: 1 !important; }
    .dialog-actions .rz-button { flex: 1 1 130px; }
    .period-selector { display: grid !important; grid-template-columns: 1fr; align-items: stretch !important; }
    .period-selector > label,
    .billing-period-status { width: 100%; min-width: 0; }
}

:root[data-theme="dark"] .rz-data-grid .rz-grid-table thead > tr > th {
    background: color-mix(in srgb, var(--rc-surface-soft) 76%, var(--rc-surface)) !important;
}

:root[data-theme="dark"] .dialog-form > .dialog-section {
    background: color-mix(in srgb, var(--rc-surface-soft) 35%, var(--rc-surface)) !important;
}

/* V31 · producto final: seguridad, tesorería y red */
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:28px;background:linear-gradient(145deg,#f3f6f9,#e9eef3);font-family:var(--rc-font,Arial,sans-serif)}
.auth-card{width:min(440px,100%);background:#fff;border:1px solid #dce3e9;border-radius:16px;box-shadow:0 20px 55px rgba(13,27,42,.12);padding:30px}.auth-card.compact{max-width:420px}.auth-brand{padding-bottom:18px;border-bottom:1px solid #e7ebef;margin-bottom:22px}.auth-heading span{font-size:11px;font-weight:750;letter-spacing:.12em;color:#008fd1;text-transform:uppercase}.auth-heading h1{font-size:25px;margin:5px 0 4px}.auth-heading p{margin:0 0 20px;color:#6b7784}.auth-form{display:grid;gap:15px}.auth-form label{display:grid;gap:6px;font-size:12px;font-weight:650;color:#374151}.auth-form input{height:44px;border:1px solid #cdd7df;border-radius:8px;padding:0 12px;font:inherit;outline:none}.auth-form input:focus{border-color:#0099dc;box-shadow:0 0 0 3px rgba(0,153,220,.12)}.auth-form button,.auth-primary-link{height:44px;border:0;border-radius:8px;background:#0099dc;color:#fff;font-weight:750;display:flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer}.auth-notice,.auth-error{padding:12px 14px;border-radius:8px;margin:14px 0;font-size:13px}.auth-notice{background:#eef7fb;color:#245066}.auth-error{background:#fff1f0;color:#a33}.logout-button{display:inline-flex!important;text-decoration:none!important}
.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.permission-check{display:flex!important;gap:10px!important;align-items:flex-start!important;padding:10px 11px;border:1px solid var(--rc-border);border-radius:8px;background:var(--rc-surface-soft)}.permission-check span{display:grid;gap:2px}.permission-check strong{font-size:12px}.permission-check small{font-size:10px;color:var(--rc-muted);line-height:1.3}.permission-module{margin-top:15px}.permission-module h4{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--rc-muted)}
.role-card-grid,.server-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.role-card,.server-card{border:1px solid var(--rc-border);border-radius:10px;padding:14px;background:var(--rc-surface);display:grid;gap:10px}.role-card>div:first-child,.server-card-head>div{display:grid;gap:3px}.role-card small,.server-card small{color:var(--rc-muted)}.role-meta,.server-card-meta,.server-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.server-card-meta{justify-content:flex-start;font-size:11px;color:var(--rc-muted)}.server-card-meta span:not(:last-child)::after{content:"·";margin-left:10px;color:var(--rc-subtle)}.server-message{overflow-wrap:anywhere}.row-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center}.cell-subtitle{display:block;margin-top:2px;color:var(--rc-muted);font-size:10px}.cell-error{display:block;color:#b42318;font-size:10px;margin-top:3px;max-width:260px;overflow-wrap:anywhere}.danger-toggle{color:#b42318}
.rc-table{width:100%;border-collapse:collapse}.rc-table th{font-size:10px;text-transform:uppercase;letter-spacing:.035em;color:var(--rc-muted);text-align:left;background:var(--rc-surface-soft);padding:11px;border-bottom:1px solid var(--rc-border)}.rc-table td{padding:11px;border-bottom:1px solid var(--rc-border);font-size:12px;vertical-align:middle}.rc-table tr:last-child td{border-bottom:0}
/* No recortar textos inferiores de cards, métricas o documentos */
.kpi-card,.summary-card,.status-card,.detail-card,.panel,.dialog-section,.invoice-plan-card{min-height:0!important;overflow:visible!important}.kpi-card small,.summary-card small,.status-card small,.detail-card small{white-space:normal!important;line-height:1.35!important;overflow:visible!important;text-overflow:clip!important}.panel-title{min-height:0!important}.panel-title h2,.panel-title small{white-space:normal!important}
@media(max-width:720px){.permission-grid{grid-template-columns:1fr}.auth-card{padding:22px}.role-card-grid,.server-card-grid{grid-template-columns:1fr}}
:root[data-theme="dark"] .auth-shell{background:#07111d}.auth-card{color:#111827}:root[data-theme="dark"] .auth-card{background:#0e1b28;color:#e7eef5;border-color:#263646}:root[data-theme="dark"] .auth-form label{color:#d5dee7}:root[data-theme="dark"] .auth-form input{background:#0a1621;border-color:#324454;color:#eef5fb}
.client-detail-tabs{width:100%!important;max-width:none!important;overflow-x:hidden!important;flex-wrap:nowrap!important}.client-detail-tabs button{flex:1 1 0!important;min-width:0!important}.client-detail-tabs button span{overflow:hidden;text-overflow:ellipsis}
@media(max-width:900px){.client-detail-tabs{overflow-x:auto!important}.client-detail-tabs button{flex:0 0 auto!important;min-width:135px!important}}
