/* ===== AUSAPE V8.2 · QA visual, rendimiento y anti-solape global ===== */
:root{
  --v82-primary: var(--primary, #009fe3);
  --v82-navy: #003b5c;
  --v82-ink: #0d2638;
  --v82-muted: #60758a;
  --v82-line: #d8edf8;
  --v82-soft: #f4fbff;
  --v82-card: rgba(255,255,255,.92);
  --v82-shadow: 0 22px 70px rgba(0,88,130,.13);
  --v82-shadow-soft: 0 12px 38px rgba(0,88,130,.10);
  --v82-radius: 24px;
  --v82-fast: 170ms;
  --v82-med: 280ms;
}
html{scroll-behavior:smooth;background:#eaf8ff;}
body{background:radial-gradient(circle at 16% 0%,rgba(0,159,227,.17),transparent 31%),linear-gradient(135deg,#f7fdff 0,#eef9ff 42%,#ffffff 100%)!important;color:var(--v82-ink);}
body.v82-no-motion *, body.v82-no-motion *::before, body.v82-no-motion *::after{animation:none!important;transition:none!important;}
body.v82-compact{--v82-radius:18px;}
body.v82-compact .card{padding:16px!important;}
body.v82-compact .kpi b{font-size:clamp(24px,2.2vw,38px)!important;}
body.v82-compact th,body.v82-compact td{padding:9px 10px!important;}
.app{min-height:100vh;isolation:isolate;}
.sidebar{background:linear-gradient(180deg,#003b5c 0%,#006b9d 52%,#009fe3 140%)!important;color:#fff!important;border-right:1px solid rgba(255,255,255,.22)!important;box-shadow:22px 0 80px rgba(0,68,100,.18)!important;overflow-y:auto;overflow-x:hidden;}
.sidebar::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 4%,rgba(255,255,255,.22),transparent 30%),radial-gradient(circle at 90% 74%,rgba(255,255,255,.12),transparent 36%);pointer-events:none;}
.sidebar .brand,.sidebar .nav,.sidebar .sidebox{position:relative;z-index:1;}
.sidebar .brand{background:rgba(255,255,255,.96)!important;border:1px solid rgba(255,255,255,.95)!important;border-radius:26px!important;box-shadow:0 18px 50px rgba(0,40,70,.18)!important;color:var(--v82-navy)!important;min-width:0;}
.sidebar .brand h1{color:var(--v82-navy)!important;font-weight:950!important;letter-spacing:-.035em;white-space:normal!important;overflow-wrap:anywhere;}
.sidebar .brand p{color:#49687d!important;font-weight:700!important;}
.sidebar-logo{max-width:100%;height:auto;object-fit:contain;}
.nav{display:grid!important;gap:8px!important;padding-bottom:18px;}
.nav button{position:relative;display:flex!important;align-items:center;gap:10px;width:100%;min-height:42px;padding:11px 14px!important;border-radius:16px!important;color:rgba(255,255,255,.94)!important;background:rgba(255,255,255,.10)!important;border:1px solid rgba(255,255,255,.16)!important;text-align:left;font-weight:850!important;letter-spacing:-.01em;box-shadow:none!important;backdrop-filter:blur(10px);transition:transform var(--v82-fast) ease,background var(--v82-fast) ease,border-color var(--v82-fast) ease,box-shadow var(--v82-fast) ease!important;}
.nav button:hover{transform:translateX(4px);background:rgba(255,255,255,.18)!important;border-color:rgba(255,255,255,.34)!important;box-shadow:0 12px 28px rgba(0,42,72,.16)!important;}
.nav button.active{background:linear-gradient(135deg,#fff,#eaf8ff)!important;color:var(--v82-navy)!important;border-color:#fff!important;box-shadow:0 14px 36px rgba(0,58,92,.22)!important;}
.nav button.active::after{content:"";position:absolute;right:12px;width:8px;height:8px;border-radius:999px;background:var(--v82-primary);box-shadow:0 0 0 7px rgba(0,159,227,.13);}
.sidebox{background:rgba(255,255,255,.14)!important;color:#fff!important;border:1px solid rgba(255,255,255,.24)!important;border-radius:20px!important;box-shadow:0 16px 40px rgba(0,40,70,.14)!important;}
.sidebox b,.sidebox span{color:#fff!important;text-shadow:0 1px 0 rgba(0,0,0,.12);}
.main{min-width:0;overflow-x:hidden;}
.topbar{position:sticky;top:0;z-index:30;display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;background:rgba(247,253,255,.84)!important;backdrop-filter:blur(18px);border-bottom:1px solid rgba(0,159,227,.18);box-shadow:0 12px 34px rgba(0,80,130,.08);}
.topbar h2{font-size:clamp(24px,2.1vw,38px)!important;line-height:1.05;color:var(--v82-ink);}
.topbar p{max-width:100%;overflow-wrap:anywhere;}
.top-actions{display:flex!important;flex-wrap:wrap!important;justify-content:flex-end!important;align-items:center!important;gap:10px!important;min-width:0;}
.session-card{min-width:210px;max-width:330px;overflow:hidden;}
.session-card img{object-fit:contain;}
.session-card b,.session-card span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.section{opacity:0;transform:translateY(10px) scale(.995);transition:opacity var(--v82-med) ease,transform var(--v82-med) ease;}
.section.active{opacity:1;transform:none;animation:v82SectionIn .34s cubic-bezier(.2,.8,.2,1);}
@keyframes v82SectionIn{from{opacity:.35;transform:translateY(12px) scale(.992);filter:blur(4px)}to{opacity:1;transform:none;filter:blur(0)}}
.card{position:relative;min-width:0;background:var(--v82-card)!important;border:1px solid rgba(0,159,227,.16)!important;border-radius:var(--v82-radius)!important;box-shadow:var(--v82-shadow-soft)!important;transition:transform var(--v82-fast) ease,box-shadow var(--v82-fast) ease,border-color var(--v82-fast) ease;overflow:visible;}
.card:hover{box-shadow:var(--v82-shadow)!important;border-color:rgba(0,159,227,.30)!important;}
.kpi{overflow:hidden!important;}
.kpi::before,.card::before{pointer-events:none;}
.kpi b{font-size:clamp(26px,3vw,50px)!important;line-height:1!important;white-space:normal!important;word-break:break-word;}
.kpi span,.kpi small{overflow-wrap:anywhere;}
.grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))!important;gap:18px!important;align-items:stretch;}
.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
.grid.main-dash{grid-template-columns:minmax(0,1.55fr) minmax(320px,.85fr)!important;align-items:stretch!important;}
.grid.kpis{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))!important;}
@media(max-width:1180px){.app{grid-template-columns:minmax(240px,280px) minmax(0,1fr)!important}.grid.two,.grid.main-dash{grid-template-columns:1fr!important}.topbar{grid-template-columns:1fr!important}.top-actions{justify-content:flex-start!important}.session-card{max-width:100%;}}
@media(max-width:860px){.app{display:block!important}.sidebar{position:relative!important;width:100%!important;max-height:none!important}.main{padding:14px!important}.nav{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));}.topbar{position:relative!important;border-radius:0 0 22px 22px;}.actions{justify-content:flex-start!important}.modal-panel{width:calc(100vw - 24px)!important;}}
.section-title{display:flex!important;gap:16px!important;align-items:flex-start!important;justify-content:space-between!important;flex-wrap:wrap!important;}
.section-title>div:first-child{min-width:min(100%,360px);}
.actions{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:10px!important;min-width:0;}
.btn,button,.mini,label.btn{min-height:38px;max-width:100%;white-space:normal!important;overflow-wrap:anywhere;transition:transform var(--v82-fast) ease,box-shadow var(--v82-fast) ease,filter var(--v82-fast) ease!important;}
.btn:hover,button:hover,label.btn:hover{transform:translateY(-1px);filter:saturate(1.04);}
.btn:active,button:active,label.btn:active{transform:translateY(0) scale(.99);}
.filters{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))!important;gap:10px!important;align-items:end!important;}
.input,input,select,textarea{max-width:100%;border-radius:14px!important;transition:border-color var(--v82-fast) ease,box-shadow var(--v82-fast) ease,background var(--v82-fast) ease!important;}
input:focus,select:focus,textarea:focus{outline:none!important;border-color:var(--v82-primary)!important;box-shadow:0 0 0 4px rgba(0,159,227,.14)!important;}
.v82-filter-active{border-color:var(--v82-primary)!important;background:linear-gradient(180deg,#fff,#f1fbff)!important;box-shadow:0 0 0 3px rgba(0,159,227,.10)!important;}
.tablewrap{width:100%;max-width:100%;overflow:auto!important;border-radius:18px;scrollbar-gutter:stable;}
table{min-width:max-content;width:100%;}
th{position:sticky;top:0;z-index:2;}
th,td{vertical-align:top;overflow-wrap:anywhere;}
.table-head{gap:10px;flex-wrap:wrap;}
canvas{max-width:100%;height:auto;}
.map-card{overflow:hidden!important;}
.map-card canvas{display:block;width:100%!important;}
.modal{z-index:5000!important;}
.modal-panel{max-width:min(980px,calc(100vw - 32px))!important;max-height:calc(100vh - 32px)!important;overflow:hidden!important;border-radius:26px!important;box-shadow:0 30px 120px rgba(0,52,82,.30)!important;}
.modal-body{overflow:auto!important;max-height:calc(100vh - 180px)!important;padding-right:4px;}
.modal-actions{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(255,255,255,.82),#fff);backdrop-filter:blur(10px);}
.v82-module-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;margin:0 0 14px;padding:10px;border:1px solid rgba(0,159,227,.15);border-radius:18px;background:rgba(255,255,255,.72);box-shadow:0 10px 28px rgba(0,80,130,.07);}
.v82-module-toolbar .mini{background:#eaf8ff!important;color:var(--v82-navy)!important;border:1px solid #d4ecf8!important;font-weight:900!important;}
.v82-transition{position:fixed;inset:0;z-index:4500;display:grid;place-items:center;pointer-events:none;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.82),rgba(235,249,255,.52) 44%,rgba(0,80,130,.10));backdrop-filter:blur(7px);opacity:0;transition:opacity 160ms ease;}
.v82-transition.show{opacity:1;}
.v82-transition-card{display:grid;gap:16px;place-items:center;padding:28px 34px;border-radius:30px;background:rgba(255,255,255,.92);border:1px solid rgba(0,159,227,.20);box-shadow:0 30px 90px rgba(0,80,130,.20);transform:translateY(8px) scale(.98);transition:transform 220ms ease;}
.v82-transition.show .v82-transition-card{transform:none;}
.v82-transition-card img{width:min(260px,58vw);height:auto;object-fit:contain;}
.v82-transition-card b{color:var(--v82-navy);font-size:18px;letter-spacing:-.02em;}
.v82-bar{width:min(260px,58vw);height:6px;border-radius:999px;background:#dff3fc;overflow:hidden;}
.v82-bar span{display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--v82-primary),#6ec7e8,#003b5c);animation:v82Load .62s ease-in-out infinite alternate;}
@keyframes v82Load{from{transform:translateX(-45%)}to{transform:translateX(170%)}}
.v82-welcome{position:fixed;inset:0;z-index:4600;display:grid;place-items:center;pointer-events:none;background:radial-gradient(circle at 50% 35%,rgba(0,159,227,.14),transparent 40%);opacity:0;animation:v82Welcome 1.35s ease forwards;}
.v82-welcome>div{background:rgba(255,255,255,.94);border:1px solid rgba(0,159,227,.20);border-radius:34px;padding:34px 42px;text-align:center;box-shadow:0 30px 110px rgba(0,80,130,.22);max-width:min(720px,92vw);}
.v82-welcome img{width:min(300px,70vw);height:auto;margin-bottom:18px;}
.v82-welcome h2{font-size:clamp(28px,5vw,52px);line-height:1;margin:0;color:var(--v82-navy);letter-spacing:-.05em;}
.v82-welcome p{font-size:clamp(15px,2vw,20px);color:var(--v82-muted);font-weight:800;}
@keyframes v82Welcome{0%{opacity:0;transform:scale(.985);filter:blur(8px)}18%,78%{opacity:1;transform:none;filter:blur(0)}100%{opacity:0;transform:scale(1.01);filter:blur(8px)}}
.v82-admin-panel{display:grid;gap:14px;}
.v82-audit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;}
.v82-audit-card{border:1px solid var(--v82-line);background:#fff;border-radius:18px;padding:14px;}
.v82-audit-card small{display:block;color:var(--v82-muted);font-weight:950;text-transform:uppercase;font-size:10px;letter-spacing:.08em;}.v82-audit-card b{font-size:28px;color:var(--v82-navy);}
.v82-status-ok{color:#067842!important}.v82-status-warn{color:#b66a00!important}.v82-status-bad{color:#b00020!important}
@media print{.sidebar,.topbar,.no-print,.v82-module-toolbar,.v82-transition,.v82-welcome{display:none!important}.main{padding:0!important}.section{display:none!important}.section.active{display:block!important;opacity:1!important;transform:none!important}.card{box-shadow:none!important;border-color:#d8edf8!important;break-inside:avoid}@page{size:A4;margin:10mm}}
