.kpi-grid.compact article{padding:16px}
.secondary-button,.danger-button{min-height:36px;padding:7px 14px;border:0;border-radius:7px;color:#fff;font-weight:750;cursor:pointer}
.secondary-button{border:1px solid var(--bx-line-strong);background:#fff;color:var(--bx-primary);text-decoration:none}.secondary-button:hover{border-color:var(--bx-primary);background:var(--bx-primary-soft);color:var(--bx-primary-hover)}
.danger-button{background:var(--bx-danger)}.danger-button:hover{background:#912018}
.badge.neutral{background:#edf1f7;color:#56647a}
details summary{color:var(--bx-primary);font-weight:750;cursor:pointer}
.inline-admin{min-width:620px;padding:16px 0;display:grid;gap:14px}
.mini-form{display:grid;gap:10px;padding:14px;border:1px solid #e1e7f0;border-radius:10px;background:#f8fafd}
.mini-form label,.state-form label{display:grid;gap:6px;color:#46536a;font-size:.82rem;font-weight:650}
.mini-form input,.mini-form select,.state-form input{min-height:38px;padding:8px 10px;border:1px solid #cfd9e7;border-radius:8px;background:#fff}
.delete-form,.state-form{margin-top:12px}.state-form{display:grid;gap:10px;padding-top:15px;border-top:1px solid #e4e9f1}
.permission-fieldset{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:14px;border:1px solid #d9e2ee;border-radius:10px}
.permission-fieldset legend{padding:0 7px;color:#59667b;font-weight:750}
.check-card{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start;gap:9px!important;padding:10px;border-radius:8px;background:#f4f7fb}
.check-card input{width:17px!important;min-height:17px!important;margin-top:2px}.check-card span,.check-card small{display:block}.check-card small{margin-top:3px;color:var(--bx-muted);font-weight:400}
.role-heading,.tenant-title{display:flex;justify-content:space-between;gap:12px}.role-heading h2,.tenant-title h2{margin:8px 0 4px}.tenant-title>strong{color:var(--bx-navy)}
.admin-roles{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:22px}.tenant-grid,.payment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.tenant-card,.payment-card{margin:0}
.quota-list{display:grid;grid-template-columns:1fr auto;gap:8px;margin:18px 0}.quota-list dt{color:#68758b}.quota-list dd{margin:0;font-weight:750}
.info-box{display:flex;gap:12px;padding:14px;border:1px solid #b9dcef;border-radius:10px;background:#eef8fd;color:#31546c}.info-box span{font-weight:400;line-height:1.45}
.info-box.warning{border-color:#efd18c;background:#fff8e6;color:#79591a}
.inline-field{display:flex;gap:8px}.inline-field input{min-width:0;flex:1}.inline-field button{white-space:nowrap}.secondary-button:disabled{background:#91a4ba;cursor:not-allowed}
.filter-bar{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.filter-bar label{display:grid;gap:6px;color:#46536a;font-size:.82rem;font-weight:650}.filter-bar input,.filter-bar select{min-width:180px;min-height:39px;padding:8px 10px;border:1px solid #cfd9e7;border-radius:8px;background:#fff}.text-link{padding:10px;color:var(--bx-primary);font-weight:700;text-decoration:none}
.line-card{display:grid;grid-template-columns:2fr 3fr 1fr 1fr;gap:8px;padding:10px 12px;border:1px solid #d9e2ee;border-radius:8px}.line-card legend{padding:0 7px;color:var(--bx-navy);font-weight:750}
/* Espacio de trabajo comercial (ADR-057): cabecera tipo toolbar, campos proporcionados al dato, filtros, tablas operativas, acciones por fila y diálogos. */
.page-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.page-toolbar .eyebrow{display:block}
.page-toolbar h1{margin:.15rem 0 0;color:var(--bx-navy);font-size:1.4rem;line-height:1.2}
.page-hint{margin:3px 0 0;color:#657189;font-size:.84rem}
.toolbar-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
a.primary-button{display:inline-flex;align-items:center;text-decoration:none}
.toolbar-link{display:inline-flex;align-items:center;min-height:36px;padding:6px 12px;border:1px solid #cfd9e7;border-radius:7px;background:#fff;color:var(--bx-primary);font-size:.86rem;font-weight:700;text-decoration:none}
.toolbar-link:hover{border-color:var(--bx-primary);background:#eef4fc}
.page-tabs{display:flex;gap:4px;margin:-4px 0 12px;border-bottom:1px solid #dce4ef}
.page-tabs a{margin-bottom:-1px;padding:7px 12px;border-bottom:2px solid transparent;color:#46536a;font-size:.86rem;font-weight:700;text-decoration:none}
.page-tabs a:hover{border-color:#9fb8dc;color:var(--bx-primary)}
.panel.compact-panel{padding:14px 16px}
.section-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.section-bar h2{margin:0;color:#17233b;font-size:.98rem}
.section-bar h3{margin:0;color:#17233b;font-size:.92rem}
.section-bar .eyebrow{display:block}
.section-bar .text-link{padding:4px 6px;font-size:.84rem}
.section-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.section-actions.spaced{margin-top:12px}
.section-note{color:var(--bx-muted);font-size:.78rem}
.subsection{margin-top:16px;padding-top:12px;border-top:1px solid #e6ebf2}
/* Campos en rejilla de 12 columnas: cada dato ocupa lo que necesita (c-2 documento corto, c-7 razón social...). */
.fields{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:10px 12px}
.fields>label,.field-with-action>label{display:grid;gap:4px;align-content:start;min-width:0;color:#3c4961;font-size:.8rem;font-weight:650}
.c-2{grid-column:span 2}.c-3{grid-column:span 3}.c-4{grid-column:span 4}.c-5{grid-column:span 5}.c-6{grid-column:span 6}.c-7{grid-column:span 7}.c-8{grid-column:span 8}.c-9{grid-column:span 9}.c-12{grid-column:1/-1}
.fields input:not([type="checkbox"]),.fields select,.filters input,.filters select,.line-row input,.line-row select,.line-search input,.inline-create input{width:100%;min-width:0;min-height:34px;padding:5px 9px;border:1px solid #cfd9e7;border-radius:6px;background:#fff;color:#17233b;font-size:.88rem;outline:none}
.fields input:focus,.fields select:focus,.filters input:focus,.filters select:focus,.line-row input:focus,.line-row select:focus,.line-search input:focus,.inline-create input:focus{border-color:var(--bx-iso-top);box-shadow:var(--bx-focus)}
.fields label.checkbox,.check-row label.checkbox{display:flex;align-items:center;align-self:end;gap:8px;min-height:34px;font-size:.84rem;font-weight:600}
.check-row{display:flex;flex-wrap:wrap;align-items:center;gap:0 18px}
/* Casillas de verificación de tamaño normal en todos los formularios (antes heredaban el ancho de los campos de texto). */
.fields input[type="checkbox"],.form-grid input[type="checkbox"],.form-stack input[type="checkbox"],.mini-form input[type="checkbox"],.state-form input[type="checkbox"]{flex:none;width:16px;height:16px;min-height:0;margin:0;padding:0;accent-color:var(--bx-primary)}
.form-grid label.checkbox,.mini-form label.checkbox,.form-stack label.checkbox{display:flex;align-items:center;gap:8px}
.field-with-action{display:flex;align-items:flex-end;gap:6px;min-width:0}
.field-with-action>label{flex:1}
.field-action{min-height:34px;padding:5px 10px;border:1px solid #bcd0ea;border-radius:6px;background:#fff;color:var(--bx-primary);font-size:.82rem;font-weight:750;white-space:nowrap;cursor:pointer}
.field-action:hover{border-color:var(--bx-primary);background:#eef4fc}
.form-hints{margin:10px 0 0;color:var(--bx-muted);font-size:.74rem;line-height:1.5}
/* Vencimiento bloqueado al contado (coincide con la fecha de emisión). */
.field-lock{font-size:.8rem;margin-left:2px}
.field-note{display:block;margin-top:3px;color:var(--bx-muted);font-size:.72rem;font-weight:400}
input[data-cash-due-date][readonly]{background:#eef1f6;color:#4b5567;cursor:not-allowed}
/* Consulta de RUC en el alta de clientes (ADR-067): resultado discreto bajo el número de documento. */
.ruc-lookup-status{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:8px;border:1px solid #d8dee8;background:#f8fafc;color:#3f4a5c;font-size:.8rem}
.ruc-lookup-status.success{border-color:#86d3ae;background:#f0fbf6}
.ruc-lookup-status.warning{border-color:#f0c36d;background:#fff9eb}
.ruc-lookup-status.error{border-color:#f1a3a3;background:#fff4f4}
.ruc-lookup-status .ruc-lookup-detail{color:#536176;font-size:.76rem}
.ruc-lookup-status .ruc-lookup-warning{color:#8a5a00;font-weight:600}
.form-more{margin-top:12px;padding:8px 10px;border:1px solid #e1e7f0;border-radius:8px;background:#f8fafd}
.form-more>summary{font-size:.84rem}
.form-more[open]>summary{margin-bottom:10px}
.form-extra{margin-top:12px;padding-top:12px;border-top:1px dashed #dce4ef}
.form-footer{position:sticky;bottom:0;z-index:5;display:flex;justify-content:flex-end;gap:8px;margin:0 0 16px;padding:10px 0;border-top:1px solid #dce4ef;background:#f3f6fbf2}
.form-footer.inline{position:static;margin:12px 0 0;padding:12px 0 0;border-top:1px solid #e6ebf2;background:none}
.small-button{min-height:32px;padding:5px 12px;border:0;border-radius:6px;background:var(--bx-primary);color:#fff;font-size:.82rem;font-weight:750;white-space:nowrap;cursor:pointer}
.small-button:hover{background:var(--bx-primary-hover)}
.small-button.ghost{border:1px solid #bcd0ea;background:#fff;color:var(--bx-primary)}
.small-button.ghost:hover{border-color:var(--bx-primary);background:#eef4fc}
.ghost-button{border:1px solid #cfd9e7!important;background:#fff!important;color:#46536a!important}
.ghost-button:hover{background:#f3f6fb!important}
/* Filtros de listados: anchos según el dato. */
.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 10px}
.filters label{display:grid;gap:3px;color:#46536a;font-size:.76rem;font-weight:650}
.w-xs{width:100px}.w-sm{width:130px}.w-md{width:165px}.w-lg{width:260px}
.filter-actions{display:flex;align-items:center;gap:4px}
.filter-actions .text-link{padding:6px 8px;font-size:.84rem}
.inline-create{display:flex;gap:6px;margin-bottom:10px}
.inline-create .w-code{flex:none;width:120px}
.split-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
/* Líneas del comprobante. */
.line-search{display:flex;align-items:center;gap:6px}
.line-search input{width:280px}
.lines{display:grid;gap:6px}
.line-head,.line-row{display:grid;grid-template-columns:28px minmax(200px,3fr) minmax(160px,4fr) 110px 140px 30px;gap:8px;align-items:center}
.line-row[hidden]{display:none}
.line-head{padding-bottom:4px;border-bottom:1px solid #e6ebf2;color:#627087;font-size:.7rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase}
.line-number{color:var(--bx-muted);font-size:.8rem;text-align:center}
.line-remove{width:28px;height:28px;border:0;border-radius:6px;background:transparent;color:var(--bx-muted);font-size:1.1rem;cursor:pointer}
.line-remove:hover{background:#fdecec;color:#b42318}
/* Tablas operativas y acciones por fila. */
.list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:10px 0 6px;color:#627087;font-size:.84rem}
.data-table td{vertical-align:middle}
.data-table .num{text-align:right}
.data-table tr.is-selected td{background:#eef4fc}
.data-table .empty-row{padding:18px 10px;color:var(--bx-muted);text-align:center;white-space:normal}
.doc-cell strong{display:block;color:#17233b;font-weight:700}
.actions-cell{width:1%;text-align:right}
.row-link{color:var(--bx-primary);font-size:.84rem;font-weight:700;text-decoration:none;white-space:nowrap}
.row-issue-form{display:inline-flex;gap:6px;align-items:center;justify-content:flex-end}
.row-issue-form select,.row-issue-form input{min-height:30px;max-width:150px;padding:4px 8px;border:1px solid #cfd9e7;border-radius:6px;background:#fff;font-size:.82rem}
.row-action-button{min-height:30px;padding:4px 14px;border:0;border-radius:6px;background:var(--bx-primary);color:#fff;font-size:.82rem;font-weight:750;cursor:pointer}
.row-action-button:hover{background:var(--bx-primary-hover)}
.row-actions{position:relative;display:inline-block;text-align:left}
.row-actions>summary{display:grid;place-items:center;width:30px;height:30px;border:1px solid #cfd9e7;border-radius:6px;background:#fff;color:var(--bx-primary);font-size:1.1rem;font-weight:900;line-height:1;cursor:pointer;list-style:none}
.row-actions>summary::-webkit-details-marker{display:none}
.row-actions>summary:hover,.row-actions[open]>summary{border-color:var(--bx-primary);background:#eef4fc}
.row-actions-menu{display:grid;min-width:170px;margin-top:4px;padding:4px;border:1px solid #d3deec;border-radius:8px;background:#fff;box-shadow:0 8px 20px #18335b24}
.row-actions-menu form{margin:0}
.row-actions-menu a,.row-actions-menu button{display:block;width:100%;padding:7px 10px;border:0;border-radius:6px;background:none;color:#17233b;font:inherit;font-size:.86rem;font-weight:650;text-align:left;text-decoration:none;white-space:nowrap;cursor:pointer}
.row-actions-menu a:hover,.row-actions-menu button:hover{background:#eef4fc;color:var(--bx-primary)}
.row-actions-menu .danger{color:#b42318}
.row-actions-menu .danger:hover{background:#fdecec;color:#b42318}
.row-actions-menu .menu-note{display:block;max-width:280px;padding:7px 10px;color:#5b6477;font-size:.8rem;line-height:1.35;white-space:normal;overflow-wrap:anywhere}
.detail-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 16px;margin:0}
.detail-list dt{color:var(--bx-muted);font-size:.74rem}
.detail-list dd{margin:0 0 6px;font-size:.88rem;font-weight:650;overflow-wrap:anywhere}
/* Diálogos nativos. */
.modal{width:min(780px,calc(100vw - 32px));max-height:calc(100vh - 48px);padding:0;border:1px solid #d3deec;border-radius:10px;background:#fff;color:#17233b;box-shadow:0 24px 60px #0b235440}
.modal::backdrop{background:#0b235466}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid #e6ebf2}
.modal-head h2{margin:0;color:var(--bx-navy);font-size:1.02rem}
.modal-close{width:30px;height:30px;border:0;border-radius:6px;background:transparent;color:#627087;font-size:1.3rem;line-height:1;cursor:pointer}
.modal-close:hover{background:#eef4fc}
.modal-body{padding:14px 16px 16px}
.modal-note{margin:10px 0 0;color:var(--bx-muted);font-size:.76rem}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid #e6ebf2}
@media(min-width:1101px){.table-wrap.has-menus{overflow:visible}.row-actions-menu{position:absolute;top:calc(100% + 3px);right:0;z-index:20;margin-top:0}}
@media(max-width:900px){.fields{grid-template-columns:repeat(6,minmax(0,1fr))}.c-4,.c-5,.c-6,.c-7,.c-8,.c-9{grid-column:1/-1}.split-grid{grid-template-columns:1fr}.detail-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.line-head{display:none}.line-row{grid-template-columns:24px minmax(0,1fr) minmax(0,1fr) 30px;grid-template-areas:"n s s r" ". d d ." ". q p .";padding-bottom:6px;border-bottom:1px solid #eef2f7}
.line-number{grid-area:n}.line-row select{grid-area:s}.line-row input[name="description"]{grid-area:d}.line-row input[name="quantity"]{grid-area:q}.line-row input[name="unitPrice"]{grid-area:p}.line-remove{grid-area:r}.line-search input{width:200px}}
@media(max-width:560px){.fields{grid-template-columns:1fr}.fields>*{grid-column:1/-1}.filters label{width:calc(50% - 5px)}.line-search{flex-wrap:wrap}.line-search input{width:100%}.detail-list{grid-template-columns:1fr}.modal{width:calc(100vw - 16px)}.form-footer{justify-content:stretch}.form-footer button{flex:1}}
.amount-input{max-width:150px}.inline-form{display:flex;gap:.45rem;align-items:center;margin-top:.45rem}.inline-form input{max-width:180px}.danger-link{border:0;background:none;color:#b42318;font-weight:700;cursor:pointer}.badge.danger{background:#fee4e2;color:#b42318}.receipt{max-width:920px;margin:1.5rem auto}.receipt-head{display:flex;justify-content:space-between;gap:2rem;align-items:center;border-bottom:2px solid #153e8f;padding-bottom:1rem}.receipt-head>div{display:flex;align-items:center;gap:.8rem}.receipt-head h1{font-size:1.4rem;margin:0}.receipt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.5rem 0}.receipt-grid div{display:flex;flex-direction:column;gap:.25rem}.receipt-total{display:flex;justify-content:space-between;background:#eef4ff;padding:1rem;border-radius:12px;margin-bottom:1rem;font-size:1.2rem}.receipt-note{color:#64748b;font-size:.85rem;margin-top:1rem}
@media print{.sidebar,.topbar,.no-print{display:none!important}.content-area{margin:0!important}.receipt{box-shadow:none;border:0;max-width:none}.content-area main{padding:0}}
@media(max-width:1050px){.tenant-grid,.payment-grid,.admin-roles{grid-template-columns:1fr}}
@media(max-width:700px){.permission-fieldset,.line-card{grid-template-columns:1fr}.inline-admin{min-width:300px}}
.management-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.single-column{grid-template-columns:1fr}.single-column textarea{min-height:88px;resize:vertical}.status-danger,.overdue-text{color:#b42318!important}.badge.warning{background:#fff3cd;color:#8a5a00}.stack-form{align-items:flex-start;flex-wrap:wrap}.reschedule-box{margin-top:8px;min-width:230px}.reschedule-box .mini-form{margin-top:8px}.reschedule-box input{width:100%}
.ubl-scope{margin-bottom:22px}.ubl-note-grid .panel{height:calc(100% - 22px)}.muted-copy{color:#657189;line-height:1.6}.validation-upload-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.file-picker{display:grid;gap:8px;min-width:min(580px,100%);padding:16px;border:1px dashed #9eb7d1;border-radius:10px;background:#f7faff;color:#344d6a;font-weight:700}.file-picker input{font-weight:400}.validation-summary{display:flex;justify-content:space-between;gap:12px;margin-top:18px;padding:14px;border-radius:10px}.validation-summary.valid{border:1px solid #9edbb8;background:#ebfaf2;color:#176e3e}.validation-summary.invalid{border:1px solid #efb1b1;background:#fff1f1;color:#9b2c2c}.validation-list{display:grid;gap:8px;margin:14px 0 0;padding:0;list-style:none}.validation-list li{padding:11px 13px;border-radius:8px}.validation-error{background:#fff1f1;color:#8f2525}.validation-warning{background:#fff8e5;color:#765300}
@media(max-width:900px){.ubl-note-grid{grid-template-columns:1fr}.validation-summary{flex-direction:column}}
@media(max-width:1050px){.management-grid{grid-template-columns:1fr}}
.readiness-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin:16px 0}
.readiness-item{display:flex;flex-direction:column;gap:5px;padding:14px;border-radius:12px;border:1px solid #d8dee8;background:#f8fafc}
.readiness-item.ready{border-color:#86d3ae;background:#f0fbf6}
.readiness-item.pending{border-color:#f0c36d;background:#fff9eb}
.readiness-item span{color:#536176;font-size:.9rem}
/* SIRE RCE V1.1: densidad compacta propia del módulo (sin zoom ni transformaciones globales); el menú lateral no cambia. */
.dense{font-size:.875rem}
.dense .page-heading{margin-bottom:10px}
.dense .page-heading h1{margin:.1rem 0 .1rem;font-size:1.3rem}
.dense .page-heading p{font-size:.82rem;line-height:1.4}
.dense .page-heading .text-link{padding:2px 0}
.dense .panel{margin-bottom:12px;padding:12px 14px}
.dense .panel-title{margin-bottom:8px}
.dense .panel-title h2{font-size:.95rem}
.dense table{font-size:.8125rem}
.dense th,.dense td{padding:5px 8px}
.dense th{font-size:.66rem}
.dense .badge{padding:1px 6px;font-size:.64rem;line-height:1.45}
.dense .info-box{gap:8px;margin-top:8px;padding:8px 10px;border-radius:8px;font-size:.8rem}
.dense .alert{margin-bottom:10px;padding:7px 10px;font-size:.82rem}
.dense .form-grid{gap:8px 12px}
.dense .form-grid label{font-size:.76rem}
.dense .form-grid input,.dense .form-grid select{min-height:32px;padding:4px 8px;font-size:.84rem}
.dense .primary-button,.dense .secondary-button,.dense .danger-button{min-height:32px;padding:5px 12px;font-size:.82rem}
.dense .text-link{padding:4px 6px;font-size:.8rem}
.dense .filter-actions .text-link{padding:4px 6px;font-size:.8rem}
.dense .section-note{display:block;margin:6px 0 0;font-size:.74rem;line-height:1.45}
.dense .check-row{gap:0 14px;font-size:.84rem}
.dense .check-row label.checkbox{min-height:28px}
.dense .detail-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:2px 16px;margin-top:6px}
.dense .detail-list dt{font-size:.7rem}
.dense .detail-list dd{margin:0 0 4px;font-size:.82rem}
.dense .form-actions.start{justify-content:flex-start;align-items:center;margin-top:10px}
.dense .form-actions form{margin:0}
.stat-bar{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:0 0 8px;color:#4f5c73;font-size:.84rem}
.stat-bar strong{color:var(--bx-navy);font-size:1rem;font-variant-numeric:tabular-nums}
.import-sources{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px 28px}
.import-source h2{margin:0 0 8px;color:#17233b;font-size:.95rem}
.import-source h2 small{margin-left:6px;color:var(--bx-blue);font-size:.64rem;font-weight:850;letter-spacing:.08em}
.toolbar-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 16px;margin-bottom:4px}
.toolbar-row .form-actions{grid-column:auto}
.clip{display:inline-block;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
.clip:focus-visible{overflow:visible;white-space:normal;outline:2px solid var(--bx-iso-top);outline-offset:1px}
/* Columna de nombre (razón social, empresa): ocupa el ancho que dejan las demás y recorta con «…» en vez de ensanchar la tabla. */
.data-table td.name-cell{width:45%;max-width:0}
.data-table td.name-cell>.clip{display:block;max-width:none}
.cell-note{display:block;max-width:340px;margin-top:2px;color:var(--bx-muted);font-size:.7rem;line-height:1.35;white-space:normal}
.muted-cell{color:var(--bx-muted)!important}
.date-other{border-bottom:1px dotted #8a96ab;cursor:help}
.fmt{display:inline-flex;align-items:center;gap:3px;padding:1px 7px;border-radius:999px;font-size:.68rem;font-weight:750;line-height:1.5;white-space:nowrap;text-decoration:none}
.fmt.ok{background:#e7f8ef;color:#11723a}
a.fmt.ok:hover,a.fmt.ok:focus-visible{background:#cdeedc;text-decoration:underline}
.fmt.muted,.fmt.wait{background:#edf1f7;color:#56647a}
.fmt.na{background:#fff3cd;color:#8a5a00}
.fmt.fail{background:#fdecec;color:#a52c2c}
.fmt.none{padding:0;background:none;color:var(--bx-muted)}
.tech-details{margin-top:4px;font-size:.78rem}
.tech-details>summary{color:#627087;font-size:.74rem;font-weight:700}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
@media(max-width:900px){.dense .detail-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.dense .detail-list{grid-template-columns:1fr}.clip{max-width:180px}.import-sources{grid-template-columns:1fr}}
/* RCE V1.1.1: cabecera con ruta de orientación y botón de regreso, botones de ZIP y selector buscable de empresas. */
.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;color:var(--bx-blue);font-size:.7rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.breadcrumb a{color:var(--bx-blue);text-decoration:none}
.breadcrumb a:hover,.breadcrumb a:focus-visible{text-decoration:underline}
.breadcrumb [aria-current]{color:#627087}
.breadcrumb-separator{color:var(--bx-muted);font-weight:700}
.dense .page-toolbar{align-items:center;margin-bottom:10px}
.dense .page-toolbar h1{margin:.1rem 0 0;font-size:1.3rem}
.dense .toolbar-link{min-height:32px;padding:5px 12px;font-size:.82rem}
a.secondary-button,a.danger-button{display:inline-flex;align-items:center;text-decoration:none}
.combobox{position:relative;min-width:0}
.combobox-input{text-overflow:ellipsis}
.combobox-list{position:absolute;z-index:30;top:calc(100% + 3px);left:0;right:0;max-height:300px;margin:0;padding:4px;overflow-y:auto;list-style:none;border:1px solid #d3deec;border-radius:8px;background:#fff;box-shadow:0 8px 20px #18335b24}
.combobox-list[hidden]{display:none}
.combobox-option{padding:6px 8px;overflow:hidden;border-radius:6px;color:#17233b;font-size:.82rem;font-weight:500;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.combobox-option.active,.combobox-option:hover{background:#eef4fc;color:var(--bx-primary)}
.combobox-option[aria-selected="true"]{font-weight:750}
.combobox-group{padding:6px 8px 2px;color:#627087;font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
/* DIRECT CPE V1-A: operación y tipo de la consulta directa como grupos de opción compactos; el RUC emisor solo en una compra. */
.choice-group{display:flex;flex-wrap:wrap;align-items:stretch;gap:6px;min-width:0;margin:0;padding:0;border:0}
.choice-group legend{width:100%;margin-bottom:4px;padding:0;color:#3c4961;font-size:.76rem;font-weight:650}
.form-grid .choice-group label.choice{display:flex;flex:1 1 140px;align-items:flex-start;gap:8px;padding:6px 10px;border:1px solid #cfd9e7;border-radius:7px;background:#fff;color:#17233b;font-size:.84rem;font-weight:650;cursor:pointer}
.form-grid .choice-group label.choice:has(input:checked){border-color:var(--bx-primary);background:#eef4fc;box-shadow:0 0 0 1px var(--bx-primary) inset}
.form-grid .choice-group input[type="radio"]{flex:none;width:15px;height:15px;min-height:0;margin:2px 0 0;padding:0;accent-color:var(--bx-primary)}
.choice-group small{display:block;margin-top:1px;color:var(--bx-muted);font-size:.7rem;font-weight:400}
.cpe-lookup-form [hidden]{display:none!important}
.cpe-lookup-form .field-note{align-self:end;margin:0 0 8px}
/* DIRECT CPE V1-B: consulta masiva. Pestañas Excel/Pegado, fila de archivo, cuadrícula liviana de 6 columnas (su propio desplazamiento
   horizontal solo si no cabe), errores por fila y campo, progreso del lote y tablas compactas. */
.page-tabs a.active{border-color:var(--bx-primary);color:var(--bx-primary)}
.cpe-batch-form{display:grid;gap:10px}
.cpe-file-row{display:flex;flex-wrap:wrap;align-items:end;gap:10px}
.cpe-file-row .cpe-file{flex:1 1 320px}
.cpe-grid-wrap{overflow-x:auto}
.cpe-grid{width:100%;min-width:680px;border-collapse:collapse;table-layout:fixed;font-size:.82rem}
.cpe-grid col.cpe-grid-index{width:36px}
.cpe-grid col.cpe-grid-type{width:19%}
.cpe-grid col.cpe-grid-ruc{width:15%}
.cpe-grid col.cpe-grid-series{width:10%}
.cpe-grid th{padding:4px 6px;border:1px solid #dce4ef;background:#f1f5fa;color:#3c4961;font-size:.7rem;font-weight:750;text-align:left;white-space:nowrap}
.cpe-grid tbody th{color:var(--bx-muted);font-weight:650;text-align:center}
.cpe-grid td{padding:0;border:1px solid #dce4ef}
.cpe-grid input{display:block;width:100%;min-height:25px;margin:0;padding:2px 6px;border:0;border-radius:0;background:#fff;color:#17233b;font-size:.8rem}
.cpe-grid input:focus{outline:2px solid var(--bx-iso-top);outline-offset:-2px}
.cpe-grid input.is-invalid,.cpe-grid tr.is-invalid input{background:#fff1f1;box-shadow:inset 0 0 0 1px #d64545}
.cpe-grid-actions{align-items:center}
.paste-status{flex:1 1 auto;color:#3c4961;font-size:.78rem}
.paste-status.is-error{color:#9b2c2c;font-weight:700}
/* V1-B.1: la revisión recibe el foco al validar (sin contorno) y se atenúa cuando los datos cambiaron después de validarla. */
.cpe-review h2:focus,.alert[tabindex="-1"]:focus{outline:none}
.alert.warning{border:1px solid #f3d58a;background:#fff8e6;color:#7a5200}
.cpe-review.is-obsolete .stat-bar,.cpe-review.is-obsolete .table-wrap,.cpe-review.is-obsolete .cpe-batch-errors{opacity:.5}
.cpe-batch-errors{max-height:260px;overflow-y:auto}
.dense .cpe-batch-errors li{padding:6px 10px;font-size:.8rem}
.dense .validation-summary{margin-top:6px;padding:8px 10px;font-size:.82rem}
.cpe-progress{width:160px;height:8px;accent-color:var(--bx-primary)}
.cpe-batch-table td{white-space:nowrap}
/* DIRECT CPE V1-C: descripción y placa compactas (el texto completo en el título, «+ N» por las demás) e ítems del comprobante. */
.cpe-clip{max-width:240px}
.cpe-more{margin-left:4px;color:var(--bx-muted);font-size:.75rem;font-weight:650;white-space:nowrap}
.cpe-items{margin-top:8px}.cpe-items summary{cursor:pointer;color:var(--bx-primary);font-size:.82rem;font-weight:650}
.cpe-items .data-table td.cpe-item-description{min-width:260px;white-space:normal}
.igv-missing{color:#b42318;font-size:.8rem;font-weight:650}
/* Buzón V1-B (BONEX-D130): campana de notificaciones internas en la barra superior y bandeja /notificaciones. El contador es un <span>
   dentro de .topbar: las reglas llevan .topbar delante para ganarle a ".topbar span" (color y ocultamiento en pantallas chicas). El grupo
   de la derecha no se encoge (flex:none): en un teléfono se ajusta el título, sin desplazar la insignia SUNAT fuera de la pantalla. */
.topbar-actions{display:flex;flex:none;align-items:center;gap:10px}
.notification-bell{position:relative;display:inline-grid;flex:none;place-items:center;width:34px;height:34px;border-radius:8px;color:#46536a;text-decoration:none}
.notification-bell:hover,.notification-bell:focus-visible{background:#eef4fc;color:var(--bx-primary)}
.notification-bell.has-unread{color:var(--bx-primary)}
.notification-bell svg{width:20px;height:20px;fill:currentColor}
.topbar .notification-count{position:absolute;top:1px;right:-2px;display:inline-block;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#b42318;color:#fff;font-size:.62rem;font-weight:800;line-height:17px;text-align:center}
.notification-row.is-unread td{background:#f6f9ff}
.notification-row.is-unread .notification-title{color:#17233b;font-weight:750}
.notification-list{margin:0}
.notification-actions{display:inline-flex;gap:12px;align-items:center;justify-content:flex-end}
.link-action{padding:0;border:0;background:none;color:var(--bx-primary);font:inherit;font-size:.84rem;font-weight:700;white-space:nowrap;cursor:pointer}
.link-action:hover,.link-action:focus-visible{text-decoration:underline}
/* Buzón V1-C1 (BONEX-D131): en pantallas angostas las pestañas de filtro (p. ej. las 5 de Entregas de correo) pasan a otra línea en vez de desbordar. */
@media(max-width:600px){.page-tabs{flex-wrap:wrap}}
/* Buzón (bloque de UX): franja de actualización y resumen horizontales, filtros en una fila sin botón, control segmentado de Tipo,
   pestañas de documento y cuerpo HTML saneado. Reutiliza .detail-list (horizontal), .filters, .breadcrumb y .badge ya existentes. */
.chip{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.68rem;font-weight:700;background:#edf1f7;color:#56647a;line-height:1.5}
.chip.active{background:#e6f4ea;color:#17794a}
.chip.inactive{background:#fde7e7;color:#a12a2a}
.chip.neutral{background:#edf1f7;color:#56647a}
.segmented{display:inline-flex;border:1px solid #cfd9e7;border-radius:7px;overflow:hidden}
.segmented a{padding:5px 12px;font-size:.82rem;color:#46536a;text-decoration:none;border-left:1px solid #cfd9e7;white-space:nowrap}
.segmented a:first-child{border-left:0}
.segmented a.active{background:var(--bx-primary);color:#fff;font-weight:700}
.doc-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.doc-tabs a{padding:5px 12px;font-size:.82rem;border:1px solid #cfd9e7;border-radius:999px;color:#46536a;text-decoration:none;background:#f6f8fc}
.doc-tabs a.active{background:var(--bx-primary);color:#fff;border-color:var(--bx-primary);font-weight:700}
.doc-tabs a small{font-weight:500;opacity:.8}
.message-content{border:1px solid #dce4ef;border-radius:8px;padding:12px 14px;background:#fff;line-height:1.55;overflow-wrap:anywhere}
/* Contenido HTML de SUNAT: se ADAPTA al ancho disponible a zoom 100% y nada lo obliga a superar el contenedor (antes una tabla de SUNAT con
   layout automático se extendía a lo ancho y dejaba la columna CANTIDAD fuera de pantalla). Reglas SOLO dentro de .sunat-body; no afectan al
   resto de BONEX. El iframe del PDF va aparte, así que no cambia. */
.message-content.sunat-body{width:100%;max-width:100%;min-width:0;box-sizing:border-box;overflow-x:auto}
.message-content.sunat-body table{border-collapse:collapse;width:100%!important;max-width:100%!important;min-width:0!important;margin:6px 0}
.message-content.sunat-body td,.message-content.sunat-body th{border:1px solid #dce4ef;padding:4px 8px;font-size:.85rem;white-space:normal!important;overflow-wrap:anywhere;word-break:normal;box-sizing:border-box;vertical-align:top}
.message-content.sunat-body img,.message-content.sunat-body svg,.message-content.sunat-body canvas{max-width:100%;height:auto}
.message-content.sunat-body a{color:var(--bx-primary);overflow-wrap:anywhere}
.mailbox-nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:space-between;margin-top:12px}
/* Filtros del Buzón en UNA sola fila (§7): sus controles NO ocupan el 100% como en .fields; se reparten con flex y se envuelven a lo sumo en
   2 filas en pantallas medianas. El buscador es más ancho que los selects. El botón «Filtrar» queda como respaldo sin JS (se oculta con JS). */
.filters>input[type=search]{flex:2 1 220px;width:auto;min-width:180px}
.filters>select{flex:1 1 160px;width:auto;min-width:140px}
.filters .filter-actions{flex:0 0 auto}
.filters .segmented{margin-top:2px}
.diag-json{white-space:pre-wrap;overflow-wrap:anywhere;background:#f6f8fc;border:1px solid #dce4ef;border-radius:6px;padding:8px 10px;font-size:.76rem;color:#46536a;margin-top:6px}
/* Empresas administradas y credenciales SUNAT V2 (BONEX-D137): introducción a todo el ancho, alta en una sola fila con el aviso del RUC
   junto al formulario, tabla sin formularios ni desbordes (la razón social se ajusta en varias líneas) y ficha por bloques compactos. */
.page-heading-wide p,.dense .page-heading-wide p{max-width:none}
.register-company,.inline-fields,.credential-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 10px}
.register-company label,.inline-fields label,.credential-form label{display:grid;gap:3px;min-width:0;color:#46536a;font-size:.76rem;font-weight:650}
.register-company input,.inline-fields input,.inline-fields select,.credential-form input{width:100%;min-width:0;min-height:34px;padding:5px 9px;border:1px solid #cfd9e7;border-radius:6px;background:#fff;color:#17233b;font-size:.88rem;outline:none}
.register-company input:focus,.inline-fields input:focus,.inline-fields select:focus,.credential-form input:focus{border-color:var(--bx-iso-top);box-shadow:var(--bx-focus)}
.register-ruc{flex:0 0 200px}
.register-name{flex:1 1 320px}
.register-hint{flex:1 0 100%;margin:0;color:var(--bx-muted);font-size:.74rem;line-height:1.45}
.inline-fields{margin-top:10px}
.inline-fields .field-grow{flex:1 1 320px;max-width:720px}
.companies-table td.name-cell{white-space:normal;overflow-wrap:anywhere}
.companies-table td.name-cell .row-link{white-space:normal}
.companies-table td.sunat-cell .table-note{margin-top:1px;font-size:.7rem}
.companies-table .actions-cell .small-button{display:inline-block;text-decoration:none}
.alert.next-step{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.alert.next-step a{color:inherit;font-weight:750}
.detail-list.single,.dense .detail-list.single{grid-template-columns:1fr;margin-top:8px}
.validation-status{display:flex;flex-direction:column;gap:2px;margin:8px 0 4px;padding:8px 10px;border:1px solid #e1e7f0;border-radius:8px;background:#f8fafd;color:#344159;font-size:.82rem}
.validation-meta{color:var(--bx-muted);font-size:.74rem}
.credential-block{margin-top:12px;padding-top:10px;border-top:1px solid #e6ebf2}
.credential-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-bottom:6px}
.credential-head h3{margin:0;color:#17233b;font-size:.92rem}
.credential-meta{color:#5b6477;font-size:.78rem}
.credential-meta strong{color:#17233b}
.secret-mask{letter-spacing:.08em;color:#344159}
.credential-revoke{margin-left:auto;padding:2px 4px;font-size:.8rem}
.credential-form .field-user{flex:0 1 220px}
.credential-form .field-client{flex:1 1 300px;max-width:420px}
.credential-form .field-secret{flex:1 1 260px;max-width:360px}
.secret-input{position:relative;display:block}
.secret-input input{padding-right:38px}
.secret-reveal{position:absolute;top:50%;right:4px;transform:translateY(-50%);display:grid;place-items:center;width:28px;height:26px;padding:0;border:0;border-radius:5px;background:transparent;color:#56647a;line-height:1;cursor:pointer;user-select:none;touch-action:none}
.secret-reveal:hover,.secret-reveal:focus-visible{background:#eef4fc;outline:none}
.credential-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.warning-note,.dense .warning-note{color:#7a5200}
/* El aviso de longitud inusual nace oculto: .dense .section-note fija display y anularía el atributo hidden. */
.section-note[hidden],.dense .section-note[hidden]{display:none}
/* Permisos SUNAT (P3, BONEX-D138): una fila por servicio (nombre, estado, acción) y la propuesta a confirmar. */
.permission-list{display:grid;gap:6px;margin:8px 0 0;padding:0;list-style:none}
.permission-row{display:grid;grid-template-columns:minmax(200px,1fr) auto minmax(150px,auto);align-items:center;gap:4px 12px;padding:7px 10px;border:1px solid #e1e7f0;border-radius:8px;background:#f8fafd}
.permission-name strong{display:block;color:var(--bx-navy);font-size:.86rem}
.permission-name small{color:var(--bx-muted);font-size:.72rem}
.permission-action{justify-self:end;text-align:right}
.permission-progress{color:#7a5200;font-size:.76rem}
.permission-note{grid-column:1/-1;margin:0;color:#4d5a70;font-size:.74rem;line-height:1.4}
.permission-note.error{color:#9b1c1c}
.permission-proposal{margin-top:10px;padding:10px 12px;border:1px solid #c9d8f0;border-left:3px solid #2f6fd6;border-radius:8px;background:#f3f7fd}
.permission-proposal h3{margin:0 0 6px;color:#17233b;font-size:.92rem}
.proposal-diff{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:4px 14px;margin:0}
.proposal-diff dt{color:var(--bx-muted);font-size:.72rem}
.proposal-diff dd{margin:0;color:#17233b;font-size:.84rem;font-weight:650}
.permission-technical{margin-top:8px;color:#344159;font-size:.76rem}
.permission-technical summary{cursor:pointer;color:var(--bx-primary);font-weight:650}
.permission-technical p{margin:4px 0}
.permission-technical code{margin-right:6px;font-size:.72rem}
.resource-list{display:flex;flex-wrap:wrap;gap:2px 10px;margin:0;padding:0;list-style:none}
.proposal-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:8px}
.empty-inline{margin:6px 0 0;color:var(--bx-muted);font-size:.8rem}
.history>summary{display:flex;align-items:baseline;gap:10px;list-style:none}
.history>summary::-webkit-details-marker{display:none}
.history>summary::before{content:"▸";color:#627087;transition:transform .15s}
.history[open]>summary::before{transform:rotate(90deg)}
.history-eyebrow{color:var(--bx-blue);font-size:.7rem;font-weight:850;letter-spacing:.1em}
.history-title{color:#17233b;font-size:.95rem;font-weight:750}
.history .table-wrap{margin-top:8px}
.wrap-cell{white-space:normal!important;overflow-wrap:anywhere}
.admin-zone{border-left:3px solid #e8b4b4}
/* Anchos intermedios (barra lateral visible, ventana a media pantalla): la tabla cabe sin desplazarse con menos relleno y badges que se parten. */
@media(max-width:980px){.companies-table th,.companies-table td{padding-left:4px;padding-right:4px}
.companies-table .badge{white-space:normal;text-align:center}
.companies-table .actions-cell .small-button{padding:5px 8px}
}
@media(max-width:700px){.register-ruc,.register-name,.inline-fields .field-grow,.credential-form .field-user,.credential-form .field-client,.credential-form .field-secret{flex:1 1 100%;max-width:none}
.credential-revoke{margin-left:0}
.permission-row{grid-template-columns:1fr}
.permission-row .badge,.permission-action{justify-self:start;text-align:left}
}
.inline-form.wrap{flex-wrap:wrap}
/* GRE G5 (BONEX-D142): estado compacto del PDF y del XML de cada guía (chip que descarga lo vigente o pide el archivo a SUNAT) y su línea en el detalle. */
.fmt.info{background:#e8f0fe;color:#1a4fa0}
button.fmt{border:0;font-family:inherit;cursor:pointer}
button.fmt:hover,button.fmt:focus-visible{filter:brightness(.95);text-decoration:underline}
.file-cell{white-space:nowrap}
.file-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.file-line .inline-form{margin-top:0}
/* GRE (revisión G5): la contraparte (Destinatario en Emitidas, Emisor en Recibidas) no ensancha la tabla: a lo sumo 300 px, razón social en
   hasta dos líneas con «…» (el nombre completo en el title) y el RUC debajo; estado SUNAT y motivo largos parten la línea; encabezados de
   dos palabras en dos líneas y relleno horizontal compacto, para que Modalidad, PDF, XML y Detalle queden a la vista. */
.gre-table th,.gre-table td{padding-left:6px;padding-right:6px}
.gre-table th{white-space:normal}
.data-table .party-cell{min-width:160px;max-width:300px;white-space:normal}
.party-name{display:-webkit-box;max-width:300px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;line-height:1.3;overflow-wrap:anywhere}
.party-ruc{display:block;margin-top:2px;color:var(--bx-muted);font-size:.76rem}
.wrap-text{display:block;min-width:70px;max-width:170px;white-space:normal;line-height:1.3}
.wrap-text.state{min-width:110px}
