/* Renovación Ciudadana V60 Ultra Visual Layer
   Capa 100% visual: no modifica reglas de negocio, validaciones, base de datos ni endpoints. */
:root{
  --v60-ink:#071426;
  --v60-ink-2:#0f172a;
  --v60-muted:#64748b;
  --v60-blue:#2563eb;
  --v60-blue-2:#1d4ed8;
  --v60-cyan:#06b6d4;
  --v60-violet:#7c3aed;
  --v60-emerald:#10b981;
  --v60-amber:#f59e0b;
  --v60-red:#ef4444;
  --v60-bg:#f3f7ff;
  --v60-surface:rgba(255,255,255,.84);
  --v60-glass:rgba(255,255,255,.72);
  --v60-line:rgba(148,163,184,.22);
  --v60-line-strong:rgba(37,99,235,.18);
  --v60-shadow:0 24px 70px rgba(15,23,42,.13);
  --v60-shadow-soft:0 14px 34px rgba(15,23,42,.08);
  --v60-radius:28px;
  --v60-radius-sm:18px;
  --v60-ease:cubic-bezier(.2,.72,.24,1);
}
html{scroll-behavior:smooth;}
body.visual-ultra-shell,
body.premium-app-shell,
body.public-survey-body,
body.login-clean-body,
body.force-password-body{
  color:var(--v60-ink-2);
  background:
    radial-gradient(circle at 8% 6%, rgba(37,99,235,.18), transparent 28%),
    radial-gradient(circle at 92% 14%, rgba(124,58,237,.14), transparent 28%),
    radial-gradient(circle at 78% 92%, rgba(16,185,129,.12), transparent 24%),
    linear-gradient(180deg,#eef5ff 0%,#f8fbff 48%,#ffffff 100%) !important;
}
body.visual-ultra-shell:before,
body.premium-app-shell:before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-2;
  background-image:
    linear-gradient(rgba(37,99,235,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(37,99,235,.045) 1px, transparent 1px);
  background-size:38px 38px;
  mask-image:linear-gradient(180deg,rgba(0,0,0,.75),rgba(0,0,0,.18));
}
body.visual-ultra-shell:after,
body.premium-app-shell:after{
  content:"";
  position:fixed;
  width:540px;
  height:540px;
  right:-220px;
  bottom:-260px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(6,182,212,.18),transparent 68%);
  pointer-events:none;
  z-index:-1;
  animation:v60Blob 18s var(--v60-ease) infinite alternate;
}
@keyframes v60Blob{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(-34px,-28px,0) scale(1.08)}}

/* AdminLTE visual upgrade */
.visual-ultra-shell .wrapper,
.premium-app-shell .wrapper{background:transparent!important;}
.visual-ultra-shell .content-wrapper,
.premium-content-wrapper{
  background:transparent!important;
  position:relative;
  overflow:hidden;
}
.visual-ultra-shell .content-wrapper:before,
.premium-content-wrapper:before{
  content:"";
  position:absolute;
  top:-160px;
  left:16%;
  width:420px;
  height:420px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(37,99,235,.12),transparent 70%);
  pointer-events:none;
}
.main-header.premium-topbar{
  min-height:68px;
  border:1px solid rgba(255,255,255,.72)!important;
  background:rgba(255,255,255,.82)!important;
  backdrop-filter:blur(18px) saturate(130%);
  -webkit-backdrop-filter:blur(18px) saturate(130%);
  box-shadow:0 18px 46px rgba(15,23,42,.08)!important;
}
.main-sidebar.premium-sidebar{
  background:
    radial-gradient(circle at 28% 3%, rgba(37,99,235,.48), transparent 26%),
    linear-gradient(180deg,#071426 0%,#0f172a 44%,#172554 100%)!important;
  box-shadow:18px 0 54px rgba(15,23,42,.18)!important;
}
.main-sidebar.premium-sidebar:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 22%,rgba(255,255,255,.03));
}
.premium-brand-link{
  position:relative;
  overflow:hidden;
}
.premium-brand-link:after{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  bottom:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);
}
.premium-brand-logo-wrap,
.login-clean-logo-wrap{
  animation:v60LogoFloat 4.8s var(--v60-ease) infinite;
}
@keyframes v60LogoFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.nav-sidebar>.nav-item>.nav-link{
  position:relative;
  overflow:hidden;
  border:1px solid transparent;
  transition:transform .22s var(--v60-ease), background .22s ease, border-color .22s ease, box-shadow .22s ease!important;
}
.nav-sidebar>.nav-item>.nav-link:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(255,255,255,.16),transparent 52%);
  opacity:0;
  transition:opacity .22s ease;
}
.nav-sidebar>.nav-item>.nav-link:hover{
  transform:translateX(5px) scale(1.01);
  border-color:rgba(255,255,255,.1);
}
.nav-sidebar>.nav-item>.nav-link:hover:before,
.nav-sidebar>.nav-item>.nav-link.active:before{opacity:1;}
.nav-sidebar>.nav-item>.nav-link.active{
  background:linear-gradient(135deg,var(--v60-blue),var(--v60-violet) 52%,var(--v60-cyan))!important;
  box-shadow:0 18px 40px rgba(37,99,235,.32)!important;
}
.nav-sidebar .nav-icon{filter:drop-shadow(0 5px 9px rgba(0,0,0,.18));}

