/* Renovacion Visual V5 - QA Produccion
   Capa final visual sobre V1/V2/V3/V4. No modifica logica, base de datos ni endpoints. */
:root{
  --v5-ink:#0b1220;
  --v5-muted:#64748b;
  --v5-surface:#ffffff;
  --v5-soft:#f6f8fc;
  --v5-line:rgba(15,23,42,.10);
  --v5-line-strong:rgba(15,23,42,.16);
  --v5-primary:#1d4ed8;
  --v5-primary-2:#6d28d9;
  --v5-success:#16a34a;
  --v5-warning:#d97706;
  --v5-danger:#dc2626;
  --v5-info:#0891b2;
  --v5-radius:26px;
  --v5-radius-sm:18px;
  --v5-shadow:0 26px 78px rgba(15,23,42,.14);
  --v5-shadow-soft:0 16px 38px rgba(15,23,42,.09);
  --v5-ring:0 0 0 .24rem rgba(29,78,216,.18);
  --v5-safe-bottom:env(safe-area-inset-bottom,0px);
}

.visual-v5,
.visual-v5-auth,
.visual-v5-public,
.visual-v5-landing{accent-color:var(--v5-primary);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
.visual-v5-ready .content-wrapper,
.visual-v5-ready.visual-v5-auth,
.visual-v5-ready.visual-v5-public,
.visual-v5-ready.visual-v5-landing{animation:v5-production-enter .28s cubic-bezier(.2,.8,.2,1) both;}
@keyframes v5-production-enter{from{opacity:.001;filter:saturate(.88);transform:translateY(7px)}to{opacity:1;filter:none;transform:none}}
.visual-v5 .content-wrapper{background:radial-gradient(circle at 92% 2%,rgba(29,78,216,.13),transparent 30rem),radial-gradient(circle at 0 96%,rgba(109,40,217,.10),transparent 34rem),linear-gradient(180deg,#f8fbff 0%,#f5f7fb 55%,#eef2ff 100%)!important;}
.visual-v5 .content{padding-bottom:calc(6.4rem + var(--v5-safe-bottom));}
.visual-v5 .container-fluid{max-width:1760px;}

/* Pulido de produccion */
.visual-v5 .premium-content-header{position:sticky;top:0;z-index:1010;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background:linear-gradient(180deg,rgba(248,251,255,.94),rgba(248,251,255,.78));border-bottom:1px solid rgba(15,23,42,.065);box-shadow:0 10px 24px rgba(15,23,42,.045);}
.visual-v5 .premium-content-header h1{letter-spacing:-.045em;font-weight:950;color:var(--v5-ink);}
.visual-v5 .premium-topbar{min-height:64px;}
.visual-v5 .premium-user-pill,.visual-v5 .premium-topbar-chip{box-shadow:0 10px 24px rgba(15,23,42,.07);}
.visual-v5 .premium-sidebar .nav-link{min-height:43px;}
.visual-v5 .premium-sidebar .nav-link p{font-weight:760;}
.visual-v5 .premium-sidebar .nav-link.active{box-shadow:0 14px 28px rgba(37,99,235,.26)!important;}
.visual-v5 .premium-footer{border-top:1px solid rgba(15,23,42,.08);background:rgba(255,255,255,.74);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);}

.visual-v5 .card,
.visual-v5 .premium-card,
.visual-v5 .premium-surface,
.visual-v5 .v3-chart-card,
.visual-v5 .v3-insight-panel,
.visual-v5 .v3-command-center{box-shadow:var(--v5-shadow-soft)!important;}
.visual-v5 .card:hover,
.visual-v5 .premium-shortcut-card:hover{box-shadow:var(--v5-shadow)!important;}
.visual-v5 .card .card-body{position:relative;}
.visual-v5 .card-header .card-tools,.visual-v5 .premium-page-actions{gap:.5rem;}
.visual-v5 .premium-page-actions .btn,.visual-v5 .card-tools .btn{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;}
.visual-v5 .btn,.visual-v5-auth .btn,.visual-v5-public .btn{border-radius:999px!important;min-height:40px;}
.visual-v5 .btn-sm{min-height:34px;}
.visual-v5 .btn:focus-visible,
.visual-v5 a:focus-visible,
.visual-v5 .form-control:focus-visible,
.visual-v5 .custom-select:focus-visible,
.visual-v5-auth .btn:focus-visible,
.visual-v5-auth a:focus-visible,
.visual-v5-public .btn:focus-visible,
.visual-v5-public a:focus-visible{outline:0!important;box-shadow:var(--v5-ring)!important;}

.visual-v5 .form-control,
.visual-v5 .custom-select,
.visual-v5 textarea,
.visual-v5-auth .form-control,
.visual-v5-public .form-control{min-height:44px;}
.visual-v5 textarea.form-control{min-height:112px;}
.visual-v5 .input-group-text{border-radius:16px!important;background:rgba(248,250,252,.95)!important;border-color:rgba(15,23,42,.10)!important;}
.visual-v5 .custom-control-label{font-weight:750;color:#334155;}
.visual-v5 .invalid-feedback,.visual-v5 .valid-feedback{font-weight:760;}

.visual-v5 .table-responsive{box-shadow:inset 0 0 0 1px rgba(15,23,42,.04);background:rgba(255,255,255,.72);}
.visual-v5 table.table{margin-bottom:0!important;}
.visual-v5 table.table thead th{position:relative;white-space:nowrap;}
.visual-v5 table.table td,.visual-v5 table.table th{vertical-align:middle!important;}
.visual-v5 .dataTables_wrapper .row{row-gap:.75rem;}
.visual-v5 .premium-dt-toolbar{padding:.85rem .2rem;}
.visual-v5 .pagination .page-link{border-radius:12px;margin:0 2px;border-color:rgba(15,23,42,.08);font-weight:800;}
.visual-v5 .page-item.active .page-link{background:linear-gradient(135deg,var(--v5-primary),var(--v5-primary-2));border-color:transparent;box-shadow:0 10px 22px rgba(37,99,235,.18);}

/* Indicadores de QA visual */
.v5-production-ribbon{display:inline-flex;align-items:center;gap:.45rem;border:1px solid rgba(29,78,216,.14);background:linear-gradient(135deg,rgba(29,78,216,.08),rgba(109,40,217,.08));color:#1e3a8a;border-radius:999px;padding:.42rem .72rem;font-weight:900;box-shadow:0 8px 18px rgba(15,23,42,.055);}
.v5-production-ribbon i{color:var(--v5-primary);}
.v5-qa-button{position:fixed;left:18px;bottom:calc(22px + var(--v5-safe-bottom));z-index:100070;border:0;border-radius:999px;background:linear-gradient(135deg,#0f172a,#1d4ed8 58%,#6d28d9);color:#fff;min-width:54px;height:54px;padding:0 17px;box-shadow:0 24px 64px rgba(15,23,42,.32);display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-weight:950;letter-spacing:-.015em;transition:transform .18s ease,box-shadow .18s ease;}
.v5-qa-button:hover{transform:translateY(-2px);box-shadow:0 30px 74px rgba(15,23,42,.38);}
.v5-qa-button span{display:none;}
.v5-qa-button.has-issues{background:linear-gradient(135deg,#7f1d1d,#dc2626);}
.v5-qa-overlay{position:fixed;inset:0;background:rgba(15,23,42,.46);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:100090;display:none;padding:20px;}
.v5-qa-overlay.is-open{display:flex;align-items:flex-end;justify-content:center;}
.v5-qa-panel{width:min(940px,100%);max-height:min(84vh,780px);overflow:auto;background:rgba(255,255,255,.97);border:1px solid rgba(255,255,255,.62);border-radius:30px;box-shadow:0 38px 110px rgba(15,23,42,.32);animation:v5-panel-in .2s ease both;}
@keyframes v5-panel-in{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
.v5-qa-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:24px 26px;border-bottom:1px solid rgba(15,23,42,.08);background:linear-gradient(135deg,rgba(29,78,216,.08),rgba(109,40,217,.08));}
.v5-qa-head h3{margin:0;color:var(--v5-ink);font-weight:950;letter-spacing:-.035em;}
.v5-qa-head p{margin:.35rem 0 0;color:var(--v5-muted);font-weight:720;}
.v5-qa-close{border:0;background:#fff;border-radius:16px;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 10px 20px rgba(15,23,42,.10);}
.v5-qa-body{padding:24px 26px;}
.v5-qa-score{display:grid;grid-template-columns:160px 1fr;gap:18px;align-items:center;margin-bottom:20px;}
.v5-qa-meter{width:138px;height:138px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--v5-success) var(--score,0%),rgba(15,23,42,.08) 0);box-shadow:inset 0 0 0 12px #fff,0 18px 40px rgba(15,23,42,.12);font-size:2rem;font-weight:950;color:var(--v5-ink);}
.v5-qa-summary strong{display:block;font-weight:950;color:var(--v5-ink);font-size:1.2rem;}.v5-qa-summary span{display:block;color:var(--v5-muted);font-weight:720;line-height:1.45;}
.v5-qa-list{display:grid;gap:10px;}
.v5-qa-item{display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:start;border:1px solid rgba(15,23,42,.08);border-radius:18px;background:#fff;padding:13px 14px;}
.v5-qa-item i{width:38px;height:38px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:rgba(22,163,74,.10);color:var(--v5-success);}
.v5-qa-item.is-warning i{background:rgba(217,119,6,.12);color:var(--v5-warning);}.v5-qa-item.is-danger i{background:rgba(220,38,38,.11);color:var(--v5-danger);}.v5-qa-item strong{display:block;font-weight:900;color:var(--v5-ink);}.v5-qa-item small{display:block;color:var(--v5-muted);font-weight:720;}.v5-qa-badge{border-radius:999px;padding:.35rem .62rem;font-weight:900;font-size:.72rem;background:#f1f5f9;color:#334155;}
.v5-outline-warning{outline:3px solid rgba(245,158,11,.55)!important;outline-offset:3px!important;}
.v5-outline-danger{outline:3px solid rgba(220,38,38,.55)!important;outline-offset:3px!important;}

/* Auth y publico */
.visual-v5-auth.premium-login-body,
.visual-v5-public.public-survey-body,
.visual-v5-landing{background:radial-gradient(circle at top left,rgba(29,78,216,.18),transparent 34rem),radial-gradient(circle at bottom right,rgba(109,40,217,.14),transparent 34rem),#f6f8fc!important;}
.visual-v5-auth .login-clean-card,.visual-v5-public .public-survey-card,.visual-v5-landing .card{box-shadow:0 34px 100px rgba(15,23,42,.18)!important;border:1px solid rgba(255,255,255,.72)!important;}
.visual-v5-auth .login-clean-logo-wrap{box-shadow:0 18px 44px rgba(37,99,235,.18);}
.visual-v5-public .public-survey-shell,.visual-v5-landing{padding-bottom:calc(2rem + var(--v5-safe-bottom));}

@media (min-width:768px){
  .v5-qa-button span{display:inline;}
}
@media (max-width:767.98px){
  .visual-v5 .premium-content-header{position:relative;top:auto;}
  .visual-v5 .content-header .row{gap:.75rem;}
  .visual-v5 .premium-page-actions{justify-content:flex-start!important;overflow-x:auto;flex-wrap:nowrap;padding-bottom:.25rem;}
  .visual-v5 .premium-page-actions .btn{white-space:nowrap;}
  .visual-v5 .v2-mobile-dock{padding-bottom:calc(.58rem + var(--v5-safe-bottom));}
  .v5-qa-button{left:12px;bottom:calc(86px + var(--v5-safe-bottom));width:50px;height:50px;min-width:50px;padding:0;}
  .v5-qa-overlay{padding:10px;}
  .v5-qa-panel{border-radius:24px;max-height:88vh;}
  .v5-qa-head,.v5-qa-body{padding:18px;}
  .v5-qa-score{grid-template-columns:1fr;text-align:center;justify-items:center;}
  .v5-qa-item{grid-template-columns:34px 1fr;}.v5-qa-badge{grid-column:2;justify-self:start;}
}
@media (max-width:575.98px){
  .visual-v5 table.table.v5-card-table thead{display:none!important;}
  .visual-v5 table.table.v5-card-table tbody,.visual-v5 table.table.v5-card-table tr,.visual-v5 table.table.v5-card-table td{display:block;width:100%!important;}
  .visual-v5 table.table.v5-card-table tr{margin:0 0 .9rem;padding:.85rem;border:1px solid rgba(15,23,42,.09);border-radius:20px;background:#fff;box-shadow:0 12px 30px rgba(15,23,42,.07);}
  .visual-v5 table.table.v5-card-table td{border:0!important;padding:.42rem .25rem!important;display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;}
  .visual-v5 table.table.v5-card-table td::before{content:attr(data-label);font-weight:900;color:#475569;min-width:42%;text-align:left;}
}
@media (prefers-reduced-motion:reduce){
  .visual-v5-ready .content-wrapper,.visual-v5-ready.visual-v5-auth,.visual-v5-ready.visual-v5-public,.visual-v5-ready.visual-v5-landing,.v5-qa-panel{animation:none!important;}
  .visual-v5 *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;}
}
@media print{
  .main-sidebar,.main-header,.main-footer,.v2-mobile-dock,.v4-command-button,.v5-qa-button,.v5-qa-overlay,.v4-toast-stack,.module-preloader-overlay{display:none!important;}
  .content-wrapper{margin:0!important;background:#fff!important;}
  .card{box-shadow:none!important;border:1px solid #ddd!important;break-inside:avoid;}
  body{background:#fff!important;}
}
