/* AUSAPE V8.0 · Optimización global visual y responsive
   Capa no invasiva: solo mejora layout, animaciones y ergonomía sin bloquear login ni inputs. */
:root{
  --v80-primary: var(--primary, #0078d4);
  --v80-primary-2: #00a6df;
  --v80-accent: var(--accent, #f0b040);
  --v80-bg: #f4f8fc;
  --v80-surface: rgba(255,255,255,.88);
  --v80-surface-solid: #ffffff;
  --v80-ink: #102033;
  --v80-muted: #64748b;
  --v80-line: rgba(0,86,140,.14);
  --v80-shadow-sm: 0 10px 28px rgba(0,59,92,.08);
  --v80-shadow-md: 0 18px 48px rgba(0,59,92,.13);
  --v80-shadow-lg: 0 28px 80px rgba(0,59,92,.18);
  --v80-radius: 22px;
  --v80-radius-sm: 14px;
  --v80-speed: 220ms;
  --v80-ease: cubic-bezier(.22,1,.36,1);
  --v80-sidebar: 292px;
}

html{scroll-behavior:smooth}
body{
  background:
    radial-gradient(circle at 12% -8%, rgba(0,159,218,.22), transparent 34%),
    radial-gradient(circle at 88% 2%, rgba(240,176,64,.14), transparent 30%),
    linear-gradient(135deg,#eef7fc 0%,#f8fbff 48%,#eef6ff 100%) !important;
  color:var(--v80-ink);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
body.v80-density-compact{--v80-radius:18px;--v80-radius-sm:12px}
body.v80-density-compact .card{padding:16px!important}
body.v80-density-compact .section-title{margin-bottom:12px!important}
body.v80-density-compact tbody td{padding:9px!important}
body.v80-no-animations *,body.v80-no-animations *::before,body.v80-no-animations *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}

/* Layout anti-solape */
.app{grid-template-columns:minmax(250px,var(--v80-sidebar)) minmax(0,1fr)!important;min-height:100vh;max-width:100vw;overflow:hidden}
.sidebar{width:auto!important;min-width:0;overflow-y:auto;overflow-x:hidden;border-right:1px solid var(--v80-line)!important;background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(245,251,255,.88))!important;backdrop-filter:blur(18px);box-shadow:12px 0 42px rgba(0,59,92,.07)}
.main{min-width:0!important;overflow-x:hidden!important;padding-inline:clamp(18px,2.2vw,34px)!important}
.topbar{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;position:sticky;top:0;z-index:20;background:rgba(246,251,255,.78);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.6);border-radius:0 0 var(--v80-radius) var(--v80-radius);box-shadow:0 16px 38px rgba(0,59,92,.08);margin:-4px -4px 20px!important;padding:16px 18px!important}
.topbar h2,.topbar p{overflow-wrap:anywhere}.top-actions{justify-content:flex-end;align-items:center;min-width:0;flex-wrap:wrap}.session-card{max-width:100%;min-width:0}.session-card div{min-width:0}.session-card b,.session-card span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px;display:block}
.brand,.login-brand{min-width:0}.brand h1,.brand p,.login-brand h1,.login-brand p{overflow-wrap:anywhere}.sidebar-logo{filter:drop-shadow(0 8px 20px rgba(0,84,132,.12))}

.section{display:none!important;min-width:0}.section.active{display:block!important;animation:v80SectionIn var(--v80-speed) var(--v80-ease) both}.section>*{min-width:0}.grid,.two,.kpis,.main-dash,.mini-kpis,.formgrid,.colorgrid{min-width:0!important}.grid{display:grid!important;gap:clamp(14px,1.6vw,22px)!important}.grid.two,.two{grid-template-columns:repeat(2,minmax(0,1fr))!important}.kpis{grid-template-columns:repeat(auto-fit,minmax(185px,1fr))!important}.main-dash{grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr)!important;align-items:stretch}.card,.panel,.module-card,.hotel-card,.forum-card,.screen-card{min-width:0!important;max-width:100%;overflow:hidden;box-sizing:border-box;border-radius:var(--v80-radius)!important;background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(255,255,255,.82))!important;border:1px solid rgba(0,100,150,.12)!important;box-shadow:var(--v80-shadow-sm)!important;transition:transform var(--v80-speed) var(--v80-ease),box-shadow var(--v80-speed) var(--v80-ease),border-color var(--v80-speed) var(--v80-ease)}
.card:hover{transform:translateY(-2px);box-shadow:var(--v80-shadow-md)!important;border-color:rgba(0,159,218,.28)!important}.card.kpi{position:relative;isolation:isolate}.card.kpi::after{content:"";position:absolute;inset:auto -30px -50px auto;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(0,159,218,.15),transparent 68%);z-index:-1}.kpi b{font-variant-numeric:tabular-nums;letter-spacing:-.04em}.section-title{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:end}.section-title h3{margin-top:0}.actions,.filters,.toolbar{min-width:0!important;max-width:100%;display:flex;flex-wrap:wrap;gap:10px}.filters>*{min-width:180px;flex:1 1 180px}.block-actions{align-items:center;background:rgba(255,255,255,.66);border:1px solid var(--v80-line);border-radius:var(--v80-radius);padding:12px;box-shadow:var(--v80-shadow-sm)}

