:root{--ui-radius:14px;--ui-shadow:0 8px 24px rgba(15,23,42,.07);--ui-border:#e2e8f0;--ui-muted:#64748b;--ui-focus:#2563eb}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{min-width:0;overflow-x:hidden}
main,.content,.page-content,.s10-content{min-width:0}
.panel,.card,.doc-card,.stats8 article{border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow)}
.panel h1,.panel h2,.panel h3,.card h1,.card h2,.card h3{line-height:1.2}
input,select,textarea,button,.btn{font:inherit}
input,select,textarea{min-height:44px;border-radius:10px;border:1px solid #cbd5e1;background:#fff;transition:border-color .18s,box-shadow .18s,background .18s}
textarea{min-height:110px;resize:vertical}
input:hover,select:hover,textarea:hover{border-color:#94a3b8}
input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid rgba(37,99,235,.18);outline-offset:2px;border-color:var(--ui-focus)}
button,.btn{min-height:42px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:700;transition:transform .12s,box-shadow .18s,opacity .18s}
button:hover,.btn:hover{transform:translateY(-1px)}
button:active,.btn:active{transform:none}
button[disabled],.btn[aria-disabled="true"]{opacity:.55;pointer-events:none}
.alert{border-radius:12px;padding:12px 14px;margin:12px 0;font-weight:600}
.alert.success{background:#ecfdf5;color:#166534;border:1px solid #bbf7d0}.alert.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.alert.warning{background:#fffbeb;color:#92400e;border:1px solid #fde68a}
.actions,.toolbar,.filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.actions>.btn,.actions>button{white-space:nowrap}
.kpi-grid,.stats,.stats8{align-items:stretch}
.kpi-grid>* ,.stats>* ,.stats8>*{min-height:104px}
.table-wrap,.responsive-table,.table-responsive{max-width:100%;overflow:auto;border-radius:12px;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:separate;border-spacing:0}
thead th{position:sticky;top:0;z-index:2;background:#f8fafc}
tbody tr{transition:background .14s}tbody tr:hover{background:#f8fafc}
.ui-empty{padding:34px 20px;text-align:center;color:var(--ui-muted);background:#fff;border:1px dashed #cbd5e1;border-radius:12px}
.ui-loading{position:relative;pointer-events:none;opacity:.72}.ui-loading:after{content:"";position:absolute;right:12px;top:50%;width:16px;height:16px;margin-top:-8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ui-spin .7s linear infinite}
@keyframes ui-spin{to{transform:rotate(360deg)}}
.ui-toast-stack{position:fixed;right:16px;bottom:16px;z-index:9999;display:grid;gap:10px;max-width:min(360px,calc(100vw - 32px))}.ui-toast{background:#0f172a;color:#fff;padding:13px 16px;border-radius:12px;box-shadow:0 16px 40px rgba(15,23,42,.25);animation:ui-in .2s ease}.ui-toast.success{background:#166534}.ui-toast.error{background:#991b1b}@keyframes ui-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:900px){.page-header,.docs-top{align-items:flex-start}.actions,.toolbar,.filters{width:100%}.filters>*{flex:1 1 180px;min-width:0}.kpi-grid,.stats,.stats8{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:640px){body{font-size:14px}.panel,.card,.doc-card{border-radius:12px}.panel{padding:14px!important}.kpi-grid,.stats,.stats8{grid-template-columns:1fr!important}.actions>.btn,.actions>button{flex:1 1 auto}.filters{display:grid!important;grid-template-columns:1fr!important}.filters>*{width:100%!important;min-width:0!important}.table-wrap table,.responsive-table table,.table-responsive table{min-width:680px}.docs-shell{padding:10px!important}.page-header h1,.docs-top h1{font-size:1.45rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media print{aside,.sidebar,.topbar,.s10-topbar,.actions,.toolbar,.filters,.s10-mobile-nav,.sidebar-toggle{display:none!important}.app-shell,.s10-layout,.content,.s10-content{display:block!important;margin:0!important;width:100%!important}.panel,.card{box-shadow:none!important;break-inside:avoid}}

/* Reparación UI 8.3.8: menú universal y bloqueo de desbordamiento */
html,body{max-width:100%;overflow-x:hidden}
.app-shell,.workspace,.workspace>main,.v4-page{min-width:0;max-width:100%}
@media(max-width:980px){
 #fibeUniversalMenuBtn{display:inline-flex!important;position:relative!important;left:auto!important;top:auto!important;z-index:1305!important}
 #appSidebar{display:flex!important;position:fixed!important;left:0!important;top:0!important;bottom:0!important;width:min(320px,86vw)!important;max-width:86vw!important;transform:translate3d(-105%,0,0)!important;visibility:hidden!important;pointer-events:none!important;transition:transform .22s ease!important;z-index:1304!important}
 #appSidebar.mobile-open{transform:translate3d(0,0,0)!important;visibility:visible!important;pointer-events:auto!important}
 #fibeUniversalOverlay,#sidebarOverlay{position:fixed!important;inset:0!important;z-index:1303!important;background:rgba(15,27,51,.52)!important}
 body.fibe-sidebar-open,html.fibe-sidebar-open{overflow:hidden!important}
 .workspace>header{overflow:visible!important}
}
