/* =====================================================================
   AUSAPE V8.5 · White No-Cut UI
   Objetivo: estética blanca corporativa, cero solapes, cero cortes,
   tablas/matrices responsive y animaciones seguras sin bloquear inputs.
   ===================================================================== */
:root{
  --v85-blue:#009fe3;
  --v85-blue-2:#007eb9;
  --v85-blue-soft:#eaf8ff;
  --v85-navy:#003b5c;
  --v85-ink:#0b2438;
  --v85-muted:#5f7388;
  --v85-line:#d7eaf5;
  --v85-line-strong:#b7dff2;
  --v85-white:#ffffff;
  --v85-bg:#f7fbfe;
  --v85-card:#ffffff;
  --v85-radius:20px;
  --v85-radius-sm:14px;
  --v85-shadow:0 12px 32px rgba(0,64,96,.08);
  --v85-shadow-strong:0 22px 60px rgba(0,64,96,.13);
  --v85-ease:cubic-bezier(.22,1,.36,1);
  --v85-sidebar:292px;
  --v85-meta1:98px;
  --v85-meta2:128px;
  --v85-meta3:112px;
  --v85-room-col:228px;
}

*{box-sizing:border-box!important;}
html,body{width:100%!important;max-width:100%!important;overflow-x:hidden!important;background:var(--v85-bg)!important;color:var(--v85-ink)!important;}
body.v85-white-ready,
body{background:linear-gradient(135deg,#ffffff 0%,#f8fcff 48%,#eef8ff 100%)!important;}
body.v85-white-ready *{scrollbar-width:thin;scrollbar-color:rgba(0,159,227,.46) #eef8ff;}
body.v85-white-ready ::-webkit-scrollbar{width:10px;height:10px;}
body.v85-white-ready ::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--v85-blue),#6ec7e8);border-radius:999px;border:2px solid #f4fbff;}
body.v85-white-ready ::-webkit-scrollbar-track{background:#eef8ff;border-radius:999px;}

/* Layout base blanco y visible */
.app{display:grid!important;grid-template-columns:var(--v85-sidebar) minmax(0,1fr)!important;width:100%!important;max-width:100vw!important;min-height:100vh!important;background:transparent!important;}
.main{min-width:0!important;width:100%!important;max-width:100%!important;overflow-x:hidden!important;padding:clamp(16px,2vw,28px)!important;background:transparent!important;}
.section{min-width:0!important;max-width:100%!important;}
.section.active{display:block!important;animation:v85SectionIn .24s var(--v85-ease) both!important;}
@keyframes v85SectionIn{from{opacity:.75;transform:translateY(8px);filter:blur(1.5px)}to{opacity:1;transform:none;filter:none}}

/* Sidebar blanco: contraste garantizado */
.sidebar{
  min-width:0!important;
  width:var(--v85-sidebar)!important;
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 52%,#f1f9fe 100%)!important;
  color:var(--v85-ink)!important;
  border-right:1px solid var(--v85-line)!important;
  box-shadow:18px 0 44px rgba(0,64,96,.08)!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  padding:14px 12px!important;
}
.brand-logo-wrap,.sidebar .brand{
  background:#ffffff!important;
  border:1px solid var(--v85-line)!important;
  border-radius:24px!important;
  box-shadow:0 14px 32px rgba(0,64,96,.10)!important;
  padding:13px!important;
  min-width:0!important;
  overflow:visible!important;
  align-items:center!important;
}
.sidebar-logo,.brand-logo-wrap .sidebar-logo{width:min(190px,100%)!important;max-width:100%!important;max-height:78px!important;height:auto!important;object-fit:contain!important;filter:drop-shadow(0 8px 16px rgba(0,159,227,.16))!important;}
.brand-logo-wrap>div{min-width:0!important;overflow:visible!important;}
.brand-logo-wrap h1,.sidebar .brand h1{color:var(--v85-navy)!important;font-size:17px!important;line-height:1.05!important;margin:8px 0 0!important;white-space:normal!important;overflow-wrap:normal!important;text-shadow:none!important;}
.brand-logo-wrap p,.sidebar .brand p{color:var(--v85-muted)!important;font-size:11px!important;line-height:1.35!important;font-weight:750!important;margin:3px 0 0!important;text-shadow:none!important;}

.nav{display:flex!important;flex-direction:column!important;gap:8px!important;overflow-y:auto!important;overflow-x:hidden!important;max-height:calc(100vh - 236px)!important;padding:12px 4px 18px!important;}
.nav button{
  width:100%!important;
  min-height:46px!important;
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
  padding:11px 13px!important;
  border-radius:16px!important;
  background:#ffffff!important;
  color:var(--v85-ink)!important;
  border:1px solid var(--v85-line)!important;
  box-shadow:0 8px 20px rgba(0,64,96,.05)!important;
  font-weight:900!important;
  text-align:left!important;
  text-shadow:none!important;
  white-space:normal!important;
  line-height:1.15!important;
  transition:transform .16s var(--v85-ease),background .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease!important;
}
.nav button:hover{transform:translateX(4px)!important;background:#f4fbff!important;border-color:var(--v85-line-strong)!important;box-shadow:0 12px 28px rgba(0,96,140,.10)!important;color:var(--v85-blue-2)!important;}
.nav button.active{background:linear-gradient(135deg,var(--v85-blue),#007eb9)!important;color:#fff!important;border-color:#007eb9!important;box-shadow:0 16px 34px rgba(0,126,185,.25)!important;}
.nav button::after{margin-left:auto!important;flex:0 0 auto!important;}
.nav button.active::after{background:rgba(255,255,255,.22)!important;color:#fff!important;border-color:rgba(255,255,255,.25)!important;}
.sidebar .nav:after{content:'Desliza para ver todos los módulos';display:block;text-align:center;color:#6b8296!important;font-size:10px;font-weight:850;padding:8px 4px 0;text-shadow:none!important;}
.sidebox{margin-top:auto!important;background:#ffffff!important;border:1px solid var(--v85-line)!important;color:var(--v85-ink)!important;border-radius:18px!important;box-shadow:0 10px 24px rgba(0,64,96,.06)!important;padding:14px!important;overflow:visible!important;}
.sidebox b,.sidebox strong{color:var(--v85-navy)!important;text-shadow:none!important;}
.sidebox span,.sidebox p,.sidebox small{color:#50677b!important;text-shadow:none!important;line-height:1.45!important;}

/* Header: blanco, dos líneas si hace falta, sin cortes */
.topbar{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:16px!important;
  align-items:start!important;
  background:rgba(255,255,255,.96)!important;
  border:1px solid var(--v85-line)!important;
  box-shadow:var(--v85-shadow)!important;
  border-radius:24px!important;
  padding:16px 18px!important;
  margin-bottom:20px!important;
  overflow:visible!important;
  backdrop-filter:blur(12px)!important;
}
.topbar h2{color:var(--v85-navy)!important;font-size:clamp(24px,2.2vw,34px)!important;line-height:1.05!important;margin:0!important;letter-spacing:-.045em!important;overflow-wrap:anywhere!important;}
.topbar p{color:var(--v85-muted)!important;font-size:13px!important;line-height:1.45!important;margin:6px 0 0!important;overflow-wrap:anywhere!important;}
.top-actions{display:flex!important;justify-content:flex-end!important;align-items:center!important;flex-wrap:wrap!important;gap:10px!important;min-width:0!important;max-width:100%!important;}
.session-card{max-width:min(100%,330px)!important;background:#fff!important;border:1px solid var(--v85-line)!important;border-radius:18px!important;box-shadow:0 10px 22px rgba(0,64,96,.06)!important;overflow:visible!important;}
.session-card img{max-width:110px!important;height:auto!important;object-fit:contain!important;}
.session-card div{min-width:0!important;}
.session-card b,.session-card span{color:var(--v85-ink)!important;max-width:155px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}

/* Tarjetas blancas, sin cortar desplegables ni contenido */
.card,.panel,.module-card,.budget-panel,.forum-flex-card,.screen-preview-card,.landing-preview-card,.incident-monthly-pro,.incident-board,.hotel-card,.ratio-panel,.tag-catalog-pro{
  background:#ffffff!important;
  color:var(--v85-ink)!important;
  border:1px solid var(--v85-line)!important;
  border-radius:var(--v85-radius)!important;
  box-shadow:var(--v85-shadow)!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:visible!important;
  position:relative!important;
}
.card:hover,.panel:hover,.module-card:hover,.budget-panel:hover{box-shadow:var(--v85-shadow-strong)!important;}
.card::before,.panel::before,.module-card::before{height:3px!important;background:linear-gradient(90deg,var(--v85-blue),#6ec7e8,transparent 82%)!important;opacity:.8!important;}
.card h3,.section-title h3,h3,h4{color:var(--v85-navy)!important;overflow-wrap:anywhere!important;}
p,.muted,small,.card small{color:var(--v85-muted)!important;}
.section-title{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:16px!important;align-items:end!important;margin-bottom:18px!important;min-width:0!important;}
.section-title>div{min-width:0!important;}
.section-title h3{font-size:clamp(24px,2.2vw,36px)!important;line-height:1.05!important;letter-spacing:-.05em!important;margin:0 0 6px!important;}
.section-title p{max-width:1150px!important;overflow-wrap:anywhere!important;line-height:1.45!important;}

/* Grids: responsive real */
.grid,.grid.two,.grid.main-dash,.grid.kpis,.kpis,.budget-kpis,.mini-kpis,.sponsor-summary-grid,.ratio-grid,.incident-pro-kpis,.hotel-kpis,.forum-flex-kpis{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))!important;
  gap:16px!important;
  align-items:stretch!important;
  max-width:100%!important;
  min-width:0!important;
}
.card.kpi,.kpi,.ratio-card,.sponsor-summary-grid>div{
  min-width:0!important;
  min-height:112px!important;
  padding:18px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:6px!important;
  background:linear-gradient(135deg,#ffffff 0%,#f8fcff 100%)!important;
  border:1px solid var(--v85-line)!important;
  border-radius:18px!important;
  overflow:visible!important;
}
.kpi b,.card.kpi b,.sponsor-summary-grid b{font-size:clamp(28px,3.2vw,46px)!important;line-height:1!important;color:var(--v85-blue-2)!important;overflow-wrap:anywhere!important;word-break:normal!important;}
.kpi span,.card.kpi span{color:#597084!important;font-size:12px!important;font-weight:950!important;text-transform:uppercase!important;letter-spacing:.06em!important;}

/* Formularios, filtros y botones: no se montan ni se cortan */
.actions,.filters,.formgrid,.table-head,.modal-actions,.forum-flex-toolbar,.budget-toolbar,.incident-actions{
  min-width:0!important;
  max-width:100%!important;
}
.actions,.table-head,.modal-actions,.budget-toolbar,.incident-actions{display:flex!important;flex-wrap:wrap!important;gap:10px!important;align-items:center!important;}
.filters,.formgrid,.forum-flex-toolbar{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))!important;gap:12px!important;align-items:end!important;}
input,select,textarea,.input{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  border:1px solid #cde4f2!important;
  background:#fff!important;
  color:var(--v85-ink)!important;
  border-radius:14px!important;
  box-shadow:none!important;
  outline:none!important;
}
input:focus,select:focus,textarea:focus,.input:focus{border-color:var(--v85-blue)!important;box-shadow:0 0 0 4px rgba(0,159,227,.12)!important;}
select{appearance:auto!important;}
.btn,.mini,button.btn,label.btn{
  min-height:40px!important;
  border-radius:14px!important;
  font-weight:900!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  line-height:1.15!important;
  border:1px solid #bfe3f4!important;
  box-shadow:0 8px 18px rgba(0,126,185,.08)!important;
  transition:transform .16s var(--v85-ease),box-shadow .16s ease,background .16s ease!important;
}
.btn:hover,.mini:hover,button.btn:hover{transform:translateY(-1px)!important;box-shadow:0 14px 28px rgba(0,126,185,.16)!important;}
.btn:not(.secondary):not(.warn):not(.danger){background:linear-gradient(135deg,var(--v85-blue),var(--v85-blue-2))!important;color:#fff!important;border-color:var(--v85-blue-2)!important;}
.btn.secondary,.mini{background:#ffffff!important;color:var(--v85-blue-2)!important;border-color:#bfe3f4!important;}
.btn.warn{background:linear-gradient(135deg,#f59e0b,#f97316)!important;color:#fff!important;border-color:#f59e0b!important;}
.btn.danger,.danger{background:#fff1f2!important;color:#be123c!important;border-color:#fecdd3!important;}

/* Tablas: no comprimir columnas; scroll interno limpio */
.tablewrap,.tablebox,.matrix-wrap,.forum-matrix-wrap,.v85-wide-scroll{
  width:100%!important;
  max-width:100%!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
  -webkit-overflow-scrolling:touch!important;
  border:1px solid var(--v85-line)!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.6)!important;
  scrollbar-gutter:stable both-edges!important;
}
.tablewrap table,.tablebox table,.card table:not(.forum-matrix){width:max-content!important;min-width:100%!important;border-collapse:separate!important;border-spacing:0!important;}
table th,table td{padding:12px!important;vertical-align:top!important;word-break:normal!important;overflow-wrap:break-word!important;line-height:1.35!important;}
table thead th{position:sticky!important;top:0!important;z-index:4!important;background:#eaf8ff!important;color:#004d73!important;font-weight:950!important;white-space:nowrap!important;border-bottom:1px solid var(--v85-line)!important;}
table tbody tr:nth-child(even){background:#fbfdff!important;}
table tbody tr:hover{background:#f1faff!important;}

/* Fórum: matriz amplia, columnas meta legibles y no verticales */
.forum-flex-card{overflow:visible!important;contain:none!important;}
.forum-matrix-wrap{max-height:min(74vh,760px)!important;position:relative!important;}
.forum-matrix{border-collapse:separate!important;border-spacing:0!important;table-layout:fixed!important;width:max-content!important;min-width:calc(var(--v85-meta1) + var(--v85-meta2) + var(--v85-meta3) + (8 * var(--v85-room-col)))!important;}
.forum-matrix th,.forum-matrix td{padding:12px!important;border-right:1px solid #e4f2f9!important;border-bottom:1px solid #e4f2f9!important;vertical-align:top!important;}
.forum-matrix thead th{position:sticky!important;top:0!important;z-index:6!important;background:linear-gradient(180deg,#f2fbff,#dff4fd)!important;color:#004d73!important;white-space:nowrap!important;height:auto!important;}
.forum-matrix thead th:nth-child(1),.forum-matrix tbody th:nth-child(1){position:sticky!important;left:0!important;z-index:8!important;width:var(--v85-meta1)!important;min-width:var(--v85-meta1)!important;max-width:var(--v85-meta1)!important;white-space:nowrap!important;writing-mode:horizontal-tb!important;}
.forum-matrix thead th:nth-child(2),.forum-matrix tbody th:nth-child(2){position:sticky!important;left:var(--v85-meta1)!important;z-index:8!important;width:var(--v85-meta2)!important;min-width:var(--v85-meta2)!important;max-width:var(--v85-meta2)!important;white-space:nowrap!important;writing-mode:horizontal-tb!important;}
.forum-matrix thead th:nth-child(3),.forum-matrix tbody th:nth-child(3){position:sticky!important;left:calc(var(--v85-meta1) + var(--v85-meta2))!important;z-index:8!important;width:var(--v85-meta3)!important;min-width:var(--v85-meta3)!important;max-width:var(--v85-meta3)!important;white-space:nowrap!important;writing-mode:horizontal-tb!important;}
.forum-matrix tbody th:nth-child(-n+3){background:#f8fcff!important;color:#173047!important;font-weight:950!important;}
.forum-matrix th:nth-child(n+4),.forum-matrix td:nth-child(n+4){width:var(--v85-room-col)!important;min-width:var(--v85-room-col)!important;max-width:var(--v85-room-col)!important;}
.matrix-session{min-width:0!important;max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere!important;}
.matrix-empty{color:#7c8da0!important;font-weight:850!important;}

/* Pantallas, QR, landing y canvases: previews visibles sin corte */
canvas{max-width:100%!important;height:auto;display:block;}
.map-card canvas{width:100%!important;min-height:420px!important;}
.room-screen-preview,.screen-preview,.landing-preview,.qr-preview,.rating-card-preview{max-width:100%!important;overflow:hidden!important;border-radius:22px!important;}
.room-screen-preview{aspect-ratio:16/9!important;background:#052033!important;}
.screen-stage{width:100%!important;height:100%!important;}
.landing-preview-card{position:relative!important;top:auto!important;}

/* Modales y overlays: no bloquean y no cortan contenido */
.modal{align-items:center!important;justify-content:center!important;padding:18px!important;}
.modal-panel,.dialog,.modal .card{width:min(1120px,96vw)!important;max-height:92vh!important;overflow:auto!important;border-radius:24px!important;background:#fff!important;}
#busy.busy{pointer-events:none!important;}
.module-transition,#ausapeFastTransition,.v85-transition{pointer-events:none!important;}
body.auth-required .module-transition,body.auth-loading .module-transition,body.auth-required #ausapeFastTransition,body.auth-loading #ausapeFastTransition{display:none!important;}

/* Exportación A4 y 16:9 */
@media print{
  @page{size:A4;margin:12mm;}
  html,body{background:#fff!important;overflow:visible!important;}
  .sidebar,.topbar .actions,.no-print,.nav,.modal,.toast-wrap,.busy,.module-transition,#ausapeFastTransition,.v85-transition{display:none!important;}
  .app{display:block!important;}
  .main{padding:0!important;width:100%!important;overflow:visible!important;}
  .section{display:none!important;}
  .section.active,.section.print-target{display:block!important;}
  .card,.panel,.module-card{box-shadow:none!important;border:1px solid #d8e5ee!important;break-inside:avoid!important;overflow:visible!important;}
  .tablewrap,.tablebox,.matrix-wrap,.forum-matrix-wrap{overflow:visible!important;max-height:none!important;}
  table{font-size:10px!important;}
}

/* Breakpoints */
@media(max-width:1280px){
  :root{--v85-sidebar:270px;--v85-room-col:210px;}
  .topbar{grid-template-columns:1fr!important;}
  .top-actions{justify-content:flex-start!important;}
}
@media(max-width:980px){
  .app{grid-template-columns:1fr!important;}
  .sidebar{width:100%!important;min-height:auto!important;position:relative!important;max-height:none!important;}
  .nav{max-height:42vh!important;}
  .main{padding:14px!important;}
  .section-title{grid-template-columns:1fr!important;}
  .section-title .actions{justify-content:flex-start!important;}
}
@media(max-width:620px){
  :root{--v85-meta1:84px;--v85-meta2:112px;--v85-meta3:96px;--v85-room-col:190px;}
  .topbar,.card,.panel,.module-card{border-radius:18px!important;}
  .grid,.kpis,.budget-kpis,.mini-kpis,.incident-pro-kpis{grid-template-columns:1fr!important;}
  .filters,.formgrid,.forum-flex-toolbar{grid-template-columns:1fr!important;}
  .session-card{width:100%!important;}
  .session-card b,.session-card span{max-width:calc(100vw - 190px)!important;}
  .btn,.mini{width:auto!important;max-width:100%!important;}
}

/* Modo reducción de movimiento */
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important;}
}
