/* Jerarquía compartida de la interfaz operativa. Los impresos conservan su diseño. */
@media screen {
  :is(#view, dialog:not(.print-preview)) { --workflow-gap:16px; --workflow-control-height:40px; }
  #view :is(.view-header,.section-heading,.commercial-quote-section,.line-head) { gap:var(--workflow-gap); }
  #view :is(.view-header,.section-heading,.commercial-quote-section,.line-head) h2 { font-size:24px; line-height:1.25; font-weight:650; letter-spacing:-.02em; }
  #view :is(.view-header,.section-heading,.commercial-quote-section,.line-head) h3 { font-size:18px; line-height:1.3; font-weight:650; }
  #view .view-subtitle { font-size:12px; line-height:1.4; font-weight:500; letter-spacing:.02em; color:var(--muted); }
  #view :is(.view-header,.section-heading,.commercial-quote-section,.line-head) p { max-width:65ch; font-size:14px; line-height:1.5; }
  :is(#view, dialog:not(.print-preview)) label:has(> :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea)) { font-size:14px; font-weight:600; line-height:1.4; }
  :is(#view, dialog:not(.print-preview)) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea) { font-weight:500; color:var(--ink); }
  :is(#view, dialog:not(.print-preview)) :is(button.primary,button.secondary) { min-height:var(--workflow-control-height); border-radius:8px; font-weight:600; }
  :is(#view, dialog:not(.print-preview)) :is(.dialog-actions,.form-actions) { gap:16px; }
  :is(#view, dialog:not(.print-preview)) .context-help { min-width:0; grid-column:1 / -1; margin:8px 0 16px; padding:0; border:0; background:transparent; color:var(--muted); font-size:14px; line-height:1.5; }
  :is(#view, dialog:not(.print-preview)) .context-help > summary { width:fit-content; max-width:100%; min-height:36px; padding:8px 0; cursor:pointer; font-size:14px; font-weight:600; color:var(--ink); overflow-wrap:anywhere; }
  :is(#view, dialog:not(.print-preview)) .context-help[open] > summary { margin-bottom:4px; }
  :is(#view, dialog:not(.print-preview)) .context-help > p { max-width:65ch; margin:0; padding:0 0 8px; font-size:14px; line-height:1.5; }
  .context-help > summary:focus-visible { outline:2px solid var(--red); outline-offset:3px; border-radius:4px; }
  .receipt-tabs .receipt-tab { background:#fff; color:var(--muted); border:1px solid var(--line); box-shadow:none; min-height:40px; border-radius:8px; font-weight:600; }
  .receipt-tabs .receipt-tab.is-active { background:var(--red-soft); color:var(--red-dark); border-color:#e5b7c1; }
  .ui-loading { padding:8px 0; }
  .ui-loading-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
  .ui-loading-card { padding:16px; border:1px solid var(--line); border-radius:12px; background:#fff; }
  .ui-loading .ui-loading-heading { height:24px; width:36%; max-width:280px; margin-bottom:24px; }
  .ui-loading .ui-loading-line { height:14px; width:88%; margin-bottom:8px; border-radius:4px; }
  .ui-loading .ui-loading-line.short { width:56%; }
  .ui-loading .ui-loading-value { height:32px; width:40%; margin-top:24px; border-radius:4px; }
  .ui-loading-label { margin-top:16px; font-size:14px; color:var(--muted); }
}
@media screen and (max-width:820px) {
  :is(#view, dialog:not(.print-preview)) { --workflow-control-height:44px; }
  :is(#view, dialog:not(.print-preview)) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea) { font-size:16px; }
  :is(#view, dialog:not(.print-preview)) .context-help > summary { min-height:44px; }
  #view :is(.view-header,.section-heading,.commercial-quote-section,.line-head) h2 { font-size:20px; }
  .ui-loading-grid { grid-template-columns:minmax(0,1fr); gap:16px; }
  .ui-loading-card { padding:16px; }
  .ui-loading .ui-loading-value { margin-top:16px; }
}
@media (prefers-reduced-motion:reduce) {
  :is(#view,dialog) .skeleton { animation:none; background:#edf0f4; }
}
@media print { .context-help, .ui-loading { display:none !important; } }

/* Listados operativos: una página visible y controles accesibles. */
@media screen {
  .list-page-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding:12px 0; scroll-margin-top:112px; }
  .list-page-count { color:var(--muted); font-size:14px; margin-right:auto; font-variant-numeric:tabular-nums; }
  :is(#view,dialog) .list-page-toolbar > label { display:flex; align-items:center; gap:8px; margin:0; font-size:13px; white-space:nowrap; }
  :is(#view,dialog) .list-page-toolbar select { width:auto; min-width:68px; padding:8px; }
  :is(#view,dialog) .list-page-nav { display:flex; flex-direction:row; gap:8px; align-items:center; width:auto; }
  :is(#view,dialog) .list-page-nav button { width:auto; flex:0 0 auto; padding:8px 12px; white-space:nowrap; }
  .list-page-footer { display:flex; justify-content:flex-end; padding:12px 0; }
  .list-page-footer[hidden] { display:none; }
  .dispatch-history-filters { display:grid; grid-template-columns:minmax(220px,1fr) repeat(2,minmax(140px,180px)); gap:12px; align-items:end; }
  .dispatch-history-filters label { min-width:0; }
  .dispatch-history-filters input { width:100%; min-width:0; }
  .dispatch-history-table { width:100%; min-width:0; }
  .dispatch-history-table td { overflow-wrap:anywhere; vertical-align:top; }
  .dispatch-history-table td > small { display:block; color:var(--muted); margin-top:4px; }
  .dispatch-history-table td:last-child { text-align:right; }
  .dispatch-history-table .btn-open-act { display:block; margin:8px 0 0 auto; white-space:nowrap; }
  .dispatch-act-code { color:var(--red-dark); white-space:nowrap; }
  .dispatch-history-table summary { cursor:pointer; min-height:32px; font-size:14px; }
  .dispatch-history-table details p { margin:8px 0; }
}
@media screen and (max-width:820px) {
  .list-page-toolbar { gap:8px; scroll-margin-top:112px; }
  .list-page-toolbar .list-page-count { flex-basis:100%; }
  .list-page-toolbar > .list-page-nav { margin-left:auto; }
  .dispatch-history-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dispatch-history-filters > :first-child { grid-column:1 / -1; }
  #view .dispatch-history-wrap { overflow:visible; border:0; background:transparent; }
  .dispatch-history-wrap::before { display:none; }
  .dispatch-history-table :is(thead) { display:none; }
  .dispatch-history-table :is(tbody) { display:grid; gap:12px; }
  .dispatch-history-table tr { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; padding:16px; border:1px solid var(--line); border-radius:12px; background:#fff; }
  #view .dispatch-history-table td { display:block; min-width:0; padding:0; border:0; background:transparent; }
  .dispatch-history-table td:nth-child(2) { grid-column:1; grid-row:2; }
  .dispatch-history-table td:nth-child(3) { grid-column:1 / -1; grid-row:3; border-top:1px solid var(--line) !important; padding-top:8px !important; }
  .dispatch-history-table td:last-child { grid-column:2; grid-row:1 / 3; }
  .dispatch-history-table summary { min-height:44px; display:list-item; padding:10px 0; }
}
@media screen and (max-width:380px) {
  .list-page-toolbar > label { flex-basis:100%; }
  .list-page-toolbar > .list-page-nav { margin-left:0; }
  .dispatch-history-table tr { grid-template-columns:minmax(0,1fr); }
  .dispatch-history-table td:last-child { grid-column:1; grid-row:3; display:flex !important; align-items:center; justify-content:space-between; gap:8px; text-align:left; }
  .dispatch-history-table .btn-open-act { margin:0; }
  .dispatch-history-table td:nth-child(3) { grid-row:4; }
}
@media print { .list-page-toolbar,.list-page-footer { display:none !important; } }

/* Filtros secundarios disponibles sin ocupar el primer plano. */
@media screen {
  #view .dispatch-history-filters { grid-template-columns:minmax(220px,1fr) auto; align-items:start; }
  .dispatch-date-filter { min-width:0; margin-top:24px; }
  .dispatch-date-filter > summary { min-height:40px; padding:8px 12px; border:1px solid var(--line); border-radius:8px; background:#fff; cursor:pointer; font-size:14px; }
  .dispatch-date-filter[open] { min-width:320px; }
  .dispatch-date-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding-top:12px; }
  .dispatch-date-fields > button { grid-column:1 / -1; justify-self:end; }
}
@media screen and (max-width:820px) {
  #view .dispatch-history-filters { grid-template-columns:minmax(0,1fr); gap:8px; }
  .dispatch-date-filter { margin-top:0; }
  .dispatch-date-filter[open] { min-width:0; }
  .dispatch-date-filter > summary { width:fit-content; min-height:44px; }
  .dispatch-date-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* Densidad de trabajo: las separaciones expresan grupos, no tarjetas decorativas. */
@media screen {
  #app { --operation-space:16px; }
  #app .topbar { min-height:72px; }
  #app #main { padding-top:20px; }
  #app #view-location { margin:0 0 12px; font-size:12px; line-height:1.4; }
  #app #view :is(.view-header,.section-heading) { margin:0 0 16px; gap:12px; }
  #app #view :is(.view-header,.section-heading) h2 { margin:0; font-size:22px; line-height:1.25; text-wrap:balance; }
  #app #view :is(.view-header,.section-heading) p { margin:4px 0 0; max-width:65ch; font-size:13px; line-height:1.45; text-wrap:pretty; }
  #view :is(.card,.commercial-workspace-card,.inventory-workspace-card) { border-radius:10px; box-shadow:none; }
  #view .card { padding:16px; }
  #view :is(.toolbar,.filter-bar) { gap:12px; align-items:end; margin-bottom:12px; }
  #view :is(.toolbar,.filter-bar) > label { min-width:0; margin:0; }
  #view :is(.toolbar,.filter-bar) :is(input,select) { margin-top:4px; }
  #view :is(.kpi-grid,.inventory-kpi-strip,.dispatch-stat-grid) { margin:0 0 16px; gap:0; }
  #view :is(.kpi-card,.inventory-kpi-cell,.stat-card) { padding:12px 16px; min-height:0; box-shadow:none; }
  #view :is(.kpi-title,.inventory-kpi-label,.stat-card > .muted) { font-size:12px; font-weight:500; line-height:1.35; }
  #view :is(.kpi-value,.inventory-kpi-value) { font-size:22px; line-height:1.25; margin:4px 0; font-variant-numeric:tabular-nums; }
  #view :is(.inventory-kpi-sub,.kpi-card > small,.stat-card > small) { font-size:12px; line-height:1.35; }
  #view .inventory-result-count { margin:8px 0; font-size:12px; line-height:1.4; }
  #view:has(#dispatch-history-pane) .dispatch-stat-grid { margin:0 0 12px; }
  #view:has(#dispatch-history-pane) .stat-card { display:flex; align-items:baseline; gap:8px; padding:0; border:0; background:transparent; }
  #view:has(#dispatch-history-pane) .stat-card strong { font-size:20px; line-height:1.25; }
  #view .dispatch-history-filters { margin:0 0 8px; gap:8px; align-items:end; }
  #view .dispatch-history-filters input { max-width:none; }
  #view .dispatch-date-filter { margin-top:0; align-self:end; }
  #view .list-page-toolbar { padding:8px 0; gap:8px; scroll-margin-top:88px; }
  #view .list-page-count { font-size:12px; line-height:1.4; }
  #view .list-page-toolbar > label { flex-basis:auto; font-size:12px; gap:6px; }
  #view .list-page-toolbar select { min-width:56px; padding:8px; }
  #view .list-page-nav button { padding:8px 10px; font-size:13px; }
  #view .list-page-footer { padding:8px 0; }
  #view .table-wrap { border-radius:10px; }
  #view table :is(th,td) { padding:10px 12px; }
  #view table th { font-size:12px; letter-spacing:.035em; font-weight:600; }
  #view table td { font-size:14px; line-height:1.4; }
  #view :is(.inventory-modern-product,.cutting-order-card,.commercial-list-card,.receipt-price-group) { border-radius:10px; box-shadow:none; }
  #view .inventory-material-thumbnail img { outline:1px solid #00000014; outline-offset:-1px; }
  dialog:not(.print-preview) .dialog-head { padding:16px; }
  dialog:not(.print-preview) :is(.field-grid,.field-grid-3,.form-grid) { gap:12px; }
  dialog:not(.print-preview) :is(.dialog-actions,.form-actions) { gap:8px; }
  #view :is(button,a,input,select,summary):focus-visible { outline:2px solid var(--red); outline-offset:2px; }
}
@media screen and (max-width:980px) {
  #app #main { padding:16px 12px calc(96px + env(safe-area-inset-bottom,0px)); }
  #app #view-location { margin-bottom:8px; }
  #app #view :is(.view-header,.section-heading) { margin-bottom:12px; }
  #app #view :is(.view-header,.section-heading) h2 { font-size:20px; }
  #view .card { padding:12px; }
  #view :is(.toolbar,.filter-bar) { gap:8px; margin-bottom:8px; }
  #view :is(.toolbar,.filter-bar) > label { flex:1 1 144px; }
  #view :is(.toolbar,.filter-bar) > button { min-height:44px; }
  #view :is(.kpi-card,.inventory-kpi-cell,.stat-card) { padding:10px 12px; }
  #view :is(.kpi-value,.inventory-kpi-value) { font-size:20px; }
  #view .dispatch-history-filters { grid-template-columns:minmax(0,1fr) auto; }
  #view .dispatch-history-filters > :first-child { grid-column:auto; }
  #view .dispatch-history-filters:has(details[open]) { grid-template-columns:minmax(0,1fr); }
  #view .dispatch-date-filter[open] { grid-column:1 / -1; }
  #view .dispatch-history-table tr { gap:8px; padding:12px; }
  #view .dispatch-history-table summary { min-height:44px; padding:8px 0; }
  #view .list-page-toolbar > label { flex-basis:auto; }
  #view .list-page-toolbar > .list-page-nav { margin-left:auto; }
}
@media (prefers-reduced-motion:reduce) {
  #app :is(button,a,input,select,summary) { scroll-behavior:auto; transition:none; }
}

@media screen and (max-width:980px) {
  #app .topbar { display:flex; min-height:72px; height:auto; padding:10px 12px !important; gap:0; }
  #app .topbar > .workspace-location { display:none; }
  #app .topbar-actions { display:grid; grid-template-columns:minmax(0,1fr) 44px 44px; align-items:end; gap:8px; width:100%; margin:0; }
  #app .topbar .warehouse-context { display:flex; flex-direction:column; gap:2px; min-width:0; max-width:none; width:100%; margin:0; }
  #app .warehouse-context #warehouse-indicator { max-width:100%; font-size:11px; line-height:1.2; font-weight:500; }
  #app .warehouse-context select { width:100%; min-width:0; min-height:44px; margin:0; padding:8px 12px; font-size:16px; line-height:1.3; font-weight:600; }
  #app .topbar .role-switcher { display:contents; }
  #app .topbar :is(.role-info,.role-avatar) { display:none; }
  #app .topbar :is(#refresh,#logout) { display:grid; place-items:center; align-self:end; width:44px; height:44px; min-height:44px; margin:0; padding:10px; border-radius:8px; }
}

/* Las barras de filtros usan filas envolventes: el flex-basis es ancho, nunca altura. */
@media screen {
  #view .toolbar { display:flex; flex-direction:row; flex-wrap:wrap; align-items:end; }
  #view .toolbar > label { flex:1 1 160px; display:grid; align-content:start; gap:4px; min-height:0; }
  #view .toolbar > label > :is(input:not([type="checkbox"]):not([type="radio"]),select) { margin:0; align-self:start; min-height:40px; }
  #view .kpi-card { border-top:1px solid var(--line); }
  #view .contracts-summary-grid .kpi-card .kpi-label { display:block; color:var(--muted); font-size:12px; font-weight:500; line-height:1.35; }
  #view .stats-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-bottom:16px; }
  #view .stats-grid .stat-card { display:grid; grid-template-columns:minmax(0,1fr); align-content:start; gap:4px; padding:12px; }
  #view .stats-grid .stat-card > strong { margin:0; font-size:22px; line-height:1.25; font-variant-numeric:tabular-nums; }
  #view .stats-grid .stat-card > :is(span,small) { font-size:12px; line-height:1.35; }
}
@media screen and (max-width:980px) {
  #view .toolbar > label { flex:1 1 144px; }
  #view .toolbar > label > :is(input:not([type="checkbox"]):not([type="radio"]),select) { min-height:44px; }
  #view .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #home-dashboard .home-context { display:none; }
  #home-dashboard .home-intro { margin-bottom:16px; }
  #home-dashboard h1 { font-size:24px; line-height:1.25; }
  #home-dashboard .home-actions { margin-bottom:16px; }
  #home-dashboard .home-action { min-height:64px; padding:12px; }
  #home-dashboard .home-panel-head { padding:16px; }
  #home-dashboard .home-tools { padding:0 16px; }
}
@media screen and (max-width:600px) {
  #view .toolbar > label:has(> input[type="search"]) { flex-basis:100%; }
  #view .toolbar > button { flex:0 0 auto; margin-left:auto; }
}
@media screen {
  /* El área útil puede ser menor que320px al aparecer la barra vertical del navegador. */
  body:has(#app) { min-width:0; }
}
@media screen and (max-width:980px) {
  #view :is(.table-button,button.btn-link,button.icon-button), dialog:not(.print-preview) button.icon-button { min-height:44px; min-width:44px; }
}
@media screen and (max-width:600px) {
  #view .caballete-grid { grid-template-columns:minmax(0,1fr); }
  #view .caballete-card { min-width:0; }
}

/* Registros de consulta: tabla comparativa en PC y ficha completa en teléfono. */
@media screen and (max-width:600px) {
  #app #view .table-wrap:has(> :is(.commercial-sales-table,.clients-directory-table)) { overflow:visible; border:0; border-radius:0; background:transparent; }
  #app #view :is(.commercial-sales-table,.clients-directory-table) { display:block; width:100%; min-width:0; border:0; }
  #app #view :is(.commercial-sales-table,.clients-directory-table) thead { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  #app #view :is(.commercial-sales-table,.clients-directory-table) tbody { display:grid; gap:8px; }
  #app #view :is(.commercial-sales-table,.clients-directory-table) tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 12px; padding:12px; border:1px solid var(--line); border-radius:10px; background:#fff; }
  #app #view :is(.commercial-sales-table,.clients-directory-table) td { display:block; min-width:0; padding:0; border:0; background:transparent; text-align:left; overflow-wrap:anywhere; white-space:normal; }
  #app #view :is(.commercial-sales-table,.clients-directory-table) td::before { display:block !important; content:attr(data-label); margin-bottom:4px; color:var(--muted); font-size:11px; font-weight:500; line-height:1.3; }
  #app #view .commercial-sales-table td:nth-child(1) { grid-column:1; grid-row:1; }
  #app #view .commercial-sales-table td:nth-child(2) { grid-column:1 / -1; grid-row:2; font-weight:600; }
  #app #view .commercial-sales-table td:nth-child(3) { grid-column:1 / -1; grid-row:3; color:var(--muted); font-size:12px; }
  #app #view .commercial-sales-table td:nth-child(4) { grid-column:1; grid-row:4; }
  #app #view .commercial-sales-table td:nth-child(5) { grid-column:2; grid-row:4; }
  #app #view .commercial-sales-table td:nth-child(6) { grid-column:1; grid-row:5; }
  #app #view .commercial-sales-table td:nth-child(7) { grid-column:2; grid-row:1; text-align:right; }
  #app #view .commercial-sales-table td:nth-child(7) .status { white-space:normal; }
  #app #view .commercial-sales-table td:nth-child(8) { grid-column:2; grid-row:5; align-self:end; text-align:right; }
  #app #view .commercial-sales-table td:nth-child(-n+3)::before,
  #app #view .commercial-sales-table td:nth-child(7)::before,
  #app #view .commercial-sales-table td:nth-child(8)::before { display:none !important; }
  #app #view .clients-directory-table td:nth-child(2) { grid-column:1 / -1; grid-row:1; font-weight:600; }
  #app #view .clients-directory-table td:nth-child(1) { grid-column:1 / -1; grid-row:2; }
  #app #view .clients-directory-table td:nth-child(3) { grid-column:1 / -1; grid-row:3; }
  #app #view .clients-directory-table td:nth-child(4) { grid-column:1; grid-row:4; }
  #app #view .clients-directory-table td:nth-child(5) { grid-column:2; grid-row:4; }
  #app #view .clients-directory-table td:nth-child(6) { grid-column:1; grid-row:5; }
  #app #view .clients-directory-table td.row-action { grid-column:1 / -1; grid-row:6; }
  #app #view .clients-directory-table td:nth-child(-n+2)::before { display:none !important; }
  #app #view .clients-directory-table td.row-action > div { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
}
@media screen and (min-width:601px) {
  #app #view .commercial-sales-table td:is(:nth-child(1),:nth-child(4),:nth-child(5),:nth-child(6)) { white-space:nowrap; overflow-wrap:normal; }
}

/* Estructura de módulo: navegación, tarea/acción, consulta y resultados. */
@media screen {
  #app #view > .view-header { display:flex; align-items:center; justify-content:space-between; padding-bottom:16px; border-bottom:1px solid var(--line); }
  #app #view > .view-header > .primary { flex:0 0 auto; width:auto; }
  #app #view > .kpi-grid { border:1px solid var(--line); border-radius:8px; overflow:hidden; background:#fff; }
  #app #view > .kpi-grid > .kpi-card { border:0; border-radius:0; background:transparent; }
  #app #view > .kpi-grid > .kpi-card + .kpi-card { border-left:1px solid var(--line); }
  #app .inventory-modern-stock { padding:0; }
  #app #view .inventory-workspace-card .filter-bar { display:flex; flex-wrap:wrap; align-items:start; padding:12px 16px; }
  #app #view .inventory-workspace-card .inventory-search-field { flex:1 1 220px; }
  #app .inventory-search-filters { margin-top:24px; min-width:0; }
  #app .inventory-search-filters > summary { display:list-item; list-style-position:inside; min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:#fff; cursor:pointer; font-size:14px; font-weight:600; }
  #app .inventory-search-filters[open] { flex:1 1 100%; margin-top:0; }
  #app .inventory-search-filters[open] > summary { width:fit-content; }
  #app .inventory-search-filter-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:12px 0 0; }
  #app .inventory-search-filter-fields > label { min-width:0; }
  #app .inventory-search-filter-fields .inventory-group-control { grid-column:1 / -1; display:flex; align-items:center; gap:8px; margin:0; min-height:44px; }
  #app #inv-clear-filters { margin-top:24px; min-height:44px; }
  #app .inventory-search-filters > summary:focus-visible { outline:2px solid var(--red); outline-offset:2px; }
  #app .inventory-overview { margin:0 16px 12px; }
  #app .inventory-overview > summary { min-height:44px; padding:10px 0; color:var(--muted); font-size:13px; cursor:pointer; }
  #app .inventory-overview > summary:focus-visible { outline:2px solid var(--red); outline-offset:2px; }
  #app .inventory-overview .inventory-scope-note { margin:0 0 12px; }
  #app .inventory-workspace-card .inventory-overview .inventory-kpi-strip { margin:0; }
  #app .inventory-modern-stock .inventory-kpi-strip { margin:0 16px 12px; border-radius:6px; }
  #app .inventory-modern-stock .stock-alert-banner { margin:0 16px 12px; }
  #app .inventory-stock-alert { padding:0 12px; }
  #app .inventory-stock-alert > summary { min-height:44px; padding:10px 0; cursor:pointer; color:#805118; font-size:13px; font-weight:600; }
  #app .inventory-stock-alert > summary:focus-visible { outline:2px solid var(--red); outline-offset:2px; }
  #app .inventory-stock-alert > p { margin:4px 0 12px; font-size:13px; color:#805118; }
  #app .inventory-stock-alert .stock-alert-chips { padding-bottom:12px; }
  #app .inventory-modern-product { border-radius:0; }
  #app .inventory-modern-product > summary:hover { background:#f8f9fb; }
  #app .inventory-modern-product[open] > summary { background:#f5f6f8; }
  #app .inventory-modern-product > summary:focus-visible { outline:2px solid var(--red); outline-offset:-2px; }
}
@media screen and (max-width:980px) {
  #app #view > .view-header { flex-wrap:wrap; align-items:flex-start; gap:12px; padding-bottom:12px; }
  #app #view > .view-header > div:first-child { flex:1 1 180px; }
  #app #view > .view-header > .primary { min-height:44px; margin-left:auto; }
  #app #view > .kpi-grid > .kpi-card:nth-child(3) { border-left:0; }
  #app #view > .kpi-grid > .kpi-card:nth-child(n+3) { border-top:1px solid var(--line); }
  #app .inventory-modern-stock .inventory-kpi-strip { margin-inline:12px; }
  #app .inventory-modern-stock .stock-alert-banner { margin-inline:12px; }
  #app .inventory-overview { margin-inline:12px; }
}
@media screen and (max-width:600px) {
  #app #view .inventory-workspace-card .filter-bar { padding:12px; gap:8px; }
  #app #view .inventory-workspace-card .inventory-search-field { flex-basis:100%; }
  #app .inventory-search-filters, #app #inv-clear-filters { margin-top:0; }
  #app .inventory-search-filter-fields { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  #app .inventory-modern-product .inventory-product-actions { flex-direction:row; flex-wrap:nowrap; align-items:center; justify-content:flex-end; }
  #app .inventory-modern-product .compact-btn { min-width:0; flex:1 1 auto; }
  #app .inventory-modern-product .inventory-expand-mark { flex:0 0 12px; font-size:16px; line-height:1; }
}

@media screen {
  #view .dispatch-history-filters { grid-template-columns:minmax(150px,180px) minmax(180px,1fr) auto; }
  #view .dispatch-history-filters > label { display:grid; gap:4px; width:100%; max-width:none; margin:0; }
  #view .dispatch-history-filters :is(input,select) { width:100%; max-width:none; min-height:44px; margin:0; }
}
@media screen and (max-width:820px) {
  #view .dispatch-history-filters { grid-template-columns:minmax(0,1fr) auto; }
  #view .dispatch-history-filters > :first-child { grid-column:1 / -1; }
  #view .dispatch-history-filters:has(details[open]) { grid-template-columns:minmax(0,1fr); }
}

/* Superficies operativas sobrias: datos principales y detalle bajo demanda. */
@media screen {
  #app { --radius-sm:3px; --radius-md:4px; --radius-lg:6px; --radius-xl:6px; }
  #view :is(.card,.kpi-grid,.inventory-kpi-strip,.inventory-modern-product,.inventory-modern-lot),
  dialog :is(.card,.facts,.notice,.workflow-panel,.critical-warning) { border-radius:4px; }
  #view .status, dialog .status { border-radius:3px; padding:3px 7px; font-size:12px; }
  :is(#view,dialog:not(.print-preview)) :is(button.primary,button.secondary,input,select,textarea) { border-radius:3px; }
  dialog.correction-dialog { width:min(600px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); border-radius:4px; padding:0; }
  .correction-dialog .dialog-content { padding:20px; overflow:auto; max-height:calc(100dvh - 28px); }
  .correction-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:16px; }
  .correction-heading h2 { margin:0; font-size:21px; }
  .correction-form { display:grid; gap:14px; }
  .correction-form > label,.refund-component label { display:grid; gap:5px; min-width:0; }
  .correction-form .check-line { display:flex; align-items:flex-start; gap:8px; font-size:14px; }
  .correction-form .check-line input { flex:0 0 18px; margin-top:2px; }
  .refund-component { display:grid; gap:10px; grid-template-columns:1fr 1fr; padding:12px; border:1px solid var(--line); min-width:0; }
  .refund-component label:last-child { grid-column:1 / -1; }
  #detail-dialog .sale-summary-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin:0 0 14px; }
  #detail-dialog .sale-summary-heading > strong { font-size:16px; overflow-wrap:anywhere; }
  #detail-dialog .sale-economic-strip { grid-template-columns:repeat(3,minmax(0,1fr)); border:0; border-block:1px solid var(--line); border-radius:0; background:transparent; margin:0 0 8px; }
  #detail-dialog .sale-economic-strip.is-quotation { grid-template-columns:1fr; }
  #detail-dialog .sale-econ-cell { padding:12px 16px 12px 0; background:transparent; gap:4px; }
  #detail-dialog .sale-econ-cell + .sale-econ-cell { padding-left:16px; }
  #detail-dialog .sale-econ-cell > strong { font-size:22px; font-weight:650; line-height:1.25; }
  #detail-dialog .sale-context-details { margin:4px 0 16px; font-size:13px; color:var(--muted); }
  #detail-dialog .sale-context-details summary { width:fit-content; cursor:pointer; min-height:36px; padding:8px 0; }
  #detail-dialog .sale-context-details summary:focus-visible { outline:2px solid var(--red); outline-offset:2px; }
  #detail-dialog .sale-context-details p { margin:5px 0; font-size:13px; }
  #detail-dialog .sale-correction-actions { display:flex; align-items:flex-start; justify-content:flex-end; flex-wrap:wrap; gap:8px; margin:0 0 14px; }
  #detail-dialog .danger-action { color:#a82828; border-color:#d5a4a4; }
  #detail-dialog .sale-compact-summary { margin-bottom:18px; }
  #detail-dialog .sale-context-details .facts { border:0; background:transparent; margin:8px 0; }
}
@media screen and (max-width:600px) {
  #detail-dialog .sale-economic-strip { grid-template-columns:1fr 1fr; }
  #detail-dialog .sale-econ-cell { padding:10px 12px 10px 0; }
  #detail-dialog .sale-econ-cell:nth-child(3) { border-right:0; border-top:1px solid var(--line); padding-left:0; grid-column:1 / -1; }
  #detail-dialog .sale-econ-cell > strong { font-size:19px; }
  .correction-dialog .dialog-content { padding:14px; }
  .correction-form .dialog-actions { display:flex; flex-wrap:wrap; position:sticky; bottom:0; background:white; padding-top:12px; }
}
@media screen {
  #detail-dialog, #detail-dialog .dialog-content, #detail-dialog :is(.table-wrap,.workflow-panel,.payment-card,.payment-history) { border-radius:4px; }
  #detail-dialog .workflow-panel { margin:12px 0 0; padding:0; border:0; background:transparent; }
  .refund-list-entry { padding:12px 0; border-bottom:1px solid var(--line); font-size:14px; }
  .refund-list-entry p { margin:5px 0; }
  [data-refund-list] nav { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:12px; }
}
@media screen and (max-width:600px) {
  .correction-dialog button, #detail-dialog .sale-correction-actions button { min-height:44px; }
}
@media screen {
  .sale-cancel-group { display:flex; align-items:center; gap:6px; max-width:100%; }
}
@media screen {
  .user-access-dialog { width:min(850px,calc(100% - 24px)); max-width:850px; padding:0; border-radius:4px; }
  .user-access-dialog .dialog-head { padding:16px 20px; }
  .user-access-dialog h2 { font-size:20px; margin:0; }
  .user-access-fields { padding:18px 20px; display:grid; gap:16px; }
  .user-access-dialog .dialog-actions { position:sticky; bottom:0; background:var(--surface,#fff); padding:12px 20px; border-top:1px solid var(--border); margin:0; }
  .user-access-dialog label { margin:0; }
  .access-identity { display:grid; gap:3px; margin:0; overflow-wrap:anywhere; }
  .access-identity span { color:var(--muted); font-size:13px; }
  .access-section-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px; }
  .access-section-heading h3 { font-size:16px; margin:0; }
  .access-section-heading button { font-size:13px; min-height:44px; }
  .access-matrix-head,.access-matrix-row { display:grid; grid-template-columns:minmax(130px,1fr) repeat(4,64px); align-items:center; gap:4px; border-bottom:1px solid var(--border); }
  .access-matrix-head { color:var(--muted); font-size:12px; padding:8px 0; }
  .access-matrix-head span:not(:first-child) { text-align:center; }
  .access-matrix-row strong { font-size:14px; font-weight:600; padding:10px 0; }
  .access-matrix-row label { display:flex; align-items:center; justify-content:center; min-height:44px; cursor:pointer; }
  .access-matrix-row label span { display:none; }
  .access-matrix-row input { margin:0; width:20px; height:20px; accent-color:var(--primary,#ce0033); }
  .access-not-applicable { text-align:center; color:var(--muted); }
  .access-confirm { display:flex; align-items:center; gap:8px; }
  .access-confirm input { width:20px; height:20px; flex:none; }
  .access-home-links { display:flex; flex-wrap:wrap; gap:12px; }
  .access-home-links button { min-height:48px; }
  .team-summary { display:flex; flex-wrap:wrap; gap:8px 24px; padding:12px 0 16px; color:var(--muted); font-size:14px; }
  .team-summary strong { color:var(--text); }
}
@media screen and (max-width:600px) {
  .user-access-fields { padding:14px; }
  .user-access-dialog .field-grid { grid-template-columns:minmax(0,1fr); }
  .user-access-dialog .dialog-head,.user-access-dialog .dialog-actions { padding:12px 14px; }
  .access-section-heading { align-items:flex-start; flex-direction:column; gap:0; }
  .access-matrix-head { display:none; }
  .access-matrix-row { grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; padding:8px 0; }
  .access-matrix-row strong { grid-column:1/-1; padding:0 0 4px; }
  .access-matrix-row label { flex-direction:column; gap:4px; min-height:54px; }
  .access-matrix-row label span { display:block; color:var(--muted); font-size:12px; }
  .user-team-table,.user-team-table tbody { display:block; min-width:0; width:100%; }
  .user-team-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .user-team-table tbody { display:grid; gap:12px; }
  .user-team-table tr { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); padding:12px; border-bottom:1px solid var(--border); gap:8px; }
  .user-team-table td { display:block; min-width:0; padding:4px 0; border:0; overflow-wrap:anywhere; }
  .user-team-table td:first-child,.user-team-table td:nth-child(4),.user-team-table td:last-child { grid-column:1/-1; }
  .user-team-table td:not(:first-child)::before { content:attr(data-label); display:block; color:var(--muted); font-size:12px; margin-bottom:4px; }
  .user-team-table td:last-child>div { flex-wrap:wrap; }
  .user-team-table button { min-height:44px; white-space:normal; }
}
@media screen and (max-width:380px) {
  #view .team-workspace .list-page-toolbar>label { flex-basis:100%; }
  #view .team-workspace .list-page-toolbar>.list-page-nav { margin-left:0; }
}

/* Densidad operativa compartida: conservar acciones y orden DOM, sin afectar impresos. */
@media screen {
  :is(#view, dialog:not(.print-preview)) { --workflow-gap:12px; --workflow-control-height:42px; }
  :is(#view, dialog:not(.print-preview)) .field-grid {
    min-width:0; gap:12px 16px; align-items:start;
  }
  :is(#view, dialog:not(.print-preview)) .field-grid > label {
    min-width:0; margin-bottom:0; gap:6px;
  }
  :is(#view, dialog:not(.print-preview)) .field-grid > label > :is(input,select,textarea) {
    min-width:0; max-width:100%; box-sizing:border-box;
  }
  :is(#view, dialog:not(.print-preview)) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),select) {
    min-height:var(--workflow-control-height); padding:9px 12px; border-radius:4px;
  }
  :is(#view, dialog:not(.print-preview)) :is(button.primary,button.secondary) {
    max-width:100%; padding:9px 14px; border-radius:4px; line-height:1.35;
    white-space:normal; overflow-wrap:anywhere;
  }
  #view :is(.view-header,.section-heading) { align-items:center; gap:12px; margin-bottom:12px; }
  #view :is(.view-header,.section-heading) > :is(div,h2,h3) { min-width:0; }
  #view .toolbar { flex-wrap:wrap; gap:12px; margin-bottom:12px; align-items:end; }
  #view .toolbar > label { min-width:0; flex:1 1 180px; }
  #view .toolbar > button { flex:0 1 auto; align-self:flex-end; max-width:100%; }
  :is(#view, dialog:not(.print-preview)) :is(.form-actions,.dialog-actions) {
    display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:16px;
  }
  :is(#view, dialog:not(.print-preview)) :is(.form-actions,.dialog-actions) > button {
    flex:0 1 auto; width:auto; min-width:0;
  }
  #view .card { padding:16px; border-radius:6px; }
}
@media screen and (max-width:820px) {
  :is(#view, dialog:not(.print-preview)) { --workflow-control-height:44px; }
}
@media screen and (max-width:520px) {
  :is(#view, dialog:not(.print-preview)) .field-grid { grid-template-columns:minmax(0,1fr); gap:12px; }
  :is(#view, dialog:not(.print-preview)) :is(.form-actions,.dialog-actions) > button { flex:1 1 120px; }
  #view .toolbar > label { flex-basis:100%; }
  #view :is(.section-heading,.view-header) { flex-wrap:wrap; }
}

@media screen {
  .inventory-provenance-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:24px; align-items:start; }
  .inventory-provenance-panel { min-width:0; }
  .inventory-provenance .inventory-catalog-heading { align-items:center; margin-bottom:12px; }
  .inventory-provenance h3 { margin:0; font-size:18px; }
  .inventory-provenance h3 small { color:var(--muted); font-size:13px; font-weight:500; }
  .inventory-provenance-panel > label { margin-bottom:12px; }
  .inventory-provenance-filters { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; align-items:end; }
  .inventory-provenance-filters label { min-width:0; margin-bottom:12px; }
  .inventory-provenance .inventory-catalog-list { max-height:480px; overflow:auto; padding:0; margin:0; }
  .inventory-provenance-panel .inventory-catalog-list li { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; padding:12px 0; border:0; border-bottom:1px solid var(--line); border-radius:0; min-height:0; }
  .inventory-provenance .inventory-catalog-list li[hidden] { display:none; }
  .inventory-provenance-panel li > div { min-width:0; overflow-wrap:anywhere; }
  .inventory-provenance-panel li small { display:block; color:var(--muted); margin-top:3px; }
  .inventory-provenance-actions { display:flex; align-items:center; flex-wrap:wrap; gap:4px 12px; justify-content:flex-end; }
  .inventory-provenance .inventory-provenance-actions button { position:static; margin:0; min-height:44px; padding:6px 4px; white-space:normal; }
  .inventory-secondary-catalogs { border-top:1px solid var(--line); margin-top:20px; padding-top:8px; }
  .inventory-secondary-catalogs > summary { cursor:pointer; min-height:44px; padding:10px 0; color:var(--muted); }
  .inventory-provenance-panel [role=status] { margin:8px 0; font-size:13px; }
}
@media screen and (max-width:820px) {
  .inventory-provenance-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
}
@media screen and (max-width:520px) {
  .inventory-provenance-filters { grid-template-columns:minmax(0,1fr); gap:0; }
  .inventory-provenance-panel .inventory-catalog-list li { grid-template-columns:minmax(0,1fr); gap:4px; }
  .inventory-provenance-actions { justify-content:flex-start; }
}

/* Cotizaciones y ventas: resumen breve y una fila lógica de acciones. */
@media screen {
  #view .commercial-kpi-strip { margin-block:0 12px; }
  #view .commercial-kpi-strip .inventory-kpi-cell { padding:10px 14px; gap:4px; }
  #view .commercial-kpi-strip .inventory-kpi-value { font-size:23px; line-height:1.2; }
  #app .commercial-workspace-card > .toolbar { padding:12px; gap:12px; }
  #detail-dialog .sale-compact-summary { margin-bottom:10px; }
  #detail-dialog .sale-correction-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:8px; margin:8px 0 12px; padding:0; }
  #detail-dialog .sale-correction-actions > [data-ui-style="u041"] { display:flex; flex-wrap:wrap; gap:8px; min-width:0; }
  #detail-dialog .sale-correction-actions button { min-height:42px; max-width:100%; padding:8px 12px; font-size:13px; white-space:normal; }
  #detail-dialog .sale-cancel-group { margin-left:auto; }
  #detail-dialog .sale-economic-strip .sale-econ-cell { padding-block:10px; }
  #detail-dialog .sale-summary-heading { gap:12px; margin-bottom:10px; }
  #detail-dialog .erp-dialog-tabs { margin-bottom:12px; gap:12px; }
}
@media screen and (max-width:600px) {
  #detail-dialog .sale-correction-actions button { min-height:44px; }
  #detail-dialog .sale-correction-actions > [data-ui-style="u041"] { flex-basis:100%; }
  #detail-dialog .sale-cancel-group { margin-left:0; }
  #detail-dialog .sale-economic-strip .sale-econ-cell { padding-block:8px; }
}
@media screen {
  #view .commercial-list-grid { gap:12px; }
  #view .commercial-list-card { gap:8px; padding:14px; border-radius:6px; }
  #view .commercial-list-card .commercial-card-head { gap:8px; align-items:flex-start; }
  #view .commercial-card-footer { gap:10px; flex-wrap:wrap; }
  #view .commercial-card-actions { display:flex; flex-wrap:wrap; gap:8px; }
  #view .commercial-card-actions button { min-width:0; white-space:normal; }
}

/* Taller y entregas: controles próximos al material, sin reducir áreas de firma. */
@media screen {
  #view .ops-workshop-list .cutting-order-card { padding:14px 16px 0; column-gap:16px; row-gap:10px; }
  #view .ops-workshop-list .cutting-order-heading h3 { margin-bottom:3px; }
  #view .ops-workshop-list .cutting-order-heading p { margin-block:3px; }
  #view .ops-workshop-list .cutting-order-toolbar { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:8px; }
  #view .ops-workshop-list .cutting-order-toolbar :is(button,a) { min-height:44px; padding:8px 12px; font-size:13px; white-space:normal; border-radius:4px; }
  #view .ops-workshop-list .cutting-order-materials { margin-top:0; }
  #view .ops-workshop-list .cutting-order-materials > summary { padding-block:8px; }
  #view .ops-workshop-list .cutting-order-items { padding-bottom:10px; }
  #view .cutting-order-item { gap:12px; padding-block:12px; }
  #view .cutting-item-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-width:0; }
  #view .cutting-item-actions button { min-height:44px; max-width:100%; white-space:normal; }
  #view .dispatch-stat-grid { gap:0; margin-block:0 12px; border:1px solid var(--line); border-radius:4px; }
  #view .dispatch-stat-grid .stat-card { padding:10px 14px; border:0; border-radius:0; box-shadow:none; min-height:0; }
  #view .dispatch-stat-grid .stat-card strong { font-size:24px; line-height:1.2; }
  #dispatch-pending-pane .dispatch-card { border-radius:4px; margin-bottom:12px; }
  #dispatch-pending-pane .dispatch-card-head { padding:12px 14px; gap:12px; }
  #dispatch-pending-pane .dispatch-card > [data-ui-style="u195"] { padding:10px 14px; gap:10px; flex-wrap:wrap; }
  #dispatch-pending-pane .dispatch-footer-actions { gap:8px; flex-wrap:wrap; }
  #dispatch-pending-pane .dispatch-footer-actions button { min-height:44px; padding:8px 12px; white-space:normal; border-radius:4px; }
  #technician-pending-list .th-history-row { padding-block:10px; gap:10px; }
  #technician-pending-list .th-history-row > button { min-height:44px; padding:8px 12px; white-space:normal; }
  .ops-dispatch-dialog #dispatch-material-form { gap:16px; }
  .ops-dispatch-dialog .ops-section-heading { margin-bottom:8px; }
  .ops-dispatch-dialog .ops-section-title { margin-bottom:8px; }
  .ops-dispatch-dialog label.ops-dispatch-piece { padding:10px 8px; }
  .ops-dispatch-dialog .receiver-card { min-height:64px; border-radius:4px; }
}
@media screen and (max-width:820px) {
  #view .ops-workshop-list .cutting-order-card { gap:10px; padding:12px 12px 0; }
  #view .ops-workshop-list .cutting-order-toolbar { width:100%; }
  #view .ops-workshop-list .cutting-order-toolbar > :is(button,a) { flex:1 1 130px; text-align:center; }
  #dispatch-pending-pane .dispatch-card-head { padding:12px; }
  #technician-pending-list .th-history-row { flex-wrap:wrap; }
}
@media screen {
  #view .cutting-workspace-heading > [data-ui-style="u057"] { flex-wrap:wrap; align-items:center; min-width:0; }
  #view .cutting-workspace-heading > [data-ui-style="u057"] > button { flex:0 0 auto; white-space:nowrap; }
  #view .ops-workshop-list .cutting-order-toolbar { flex-direction:row; align-items:center; }
}

/* Cobros: cifras legibles, filtros próximos y acciones sin marcos excesivos. */
@media screen {
  #finance-tab-content .finance-kpi-row { gap:12px; margin-bottom:12px; }
  #finance-tab-content .stat-card-premium { min-height:0; padding:14px; border-radius:6px; gap:8px; }
  #finance-tab-content .stat-card-head { gap:8px; margin-bottom:8px; }
  #finance-tab-content .stat-card-icon { width:28px; height:28px; font-size:16px; }
  #finance-tab-content .stat-card-value { font-size:24px; line-height:1.25; overflow-wrap:anywhere; }
  #finance-tab-content .stat-card-sub { margin-top:6px; font-size:12px; }
  #finance-tab-content .materials-ranking-card { padding:16px; border-radius:6px; }
  #finance-tab-content .payment-filters { gap:12px; margin-bottom:12px; }
  #finance-tab-content .payment-filters label { min-width:0; }
  #view .view-header:has(+ #finance-tab-content) > [data-ui-style="u076"] { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
  #view .view-header:has(+ #finance-tab-content) > [data-ui-style="u076"] button { min-height:44px; white-space:normal; }
}

/* Cierre de ventanas: icono × en la esquina, sin texto que se parta en dos líneas. */
button.icon-button.dialog-close { flex: none; width: 44px; min-width: 44px; max-width: 44px; height: 44px; min-height: 44px; max-height: 44px; padding: 0; display: inline-grid; place-items: center; }


/* Cierre común: una X accesible, sin cambiar las acciones de cada módulo. */
dialog [data-erp-close-source],
dialog [data-erp-close-footer-empty] { display: none !important; }
dialog .erp-closable-heading { display: flex; align-items: flex-start; gap: 12px; min-width: 0; }
dialog .erp-closable-heading > h1,
dialog .erp-closable-heading > h2,
dialog .erp-closable-heading > h3 { flex: 1; min-width: 0; overflow-wrap: anywhere; }
/* La × se ancla siempre a la misma esquina de la ventana (12 px del borde superior y derecho), con independencia
   del relleno propio de cada cabecera; la cabecera reserva ese espacio para no tapar títulos ni botones. */
dialog .erp-closable-heading { padding-inline-end: 60px; }
dialog .erp-closable-heading > button.erp-window-close {
  position: absolute; top: 12px; right: 12px; z-index: 5; margin: 0;
  width: 44px; min-width: 44px; max-width: 44px; height: 44px; min-height: 44px; max-height: 44px;
  padding: 0; display: inline-grid; place-items: center;
}
@media print { dialog .erp-closable-heading > button.erp-window-close { display: none; } }

/* Cabeceras con acciones (vista previa de impresión): título y botones en la misma línea, con la × anclada aparte. */
dialog .print-preview-toolbar.erp-closable-heading { align-items: center; min-height: 44px; }
dialog .print-preview-toolbar.erp-closable-heading > .dialog-actions { align-items: center; }
dialog .print-preview-toolbar.erp-closable-heading > h1,
dialog .print-preview-toolbar.erp-closable-heading > h2,
dialog .print-preview-toolbar.erp-closable-heading > h3 { margin: 0; }
dialog .print-preview-toolbar.erp-closable-heading { padding-block: 12px; }
dialog .print-preview-toolbar.erp-closable-heading > .dialog-actions { margin: 0; }

/* Cabeceras de lista con varias acciones: el título ocupa el espacio libre y los botones quedan juntos a la derecha. */
@media screen {
  #app #view > .view-header, #app .commercial-list-head { justify-content: flex-start; }
  #app #view > .view-header > :first-child:not(:last-child), #app .commercial-list-head > :first-child:not(:last-child) { margin-inline-end: auto; }
}

/* Cobranzas: una retícula de cifras y paneles alineados, sin gastos externos. */
@media screen {
  #app #finance-tab-content .finance-kpi-row {
    grid-template-columns:repeat(5,minmax(0,1fr)); gap:0;
    border:1px solid var(--line); border-radius:4px; overflow:hidden;
    background:var(--panel);
  }
  #app #finance-tab-content .stat-card-premium {
    border:0; border-radius:0; box-shadow:none; padding:14px;
    justify-content:flex-start; gap:0; min-width:0;
  }
  #app #finance-tab-content .stat-card-premium + .stat-card-premium { border-inline-start:1px solid var(--line); }
  #app #finance-tab-content .stat-card-premium::before { content:none; }
  #app #finance-tab-content .stat-card-head { min-height:32px; margin:0 0 8px; align-items:flex-start; }
  #app #finance-tab-content .stat-card-head small { font-size:12px; line-height:1.35; text-transform:none; letter-spacing:0; }
  #app #finance-tab-content .stat-card-value { margin:0; font-size:24px; line-height:1.25; color:var(--ink); }
  #app #finance-tab-content .accent-balance .stat-card-value { color:#b42318; }
  #app #finance-tab-content .charts-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:12px; }
  #app #finance-tab-content :is(.chart-card,.materials-ranking-card) { padding:16px; border-radius:4px; min-width:0; }
  #app #finance-tab-content .chart-card-header { display:flex; flex-wrap:wrap; align-items:flex-start; gap:8px 16px; margin-bottom:16px; }
  #app #finance-tab-content .chart-card-header > div:first-child { flex:1 1 190px; min-width:0; }
  #app #finance-tab-content .chart-card-header h3 { font-size:16px; line-height:1.4; }
  #app #finance-tab-content .chart-card-header > .tabular-nums { margin-inline-start:auto; overflow-wrap:anywhere; }
  #app #finance-tab-content .dist-label-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:baseline; }
  #app #finance-tab-content .dist-label-row > :last-child { text-align:right; overflow-wrap:anywhere; }
}
@media screen and (max-width:1100px) {
  #app #finance-tab-content .finance-kpi-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #app #finance-tab-content .stat-card-premium:nth-child(2n+1) { border-inline-start:0; }
  #app #finance-tab-content .stat-card-premium:nth-child(n+3) { border-block-start:1px solid var(--line); }
  #app #finance-tab-content .stat-card-premium:last-child { grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; }
  #app #finance-tab-content .stat-card-premium:last-child .stat-card-head { margin:0; min-height:0; }
  #app #finance-tab-content .charts-grid { grid-template-columns:minmax(0,1fr); }
}
@media screen and (max-width:380px) {
  #app #finance-tab-content .stat-card-value { font-size:20px; }
  #app #finance-tab-content .dist-label-row { grid-template-columns:minmax(0,1fr); gap:2px; }
  #app #finance-tab-content .dist-label-row > :last-child { text-align:left; }
}
