/* COLVATALENT_UI_CORPORATIVA_FASE4
 * Afinacion por componentes. Solo presentacion.
 * No altera estructura funcional, JS, rutas ni backend.
 */
:root{
  --cv4-radius-sm:8px;
  --cv4-radius-md:12px;
  --cv4-radius-lg:16px;
  --cv4-border:#dce6ef;
  --cv4-border-soft:#eaf0f5;
  --cv4-text:#17324a;
  --cv4-muted:#71869a;
  --cv4-surface:#ffffff;
  --cv4-surface-soft:#f8fbfd;
  --cv4-shadow:0 8px 24px rgba(22,63,96,.06);
}

/* ===== ENCABEZADOS Y SECCIONES ===== */
.page-header,.page-head,.section-header,.management-title,.v22-head{
  align-items:flex-start;
}
.page-header h1,.page-head h1,.section-header h1,.management-title h2{
  letter-spacing:-.015em;
}
.page-header p,.page-head p,.section-header p,.management-title p{
  max-width:760px;
  line-height:1.45;
}

/* ===== TARJETAS / KPI ===== */
.card,.kpi-card,.summary-card,.metric-card,.flow-current-box{
  border-color:var(--cv4-border);
}
.kpi-card,.summary-card,.metric-card{
  position:relative;
  overflow:hidden;
}
.kpi-card::before,.summary-card::before,.metric-card::before{
  content:"";
  position:absolute;
  left:0;top:0;bottom:0;
  width:3px;
  background:linear-gradient(180deg,var(--colvatel-blue,#143f70),var(--colvatel-green,#a7b52a));
  opacity:.78;
}
.kpi-card strong,.summary-card strong,.metric-card strong{
  font-variant-numeric:tabular-nums;
}

/* ===== BOTONES ===== */
.btn,button.btn,a.btn{
  min-height:34px;
  border-radius:9px;
  font-weight:650;
  letter-spacing:0;
  transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.btn:hover,button.btn:hover,a.btn:hover{
  transform:translateY(-1px);
}
.btn:active,button.btn:active,a.btn:active{
  transform:translateY(0);
}
.btn.primary,.btn-primary,button.primary{
  box-shadow:0 4px 12px rgba(20,63,112,.14);
}
.btn.small,.btn-sm{
  min-height:30px;
  border-radius:8px;
  font-size:10px;
}

/* ===== FORMULARIOS ===== */
label{
  line-height:1.35;
}
input:not([type="checkbox"]):not([type="radio"]),select,textarea{
  border-radius:9px;
  transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;
}
textarea{line-height:1.45}
input:disabled,select:disabled,textarea:disabled,.readonly-input{
  background:#f4f7fa;
  color:#526b7d;
}
small,.field-help,.help-text,.contracting-field-hint{
  line-height:1.4;
}

/* ===== TABLAS ===== */
table{
  border-collapse:separate;
  border-spacing:0;
}
thead th{
  font-size:9px;
  letter-spacing:.045em;
  text-transform:uppercase;
  white-space:nowrap;
}
tbody td{
  vertical-align:middle;
}
tbody tr{
  transition:background-color .13s ease;
}
tbody tr:hover{
  background:#f8fbfd;
}
.table-actions,.actions,.row-actions{
  gap:6px;
}

/* ===== BADGES / ESTADOS ===== */
.badge,.status-badge,[class*="status-badge"]{
  border-radius:999px;
  font-weight:700;
  letter-spacing:.01em;
}

/* ===== MODALES ===== */
dialog,.modal,.resume-modal,.document-preview-modal,
.interview-resume-modal-v287152,.preselection-resume-modal-v28621,
.lab-resume-modal,.emo-resume-modal,.reference-resume-modal{
  border-radius:var(--cv4-radius-lg);
}
dialog::backdrop{
  background:rgba(10,31,48,.56);
  backdrop-filter:blur(1.5px);
}
.document-preview-header,.resume-modal-header,
.lab-resume-modal-header,.emo-resume-modal-header,
.reference-resume-modal-header,.interview-resume-modal-head-v287152,
.preselection-resume-modal-head-v28621{
  background:#f9fbfd;
  border-bottom-color:var(--cv4-border);
}

/* ===== LISTADOS / FILAS ===== */
.ranking-row,.responsible-row,.bottleneck-row,.critical-row,.v22-event{
  padding-top:8px;
  padding-bottom:8px;
}
.ranking-row:last-child,.responsible-row:last-child,.bottleneck-row:last-child,.critical-row:last-child{
  border-bottom:0;
}

/* ===== SIDEBAR ===== */
.sidebar nav>a,.sidebar .nav a,.admin-accordion-content a{
  border-radius:9px;
}
.sidebar .nav-label,.nav-label{
  letter-spacing:.07em;
  opacity:.78;
}
.sidebar nav>a.active,.sidebar .nav a.active,.admin-accordion-content a.active{
  box-shadow:inset 3px 0 0 var(--colvatel-green,#a7b52a);
}

/* ===== ESTADOS VACIOS ===== */
.empty-state,.management-empty{
  border-radius:12px;
}
.empty-state{
  padding:24px 18px;
  border:1px dashed #cbd9e5;
  background:#fbfdfe;
  color:var(--cv4-muted);
}

/* ===== FLUJOS / TARJETAS OPERATIVAS ===== */
.flow-current-box,
.application-resume-card,.candidate-resume-file,
.lab-resume-card,.emo-resume-card,.reference-resume-card,
.preselection-resume-v28621,.interview-resume-top-v287152{
  border-radius:12px;
}

/* ===== DASHBOARD ===== */
.management-kpis,.operational-kpis{
  gap:12px;
}
.operational-kpis>div{
  border-radius:10px;
}
.funnel-track,.time-track,.interview-progress-track{
  border-radius:999px;
}

/* ===== SCROLL HORIZONTAL SEGURO ===== */
.table-wrap,.table-responsive,.responsive-table{
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

/* ===== RESPONSIVE ===== */
@media(max-width:1100px){
  .page-header,.page-head,.section-header{
    gap:10px;
  }
  .card{padding-left:14px;padding-right:14px}
}
@media(max-width:760px){
  .btn,button.btn,a.btn{min-height:38px}
  .page-header,.page-head,.section-header{flex-direction:column}
  .management-title{flex-direction:column}
  .table-actions,.actions,.row-actions{flex-wrap:wrap}
  dialog,.modal{max-width:96vw}
}

@media(prefers-reduced-motion:reduce){
  .btn,button.btn,a.btn,input,select,textarea,tbody tr{transition:none!important}
  .btn:hover,button.btn:hover,a.btn:hover{transform:none!important}
}
