/* OPS Final Uniform UI v20260615b
   Capa final de cierre visual compacta.
   Regla aplicada: no agrandar componentes; bajar al formato compacto común y dejar que módulos con reglas más pequeñas conserven su tamaño. */
:root{
  --ops-page-max:1480px;
  --ops-gap-xs:4px;
  --ops-gap-sm:5px;
  --ops-gap-md:6px;
  --ops-card-pad:10px;
  --ops-card-radius:14px;
  --ops-touch:30px;
  --ops-control-h:30px;
  --ops-control-radius:9px;
  --ops-control-py:4px;
  --ops-control-px:7px;
  --ops-control-font:.74rem;
  --ops-button-font:.74rem;
  --ops-control-gap:5px;
  --ops-topbar-z:80;
}
html,body{max-width:100%;overflow-x:hidden}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,video,canvas,svg,iframe{max-width:100%}
iframe{border:0}

/* Layout común */
.ops-shell-toponly{grid-template-columns:1fr!important}
.ops-main-full{width:min(100%,var(--ops-page-max));margin-inline:auto;min-width:0}
.ops-main,.ops-shell,.ops-page-grid,.panel,.card,.table-wrap,.ops-table-wrap{min-width:0}
.ops-global-topbar{position:sticky;top:0;z-index:var(--ops-topbar-z);margin:0 0 7px!important;padding:6px 0 7px!important;background:var(--bg);border-bottom:1px solid rgba(148,163,184,.12)}
.ops-global-left,.ops-global-actions{min-width:0}
.ops-global-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:nowrap}
.ops-title-stack{min-width:0}.ops-page-mini,.ops-top-subtitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:52vw}
.ops-page-mini{font-size:.68rem!important;letter-spacing:.05em!important}.ops-top-subtitle{font-size:.66rem!important;color:var(--muted)}
.ops-menu-trigger,.ops-user-mini,.ops-sync-pill{min-height:30px!important;border-radius:9px!important}
.ops-menu-trigger{display:inline-flex;align-items:center;gap:5px;padding:4px 7px!important;background:var(--panel-3);border:1px solid var(--line);color:var(--text)}
.ops-menu-trigger strong{font-size:.72rem!important}.ops-user-mini{display:inline-flex;align-items:center;padding:4px 7px!important;white-space:nowrap;font-size:.70rem!important}
.ops-sync-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 7px!important;font-size:.68rem!important;white-space:nowrap}
.ops-dropdown-menu{max-width:min(92vw,360px);max-height:min(78vh,620px);overflow:auto;-webkit-overflow-scrolling:touch;z-index:120!important}
.ops-global-menu{left:0;right:auto;min-width:min(92vw,330px)}
.ops-menu-section-title,.ops-menu-link,.ops-dropdown-link{min-height:31px!important;padding:7px 9px!important;font-size:.74rem!important}
.ops-menu-section-links{display:grid;gap:3px}

/* Paneles/tarjetas: misma silueta y menos aire sin borrar identidad de cada módulo */
:where(.panel,.compact-panel,.stat-card,.card,.oa-card,.fc-card,.fp-card,.fr-card,.aliclick-card,.b-card,.afo-card,.client-ops-card){
  border-radius:var(--ops-card-radius)!important;
  box-shadow:0 6px 18px rgba(0,0,0,.16)!important;
}
:where(.panel,.compact-panel,.stat-card,.card,.oa-card,.fc-card,.fp-card,.fr-card,.aliclick-card,.b-card,.afo-card,.client-ops-card){padding:var(--ops-card-pad)!important}
:where(h1,h2,h3){line-height:1.12;margin-top:0}:where(h1){font-size:1.02rem}:where(h2){font-size:.94rem}:where(h3){font-size:.88rem}
:where(p){line-height:1.34}:where(.ops-small,small,.mini,.muted,.ops-muted){line-height:1.24}
:where(label > span,.field-head,.choice-inline-title,.stat-label,.oa-mini,.ops-muted,small){font-size:.62rem!important}
:where(.section-head,.oa-card-head,.fp-card-head,.fc-card-head,.fr-card-head,.aliclick-section-head){gap:6px!important;margin-bottom:6px!important}