/* Header content */
.premium-content-header{padding:1.2rem .5rem .35rem;}
.premium-content-header h1{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  color:var(--v60-ink);
  font-size:clamp(1.55rem,2.6vw,2.25rem);
  line-height:1.06;
  font-weight:900!important;
  letter-spacing:-.045em;
}
.premium-content-header h1:before{
  content:"";
  width:13px;
  height:32px;
  border-radius:999px;
  background:linear-gradient(180deg,var(--v60-blue),var(--v60-cyan));
  box-shadow:0 12px 24px rgba(37,99,235,.22);
}
.premium-page-actions .btn{margin:.15rem;}

/* Cards, panels, hero blocks */
.card,
.premium-card,
.premium-surface,
.soc-panel,
.premium-hero,
.force-password-card,
.login-clean-card,
.public-survey-hero,
.survey-step-card{
  border-radius:var(--v60-radius)!important;
  border:1px solid rgba(255,255,255,.76)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(248,251,255,.76))!important;
  box-shadow:var(--v60-shadow-soft)!important;
  backdrop-filter:blur(14px) saturate(126%);
  -webkit-backdrop-filter:blur(14px) saturate(126%);
}
.card[data-v60-card="1"],
.premium-card[data-v60-card="1"],
.premium-surface[data-v60-card="1"]{
  opacity:0;
  transform:translate3d(0,18px,0) scale(.985);
}
.card[data-v60-card="1"].is-v60-visible,
.premium-card[data-v60-card="1"].is-v60-visible,
.premium-surface[data-v60-card="1"].is-v60-visible{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
  transition:opacity .55s var(--v60-ease), transform .55s var(--v60-ease), box-shadow .22s ease;
}
.card:hover,
.premium-card:hover,
.premium-surface:hover,
.soc-panel:hover{
  transform:translateY(-2px);
  box-shadow:0 24px 58px rgba(15,23,42,.12)!important;
}
.card-header{
  border-bottom:1px solid rgba(148,163,184,.16)!important;
  background:linear-gradient(135deg,rgba(255,255,255,.78),rgba(239,246,255,.54))!important;
  border-radius:var(--v60-radius) var(--v60-radius) 0 0!important;
}
.premium-hero,
.premium-hero-dashboard,
.soc-hero{
  position:relative;
  overflow:hidden;
  min-height:170px;
  border:1px solid rgba(37,99,235,.16)!important;
  background:
    radial-gradient(circle at 8% 12%,rgba(37,99,235,.20),transparent 34%),
    radial-gradient(circle at 92% 18%,rgba(6,182,212,.18),transparent 32%),
    linear-gradient(135deg,#ffffff 0%,#eef6ff 56%,#ecfdf5 100%)!important;
}
.premium-hero:after,
.premium-hero-dashboard:after,
.soc-hero:after{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  right:-80px;
  bottom:-120px;
  border-radius:999px;
  background:conic-gradient(from 120deg,rgba(37,99,235,.18),rgba(6,182,212,.14),rgba(16,185,129,.12),rgba(37,99,235,.18));
  animation:v60Spin 16s linear infinite;
}
@keyframes v60Spin{to{transform:rotate(360deg)}}
.premium-overline,.soc-kicker,.premium-section-kicker{
  letter-spacing:.12em!important;
  font-weight:900!important;
}

/* Metric cards */
.premium-metric-card,
.premium-kpi-card,
.revision-kpi-card,
.stat,
.micro,
.info{
  position:relative;
  overflow:hidden;
  border-radius:24px!important;
  border:1px solid rgba(255,255,255,.74)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(239,246,255,.72))!important;
  box-shadow:0 16px 38px rgba(15,23,42,.08)!important;
  transition:transform .22s var(--v60-ease), box-shadow .22s ease;
}
.premium-metric-card:before,
.premium-kpi-card:before,
.revision-kpi-card:before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:linear-gradient(180deg,var(--v60-blue),var(--v60-cyan));
}
.premium-metric-card:hover,
.premium-kpi-card:hover,
.revision-kpi-card:hover{
  transform:translateY(-3px);
  box-shadow:0 24px 54px rgba(15,23,42,.12)!important;
}
.premium-metric-value,
.premium-kpi-card .value,
.revision-kpi-card strong{
  letter-spacing:-.05em;
  font-variant-numeric:tabular-nums;
}