.tablewrap,.tablebox,.compact{max-width:100%!important;overflow:auto!important;border-radius:var(--v80-radius-sm)!important;scrollbar-width:thin}.tablewrap table,.tablebox table{width:100%;border-collapse:separate;border-spacing:0}.tablewrap table{min-width:920px}.compact table{min-width:720px}thead th{background:linear-gradient(180deg,#f8fcff,#edf7fd)!important;backdrop-filter:blur(8px);z-index:3!important}tbody tr{transition:background var(--v80-speed) var(--v80-ease),transform 140ms ease}tbody tr:hover{background:#f4fbff!important}.table-head{gap:10px;flex-wrap:wrap}.pager{white-space:nowrap}

input,select,textarea,.input{max-width:100%;border-radius:14px!important;border:1px solid rgba(0,90,140,.18)!important;transition:border-color var(--v80-speed) var(--v80-ease),box-shadow var(--v80-speed) var(--v80-ease),background var(--v80-speed) var(--v80-ease)!important}input:focus,select:focus,textarea:focus,.input:focus{outline:none!important;border-color:var(--v80-primary-2)!important;box-shadow:0 0 0 4px rgba(0,159,218,.13)!important;background:#fff!important}.btn,.mini,button.btn,label.btn{position:relative;overflow:hidden;isolation:isolate;border-radius:14px!important;transition:transform 160ms var(--v80-ease),box-shadow 160ms var(--v80-ease),filter 160ms ease!important}.btn:hover,.mini:hover{transform:translateY(-1px);filter:saturate(1.04)}.btn:active,.mini:active{transform:translateY(0) scale(.985)}.btn::before,.mini::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.35) 42%,transparent 70%);transform:translateX(-130%);transition:transform 600ms var(--v80-ease);z-index:-1}.btn:hover::before,.mini:hover::before{transform:translateX(130%)}

.nav{display:grid!important;gap:8px;padding-bottom:18px}.nav button{width:100%;min-width:0;text-align:left;border-radius:16px!important;display:flex!important;align-items:center;gap:10px;position:relative;transition:background var(--v80-speed) var(--v80-ease),color var(--v80-speed) var(--v80-ease),transform var(--v80-speed) var(--v80-ease),box-shadow var(--v80-speed) var(--v80-ease)!important}.nav button:hover{transform:translateX(4px)}.nav button.active{box-shadow:0 14px 32px rgba(0,120,212,.16)!important}.nav button.active::after{content:"";position:absolute;right:10px;width:7px;height:7px;border-radius:50%;background:var(--v80-accent);box-shadow:0 0 0 6px rgba(240,176,64,.16)}

canvas{display:block;max-width:100%;height:auto}.map-card{padding:18px!important}.map-card canvas{width:100%!important;min-height:420px;border-radius:calc(var(--v80-radius) - 6px);background:linear-gradient(135deg,#eff9ff,#ffffff)}

/* Login y bienvenida */
.login-screen{z-index:1000!important}.login-card{animation:v80LoginIn 440ms var(--v80-ease) both;box-shadow:var(--v80-shadow-lg)!important}.login-aurora::before,.login-aurora::after{content:"";position:absolute;border-radius:50%;filter:blur(24px);opacity:.55;animation:v80Float 8s ease-in-out infinite alternate}.login-aurora::before{width:34vw;height:34vw;left:5%;top:4%;background:rgba(0,159,218,.25)}.login-aurora::after{width:28vw;height:28vw;right:8%;bottom:8%;background:rgba(240,176,64,.18);animation-delay:1.2s}.v80-welcome{position:fixed;inset:0;display:grid;place-items:center;z-index:900;pointer-events:none;background:radial-gradient(circle at 50% 30%,rgba(0,159,218,.20),transparent 35%),rgba(5,20,35,.28);backdrop-filter:blur(8px);opacity:0;animation:v80Welcome 1250ms var(--v80-ease) both}.v80-welcome-card{background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.62);border-radius:28px;padding:30px 34px;box-shadow:var(--v80-shadow-lg);text-align:center;max-width:min(620px,88vw)}.v80-welcome-card img{height:64px;object-fit:contain;margin-bottom:14px}.v80-welcome-card h2{margin:0;color:#073b66;font-size:clamp(24px,4vw,42px)}.v80-welcome-card p{margin:8px 0 0;color:#64748b;font-weight:700}

/* Transición segura: nunca bloquea inputs ni login */
.v80-transition{position:fixed;inset:0;z-index:850;display:grid;place-items:center;pointer-events:none;opacity:0;transition:opacity 180ms var(--v80-ease);background:rgba(244,250,255,.48);backdrop-filter:blur(7px)}.v80-transition.active{opacity:1}.v80-transition-card{display:grid;place-items:center;gap:12px;background:rgba(255,255,255,.88);border:1px solid rgba(0,159,218,.18);border-radius:24px;padding:22px 28px;box-shadow:var(--v80-shadow-md);transform:translateY(8px) scale(.98);transition:transform 180ms var(--v80-ease)}.v80-transition.active .v80-transition-card{transform:translateY(0) scale(1)}.v80-transition-card img{height:52px;object-fit:contain;animation:v80Pulse 900ms ease-in-out infinite alternate}.v80-bar{height:4px;width:190px;border-radius:999px;background:#dceefa;overflow:hidden}.v80-bar span{display:block;height:100%;width:45%;border-radius:999px;background:linear-gradient(90deg,var(--v80-primary),var(--v80-accent));animation:v80Bar 760ms ease-in-out infinite}.v80-transition-card b{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#073b66}

/* Panel personalización */
.v80-customizer-card{border:1px solid rgba(0,159,218,.18)!important;background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(235,248,255,.88))!important}.v80-customizer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.v80-customizer-grid label{display:grid;gap:8px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;font-weight:900;color:#31506a}.v80-customizer-grid input[type="range"]{accent-color:var(--v80-primary)}.v80-audit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-top:12px}.v80-audit-box{background:#f8fcff;border:1px solid var(--v80-line);border-radius:16px;padding:12px}.v80-audit-box b{display:block;font-size:22px;color:#073b66}.v80-audit-box span{font-size:12px;color:var(--v80-muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em}

/* Exportaciones A4/16:9 más limpias */
@media print{body{background:#fff!important}.sidebar,.topbar,.actions,.no-print,.v80-customizer-card,.v80-transition{display:none!important}.main{padding:0!important}.section.active,.print-target{display:block!important}.card{box-shadow:none!important;border:1px solid #d8edf7!important;break-inside:avoid;border-radius:12px!important}table{font-size:10px!important}thead th,tbody td{padding:6px!important}}

@media(max-width:1220px){:root{--v80-sidebar:260px}.main-dash{grid-template-columns:1fr!important}.grid.two,.two{grid-template-columns:1fr!important}.topbar{grid-template-columns:1fr!important}.top-actions{justify-content:flex-start}.session-card b,.session-card span{max-width:220px}}
@media(max-width:860px){.app{display:block!important;overflow:auto}.sidebar{position:relative!important;width:100%!important;max-height:none!important}.nav{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));padding:8px}.sidebox{display:none}.main{padding:14px!important}.section-title{grid-template-columns:1fr!important}.filters>*{min-width:100%}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}.map-card canvas{min-height:360px}.login-card{width:min(94vw,680px)!important}.session-card{width:100%}}
@media(max-width:560px){.kpis{grid-template-columns:1fr!important}.card{border-radius:18px!important}.topbar{padding:12px!important}.btn,.mini{width:100%;justify-content:center}.actions .mini{width:auto}.v80-transition-card{width:84vw}.v80-bar{width:100%}}

@keyframes v80SectionIn{from{opacity:0;transform:translateY(10px);filter:blur(2px)}to{opacity:1;transform:none;filter:none}}
@keyframes v80LoginIn{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
@keyframes v80Float{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(16px,-12px,0) scale(1.05)}}
@keyframes v80Pulse{from{transform:scale(.96);filter:drop-shadow(0 0 0 rgba(0,159,218,0))}to{transform:scale(1.03);filter:drop-shadow(0 10px 18px rgba(0,159,218,.22))}}
@keyframes v80Bar{0%{transform:translateX(-80%)}50%{transform:translateX(95%)}100%{transform:translateX(230%)}}
@keyframes v80Welcome{0%{opacity:0}14%{opacity:1}78%{opacity:1}100%{opacity:0;visibility:hidden}}