/* Formularios y botones */
:where(input,select,textarea,button,.btn){max-width:100%}
:where(input[type=text],input[type=password],input[type=date],input[type=number],input[type=email],input[type=datetime-local],input[type=time],input[type=search],input[type=tel],input[type=url],select){height:auto!important;min-height:var(--ops-touch)!important}
:where(textarea){min-height:62px!important}
:where(.form-grid,.filters-grid,.op-row,.oa-form,.oa-filter,.fp-filters,.fc-filters,.aliclick-form,.toolbar,.actions,.form-actions){gap:var(--ops-gap-md)!important}
:where(.btn,button.btn,a.btn,.btn-compact,.seg-btn,.dropdown-action){min-height:var(--ops-touch)!important;white-space:nowrap}
:where(.btn-sm,.btn-xs,.mini-icon-btn){min-height:28px!important}
:where(.actions,.toolbar,.form-actions,.ops-top-actions,.oa-actions,.aliclick-button-row,.fp-bulk-actions,.fc-actions){display:flex;gap:5px;align-items:center;flex-wrap:wrap}
:where(.actions,.toolbar,.form-actions,.ops-top-actions,.oa-actions,.aliclick-button-row,.fp-bulk-actions,.fc-actions) :where(.btn,button.btn,a.btn){width:auto!important;flex:0 0 auto}
:where(details)>summary{cursor:pointer;touch-action:manipulation}

/* Tablas: scroll controlado y tipografía compacta */
:where(.table-wrap,.ops-table-wrap,.oa-table-wrap,.fr-table-wrap,.fc-table-wrap,.fp-table-wrap){width:100%;max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}
:where(table){max-width:100%;border-spacing:0}
:where(th,td){vertical-align:top;overflow-wrap:anywhere}
:where(.table th,.table td,.oa-table th,.oa-table td,.fr-table th,.fr-table td,.fc-table th,.fc-table td){padding:6px 6px!important;font-size:.74rem!important;line-height:1.18!important}
:where(.table th,.oa-table th,.fr-table th,.fc-table th){position:sticky;top:0;z-index:2}

/* Modales e iframes internos */
:where(.ops-frame-modal__dialog,.oa-modal-card,.fr-modal-card,.fc-modal-card,.fp-modal-card){width:min(96vw,980px)!important;max-height:92vh!important;border-radius:14px!important}
:where(.ops-frame-modal__frame){width:100%;min-height:min(76vh,720px)}
:where(.modal-page){background:var(--bg)!important}

/* Pantallas sueltas/legacy */
body.cliente-embed,body.modal-page{padding:7px!important;overflow-x:hidden!important}
body.cliente-embed .client-ops-card{margin:0 auto!important;width:min(100%,960px)!important}
.login-card{padding:16px!important;border-radius:18px!important}.login-wrap{width:min(100%,390px)!important}

/* Facturación portal: nuevo filtro de facturadora sin agrandar la barra */
.facturacion-page-v83 .fp-filter-row-controls{grid-template-columns:15fr 14fr 9fr 14fr 14fr 14fr 16fr!important}
.facturacion-page-v83 .fp-filter-biller select{font-weight:750!important}

