/* OPS v58 · SUBPRINCIPAL 2: componentes reutilizables.
   Ningún módulo nuevo debe inventar colores: debe usar estas clases/tokens. */
html,body{background:var(--bg);color:var(--text)}
.ops-main input[type=text],.ops-main input[type=password],.ops-main input[type=number],.ops-main input[type=email],.ops-main input[type=datetime-local],.ops-main input[type=time],.ops-main input[type=search],.ops-main select,.ops-main textarea{min-height:var(--ops-control-h)!important;padding:6px 8px!important;font-size:var(--ops-control-font)!important;border-radius:var(--ops-control-radius)!important;background:var(--panel-3)!important;border:1px solid var(--line)!important;color:var(--text)!important}.ops-main input[type=date],.ops-main input[type=month]{height:var(--ops-date-h)!important;min-height:var(--ops-date-h)!important;padding:3px 7px!important;font-size:.8rem!important;border-radius:var(--ops-control-radius)!important;background:var(--panel-3)!important;border:1px solid var(--line)!important;color:var(--text)!important}.ops-main input:focus,.ops-main select:focus,.ops-main textarea:focus{border-color:rgba(78,167,255,.55)!important;box-shadow:0 0 0 3px rgba(78,167,255,.14)!important}.ops-main label{gap:3px!important;font-size:.78rem!important}.panel,.stat-card,.compact-panel{background:var(--panel)!important;border:1px solid var(--line)!important;border-radius:var(--radius)!important;box-shadow:var(--shadow-panel)!important;color:var(--text)!important}.btn,.ops-main button.btn,.ops-main .seg-btn,.ops-main .mini-icon-btn,.ops-main .op-chip{min-height:var(--ops-btn-h)!important;padding:6px 10px!important;font-size:.82rem!important;border-radius:var(--ops-control-radius)!important;border:1px solid var(--line)!important;font-weight:800!important;box-shadow:var(--shadow-soft)!important}.btn-primary,button.btn-primary{background:linear-gradient(135deg,var(--brand),var(--primary-2))!important;color:#fff!important;border-color:transparent!important}.btn-secondary,button.btn-secondary,.btn-outline,.action-icon,.action-mini-btn,.cierre-icon-btn{background:linear-gradient(135deg,rgba(51,65,85,.96),rgba(15,23,42,.98))!important;color:#eaf2ff!important;border:1px solid rgba(148,163,184,.22)!important}.btn-danger,.danger-link,.clear-draft-btn{color:#fff!important;background:linear-gradient(135deg,var(--danger),#7f1d1d)!important}.alert-success{background:rgba(88,194,118,.14)!important;border-color:rgba(88,194,118,.35)!important}.alert-danger{background:rgba(231,143,143,.14)!important;border-color:rgba(231,143,143,.35)!important}.table th{background:var(--panel)!important}.table th,.table td{border-color:var(--line)!important}.ops-global-topbar{background:var(--ops-topbar-bg)!important;border:1px solid var(--line)!important;border-radius:18px!important;box-shadow:var(--shadow-panel)!important;backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important}.ops-menu-trigger{background:linear-gradient(135deg,#263244,#111827)!important;color:#eaf2ff!important;border:1px solid rgba(148,163,184,.26)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 8px 18px rgba(2,6,23,.22)!important}.ops-menu-trigger:hover,.ops-menu-trigger:focus-visible{background:linear-gradient(135deg,#334155,#1e293b)!important;border-color:rgba(147,197,253,.36)!important}.ops-menu-section{background:var(--panel-3)!important;border-color:var(--line)!important}.ops-menu-section.is-active{border-color:rgba(78,167,255,.48)!important;box-shadow:inset 3px 0 0 var(--primary)!important}.ops-menu-link:hover,.ops-menu-link.is-active{background:var(--panel-2)!important;border-color:var(--line)!important;color:var(--text)!important}.ops-rail-brand{background:linear-gradient(135deg,var(--brand),#1e293b)!important}.login-brand{background:rgba(78,167,255,.14)!important;color:#bfdbfe!important}.ops-login-badge{background:rgba(88,194,118,.14)!important;border-color:rgba(88,194,118,.35)!important;color:#c6ffd3!important}.ops-card-grid,.ops-list-grid{display:grid;gap:8px}.ops-list-row{border:1px solid var(--line);border-radius:14px;background:var(--ops-row-bg);padding:8px;color:var(--text)}.ops-mini-label{font-size:.56rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.ops-chip{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);background:var(--panel-3);color:var(--text);font-size:.58rem;font-weight:800}.ops-chip.is-success{border-color:rgba(88,194,118,.42);color:#c6ffd3}.ops-chip.is-warning{border-color:rgba(241,184,75,.44);color:#ffe4a6}.ops-chip.is-info{border-color:rgba(78,167,255,.44);color:#bfdbfe}.ops-chip.is-muted{color:var(--muted)}.stat-value.up,.line-diff.up{color:var(--success)!important}.stat-value.down,.line-diff.down{color:var(--danger)!important}body[data-theme="light"] .btn-secondary,body.theme-light .btn-secondary,body[data-theme="light"] .action-icon,body.theme-light .action-icon,body[data-theme="light"] .cierre-icon-btn,body.theme-light .cierre-icon-btn{background:linear-gradient(135deg,#ffffff,#e8eef6)!important;color:#0f172a!important;border-color:#cbd5e1!important}body[data-theme="light"] .ops-menu-trigger,body.theme-light .ops-menu-trigger{background:linear-gradient(135deg,#ffffff,#e8eef6)!important;color:#0f172a!important;border-color:#cbd5e1!important}body[data-theme="light"] input,body[data-theme="light"] select,body[data-theme="light"] textarea,body.theme-light input,body.theme-light select,body.theme-light textarea{background:#f8fafc!important;color:#0f172a!important;border-color:#cbd5e1!important}@media(max-width:520px){:root{--ops-control-h:32px;--ops-date-h:29px;--ops-btn-h:32px;--ops-control-font:.78rem}.ops-main .btn,.ops-main button.btn,.ops-main .seg-btn{font-size:.78rem!important;padding:5px 8px!important}}

.report-shortcut-card:hover{border-color:rgba(78,167,255,.55)!important}.choice-box,.choice-inline-box,.commission-row{background:var(--panel-3)!important}.segmented a{background:var(--panel-3)!important;border-color:var(--line)!important}.segmented a.is-active{background:var(--panel-2)!important;color:var(--text)!important;border-color:rgba(78,167,255,.42)!important}

/* OPS v64 · COMPONENTE GLOBAL ÚNICO: topbar fijo
   Fuente de verdad del topbar para todo OPS. No repetir posición del topbar en hojas internas. */
:root{
  --ops-fixed-topbar-top:6px;
  --ops-fixed-topbar-x:8px;
  --ops-fixed-topbar-space:72px;
}
.ops-shell,
.ops-shell-toponly,
.ops-main,
.ops-main-full{overflow:visible!important}
.ops-main,
.ops-main-full{padding-top:calc(var(--ops-fixed-topbar-space) + 10px)!important}
.ops-global-topbar,
.ops-main-full > .ops-global-topbar{
  position:fixed!important;
  top:var(--ops-fixed-topbar-top)!important;
  left:var(--ops-fixed-topbar-x)!important;
  right:var(--ops-fixed-topbar-x)!important;
  width:auto!important;
  max-width:none!important;
  z-index:5000!important;
  margin:0!important;
  background:var(--ops-topbar-bg)!important;
  border:1px solid var(--line)!important;
  box-shadow:0 12px 30px rgba(0,0,0,.28)!important;
  backdrop-filter:blur(14px)!important;
  -webkit-backdrop-filter:blur(14px)!important;
}
.ops-global-topbar .ops-dropdown-menu,
.ops-dropdown-menu,
.ops-global-menu,
.ops-global-dropdown .ops-dropdown-menu,
.ops-user-dropdown .ops-dropdown-menu{z-index:5100!important}
.ops-frame-modal,
.ops-frame-backdrop{z-index:5200!important}
body[data-theme="light"] .ops-global-topbar,
body.theme-light .ops-global-topbar{box-shadow:0 12px 30px rgba(15,23,42,.13)!important}
@media(max-width:760px){
  :root{
    --ops-fixed-topbar-top:4px;
    --ops-fixed-topbar-x:6px;
    --ops-fixed-topbar-space:78px;
  }
  .ops-main,.ops-main-full{padding-top:calc(var(--ops-fixed-topbar-space) + 8px)!important}
}