/* Forms */
.form-control,
.custom-select,
.select2-selection,
.input-group-text{
  border-radius:16px!important;
  border-color:rgba(148,163,184,.28)!important;
  background-color:rgba(255,255,255,.88)!important;
  box-shadow:none!important;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}
.form-control:focus,
.custom-select:focus{
  border-color:rgba(37,99,235,.58)!important;
  background-color:#fff!important;
  box-shadow:0 0 0 .22rem rgba(37,99,235,.12)!important;
}
.form-group label,
label.required{
  font-weight:800;
  color:#1e293b;
}
label.required:after,.required:after{color:var(--v60-red)!important;}
.input-group .form-control:first-child{border-top-right-radius:0!important;border-bottom-right-radius:0!important;}
.input-group .input-group-append .input-group-text{border-top-left-radius:0!important;border-bottom-left-radius:0!important;}
.input-group .input-group-prepend .input-group-text{border-top-right-radius:0!important;border-bottom-right-radius:0!important;}
.input-group .form-control:last-child{border-top-left-radius:0!important;border-bottom-left-radius:0!important;}

/* Buttons */
.btn,
.premium-btn{
  border-radius:16px!important;
  font-weight:850!important;
  letter-spacing:-.01em;
  position:relative;
  overflow:hidden;
  transition:transform .18s var(--v60-ease), box-shadow .18s ease, filter .18s ease!important;
}
.btn:hover,
.premium-btn:hover{transform:translateY(-1px);filter:saturate(1.08);}
.btn:active,.premium-btn:active{transform:translateY(0) scale(.99);}
.btn-primary,
.btn-success,
.btn-info{
  border-color:transparent!important;
  box-shadow:0 14px 30px rgba(37,99,235,.18)!important;
}
.btn-primary{background:linear-gradient(135deg,var(--v60-blue),var(--v60-violet))!important;}
.btn-success{background:linear-gradient(135deg,#059669,var(--v60-emerald))!important;}
.btn-info{background:linear-gradient(135deg,#0284c7,var(--v60-cyan))!important;}
.btn .v60-ripple{
  position:absolute;
  border-radius:999px;
  transform:translate(-50%,-50%);
  pointer-events:none;
  background:rgba(255,255,255,.46);
  animation:v60Ripple .65s ease-out forwards;
}
@keyframes v60Ripple{from{width:0;height:0;opacity:.7}to{width:260px;height:260px;opacity:0}}

/* Tables */
.table-responsive,
.premium-table-wrap{
  border-radius:24px!important;
  overflow:auto;
}
.table,
.table-premium{
  border-collapse:separate!important;
  border-spacing:0!important;
}
.table thead th,
.table-premium thead th{
  position:sticky;
  top:0;
  z-index:1;
  background:linear-gradient(180deg,#f8fbff,#eef5ff)!important;
  color:#1e293b!important;
  border-bottom:1px solid rgba(37,99,235,.14)!important;
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.075em;
  font-weight:900!important;
}
.table tbody tr{
  transition:background .16s ease, transform .16s ease;
}
.table tbody tr:hover{
  background:rgba(37,99,235,.045)!important;
}
.premium-datatable-wrapper .pagination .page-link{
  border-radius:12px!important;
  margin:0 .12rem;
  border-color:rgba(148,163,184,.24);
}
.premium-datatable-wrapper .pagination .active .page-link{
  background:linear-gradient(135deg,var(--v60-blue),var(--v60-cyan))!important;
  border-color:transparent!important;
  box-shadow:0 10px 22px rgba(37,99,235,.18);
}

/* Charts */
.premium-chart-card canvas,
canvas[id*="Chart"],
canvas[id*="chart"]{
  filter:drop-shadow(0 14px 28px rgba(15,23,42,.08));
}
.premium-chart-canvas-wrap{
  min-height:280px;
  border-radius:24px;
  background:
    linear-gradient(rgba(37,99,235,.035) 1px, transparent 1px),
    linear-gradient(90deg,rgba(37,99,235,.035) 1px, transparent 1px),
    rgba(255,255,255,.55);
  background-size:24px 24px;
  padding:.65rem;
}

/* SweetAlert2 premium */
.swal2-popup{
  border-radius:30px!important;
  border:1px solid rgba(255,255,255,.72)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(239,246,255,.94))!important;
  box-shadow:0 30px 90px rgba(15,23,42,.22)!important;
}
.swal2-title{font-weight:900!important;letter-spacing:-.035em!important;color:#0f172a!important;}
.swal2-confirm,.swal2-cancel,.swal2-deny{border-radius:16px!important;font-weight:850!important;}
.swal2-confirm{background:linear-gradient(135deg,var(--v60-blue),var(--v60-violet))!important;}
.swal2-icon{box-shadow:0 14px 34px rgba(15,23,42,.08);}

/* Survey wizard */
.premium-form-steps,
.survey-step-nav{
  filter:drop-shadow(0 12px 28px rgba(15,23,42,.06));
}
.premium-form-step{
  transition:transform .22s var(--v60-ease), box-shadow .22s ease, background .22s ease!important;
}
.premium-form-step:hover{transform:translateY(-2px);}
.premium-form-step.is-active{
  background:linear-gradient(135deg,#fff,#eff6ff)!important;
  box-shadow:0 18px 36px rgba(37,99,235,.14)!important;
}
.survey-doc-card,
.document-preview,
.doc-preview-card{
  border-radius:22px!important;
  border:1px dashed rgba(37,99,235,.28)!important;
  background:linear-gradient(135deg,rgba(255,255,255,.84),rgba(239,246,255,.66))!important;
}

/* Public landing + public survey */
.public-survey-shell,
.login-clean-shell,
.force-password-shell{
  position:relative;
  z-index:1;
}
.public-survey-hero--premium,
.hero.card{
  animation:v60PanelIn .7s var(--v60-ease) both;
}
@keyframes v60PanelIn{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.public-survey-body .survey-step-card{
  margin-bottom:1.1rem;
}
.login-clean-card,
.force-password-card{
  animation:v60LoginIn .72s var(--v60-ease) both;
}
@keyframes v60LoginIn{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.login-clean-card .card-body{background:linear-gradient(180deg,#fff,#f8fbff)!important;}
.login-clean-head{position:relative;overflow:hidden;}
.login-clean-head:before{
  content:"";
  position:absolute;
  width:210px;
  height:210px;
  top:-130px;
  left:50%;
  transform:translateX(-50%);
  border-radius:999px;
  background:radial-gradient(circle,rgba(37,99,235,.22),transparent 72%);
}

/* React visual dock */
.rp-react-dock{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:1068;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
}
.rp-react-dock__toggle{
  width:58px;
  height:58px;
  border:0;
  border-radius:22px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  background:linear-gradient(135deg,var(--v60-blue),var(--v60-violet) 52%,var(--v60-cyan));
  box-shadow:0 18px 44px rgba(37,99,235,.28);
  cursor:pointer;
  transition:transform .22s var(--v60-ease), box-shadow .22s ease;
}
.rp-react-dock__toggle:hover{transform:translateY(-3px) rotate(-3deg);box-shadow:0 24px 54px rgba(37,99,235,.34);}
.rp-react-dock__pulse{
  position:absolute;
  inset:-7px;
  border-radius:28px;
  border:1px solid rgba(37,99,235,.22);
  animation:v60DockPulse 1.8s ease-out infinite;
  pointer-events:none;
}
@keyframes v60DockPulse{from{opacity:.72;transform:scale(.82)}to{opacity:0;transform:scale(1.18)}}
.rp-react-dock__panel{
  width:min(360px,calc(100vw - 24px));
  margin-bottom:12px;
  border-radius:28px;
  overflow:hidden;
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(239,246,255,.92));
  border:1px solid rgba(255,255,255,.76);
  box-shadow:0 28px 78px rgba(15,23,42,.18);
  backdrop-filter:blur(18px) saturate(130%);
  transform-origin:bottom right;
  animation:v60DockIn .24s var(--v60-ease) both;
}
@keyframes v60DockIn{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
.rp-react-dock__head{
  padding:1rem 1.05rem;
  color:#fff;
  background:linear-gradient(135deg,#071426,#1d4ed8 56%,#06b6d4);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.7rem;
}
.rp-react-dock__head strong{display:block;font-size:1.02rem;letter-spacing:-.02em;}
.rp-react-dock__head small{display:block;color:rgba(255,255,255,.78);font-weight:700;}
.rp-react-dock__body{padding:1rem;}
.rp-react-dock__status{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:.65rem;
  margin-bottom:.8rem;
}
.rp-react-dock__stat{
  border:1px solid rgba(148,163,184,.22);
  background:rgba(255,255,255,.68);
  border-radius:18px;
  padding:.72rem;
}
.rp-react-dock__stat span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:900;}
.rp-react-dock__stat strong{display:block;color:#0f172a;font-size:.95rem;line-height:1.15;margin-top:.18rem;overflow-wrap:anywhere;}
.rp-react-dock__links{display:grid;gap:.45rem;}
.rp-react-dock__links a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8rem;
  padding:.72rem .82rem;
  border-radius:16px;
  background:#fff;
  border:1px solid rgba(148,163,184,.2);
  color:#1e293b;
  text-decoration:none;
  font-weight:850;
}
.rp-react-dock__links a:hover{background:#eff6ff;color:#1d4ed8;}
.rp-react-dock__close{
  border:0;
  background:rgba(255,255,255,.14);
  color:#fff;
  border-radius:14px;
  width:36px;
  height:36px;
}

/* Preloader V60 */
.module-preloader-overlay.is-visible,
.login-preloader-overlay.is-visible{backdrop-filter:blur(18px) saturate(132%);}
.module-preloader-card,
.login-preloader-card{
  border:1px solid rgba(255,255,255,.22)!important;
  box-shadow:0 38px 100px rgba(0,0,0,.3)!important;
}
.module-preloader-progress-bar,
.login-preloader-progress-bar{background:linear-gradient(90deg,#fff,#93c5fd,#22d3ee,#34d399)!important;}

/* Mobile */
@media (max-width:991.98px){
  .premium-content-header h1{font-size:1.55rem;}
  .premium-page-actions{text-align:left!important;margin-top:.65rem;}
  .premium-page-actions .btn{width:100%;margin:.2rem 0;}
  .card,.premium-card,.premium-surface,.premium-hero,.survey-step-card{border-radius:23px!important;}
  .rp-react-dock{right:12px;bottom:12px;}
}
@media (max-width:767.98px){
  .main-header.premium-topbar{min-height:62px;}
  .content-wrapper{padding-bottom:76px;}
  .premium-content-header{padding:.9rem .15rem .2rem;}
  .premium-content-header h1:before{height:24px;width:10px;}
  .table thead th,.table td{white-space:nowrap;}
  .form-control-lg,.btn-lg{font-size:1rem!important;}
  .rp-react-dock__toggle{width:52px;height:52px;border-radius:20px;}
  .rp-react-dock__panel{border-radius:24px;}
}
@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important;}
}

/* V63 — contexto administrativo por país */
.premium-country-context-pill{border:1px solid rgba(15,23,42,.08);border-radius:999px;background:rgba(255,255,255,.72);box-shadow:0 10px 24px rgba(15,23,42,.08);overflow:hidden}
.premium-country-context-pill .country-context-link{display:inline-flex;align-items:center;padding:.45rem .85rem;color:#0f172a;font-weight:800;text-decoration:none!important;white-space:nowrap}
.premium-country-context-pill .country-context-link i{color:#10b981}
.visual-ultra-shell .admin-country-card{isolation:isolate}
.visual-ultra-shell .admin-country-card:after{content:'';position:absolute;right:-50px;top:-50px;width:150px;height:150px;border-radius:999px;background:rgba(255,255,255,.45);z-index:-1}