@media(max-width:900px){
  .ops-main-full{padding-inline:8px!important}
  :where(.stats-grid){grid-template-columns:repeat(2,minmax(0,1fr))!important}
  :where(.form-grid.cols-2,.filters-grid){grid-template-columns:repeat(2,minmax(0,1fr))!important}
  :where(.filter-actions){grid-column:1/-1!important;justify-content:flex-start!important}
  .facturacion-page-v83 .fp-filter-row-controls{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .facturacion-page-v83 .fp-filter-table,.facturacion-page-v83 .fp-filter-order,.facturacion-page-v83 .fp-filter-count,.facturacion-page-v83 .fp-filter-biller,.facturacion-page-v83 .fp-filter-doc,.facturacion-page-v83 .fp-filter-type,.facturacion-page-v83 .fp-filter-status{grid-column:auto!important;grid-row:auto!important}
}

@media(max-width:760px){
  :root{--ops-card-pad:8px;--ops-card-radius:12px;--ops-touch:30px;--ops-control-h:30px;--ops-control-py:4px;--ops-control-px:6px;--ops-control-font:.70rem;--ops-button-font:.70rem}
  .ops-main,.ops-main-full{padding:6px 7px calc(var(--bottom-nav,78px) + 10px)!important;width:100%!important;max-width:100%!important}
  .ops-global-topbar{padding:5px 0 6px!important;margin-bottom:6px!important}
  .ops-topbar,.ops-topbar-single{align-items:center!important;gap:5px!important}
  .ops-global-left{display:flex;align-items:center;gap:5px;min-width:0;flex:1 1 auto}
  .ops-global-actions{flex:0 0 auto;gap:4px}
  .ops-page-mini{font-size:.62rem!important;max-width:45vw}
  .ops-top-subtitle{display:none}
  .ops-menu-trigger strong{display:none}.ops-menu-trigger{padding-inline:7px!important;min-width:30px;justify-content:center}
  .ops-sync-pill{display:none!important}
  .ops-user-mini{max-width:88px;overflow:hidden;text-overflow:ellipsis;font-size:.66rem!important}
  .ops-dropdown-menu{position:fixed!important;left:7px!important;right:7px!important;top:44px!important;bottom:auto!important;min-width:0!important;width:auto!important}
  .ops-dropdown-menu-user{left:auto!important;right:7px!important;width:min(72vw,255px)!important}
  :where(.panel,.compact-panel,.stat-card,.card,.oa-card,.fc-card,.fp-card,.fr-card,.aliclick-card,.b-card,.afo-card,.client-ops-card){margin-bottom:7px!important}
  :where(.section-head,.oa-top,.fp-toolbar,.fc-toolbar,.fr-toolbar,.aliclick-section-head){display:flex!important;align-items:flex-start!important;gap:6px!important;flex-wrap:wrap!important}
  :where(.stats-grid,.form-grid.cols-2,.filters-grid,.detail-grid,.oa-form,.oa-filter,.fp-filters,.fc-filters){grid-template-columns:1fr!important}
  :where(.filter-actions,.full-row,.full){grid-column:1/-1!important}
  :where(.actions,.toolbar,.form-actions,.ops-top-actions,.oa-actions,.aliclick-button-row,.fp-bulk-actions,.fc-actions){gap:4px!important}
  :where(.actions,.toolbar,.form-actions,.ops-top-actions,.oa-actions,.aliclick-button-row,.fp-bulk-actions,.fc-actions) :where(.btn,button.btn,a.btn){width:auto!important;min-width:0!important;padding-inline:8px!important}
  :where(.btn,button.btn,a.btn,.seg-btn){font-size:.70rem!important}
  :where(.table,.oa-table,.fr-table,.fc-table){min-width:650px}
  :where(.operations-table){min-width:740px!important}
  :where(.table th,.table td,.oa-table th,.oa-table td,.fr-table th,.fr-table td,.fc-table th,.fc-table td){font-size:.70rem!important;padding:6px 5px!important}
  :where(.hide-mobile,.desktop-only){display:none!important}
  body.login-body{padding:12px!important}.login-card{padding:14px!important}
}

@media(max-width:520px){
  .facturacion-page-v83 .fp-filter-row-controls{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:430px){
  .ops-main,.ops-main-full{padding-inline:6px!important}
  :where(.panel,.compact-panel,.stat-card,.card,.oa-card,.fc-card,.fp-card,.fr-card,.aliclick-card,.b-card,.afo-card,.client-ops-card){padding:7px!important}
  .ops-page-mini{max-width:42vw}
  .ops-user-mini{max-width:78px}
  :where(.btn,button.btn,a.btn,.seg-btn){padding-inline:7px!important}
}

@media print{
  .ops-global-topbar,.ops-frame-backdrop,.ops-frame-modal,.ops-bottom-nav,.no-print{display:none!important}
  .ops-main,.ops-main-full{padding:0!important;width:100%!important;max-width:100%!important}
  body{background:#fff!important;color:#111!important}
}


/* v20260620-topbar-mobile-no-overlay
   El topbar global es fijo por ops-components-cierre.css.
   La capa final anterior volvía a poner padding-top pequeño en móviles y por eso el menú tapaba el inicio de la hoja.
   Esta regla es la última fuente de verdad: deja espacio real para el topbar fijo en todo el proyecto sin duplicar padding en el contenedor padre. */
.ops-shell-toponly{
  padding-top:0!important;
}
.ops-main-full{
  padding-top:calc(var(--ops-fixed-topbar-space,72px) + 10px)!important;
}
.ops-main-full > .ops-global-topbar{
  margin-top:0!important;
}
@media(max-width:760px){
  .ops-main-full{
    padding-top:calc(var(--ops-fixed-topbar-space,78px) + 8px)!important;
  }
}
@media(max-width:390px){
  .ops-main-full{
    padding-top:calc(var(--ops-fixed-topbar-space,72px) + 8px)!important;
  }
}
