/* Portal Laboral 4 · mismo sistema de diseño que el ERP Serviconta
   (design-system.css del ERP): azul #1D3058, dorado #BE9F56, lienzo
   #F4F6F9, tarjetas blancas con etiqueta dorada y Manrope.
   Se carga al final para unificar el shell y define el nuevo Inicio. */
#s-perfil{
  --pl-navy:#1D3058;--pl-navy-2:#263F68;--pl-gold:#BE9F56;--pl-gold-hover:#C9AE6D;--pl-gold-soft:#F3EBDD;
  --pl-canvas:#F4F6F9;--pl-surface:#fff;--pl-surface-2:#F8FAFC;--pl-surface-3:#EEF2F6;--pl-line:#DCE3EB;
  --pl-text:#18263A;--pl-muted:#667085;--pl-green:#16835C;--pl-red:#B54747;
  --pl-shadow:0 1px 2px rgba(29,48,88,.06),0 8px 24px rgba(29,48,88,.06);
  --pl-shadow-hover:0 2px 4px rgba(29,48,88,.06),0 18px 40px rgba(29,48,88,.12);
  --pl-ease:cubic-bezier(.2,.8,.2,1);
  background:var(--pl-canvas)!important;color:var(--pl-text)!important;
  font-family:Manrope,Arial,sans-serif;
}
#s-perfil .portal-scroll,#s-perfil .portal-main{background:var(--pl-canvas)!important}

/* Shell: menú lateral azul sólido como el ERP */
#s-perfil .portal-sidebar{background:var(--pl-navy)!important;box-shadow:none!important;border-right:0!important}
#s-perfil .portal-nav-item{font-size:13px!important;font-weight:600!important;color:rgba(255,255,255,.86)!important;border-radius:9px!important;height:40px!important;min-height:40px!important}
#s-perfil .portal-nav-item svg{color:rgba(255,255,255,.75)!important}
#s-perfil .portal-nav-item:hover{background:rgba(255,255,255,.07)!important;transform:none}
#s-perfil .portal-nav-item.active{background:rgba(255,255,255,.12)!important;border-color:transparent!important;box-shadow:none!important;color:#fff!important}
#s-perfil .portal-nav-item.active svg{color:var(--pl-gold)!important}
#s-perfil .portal-nav-group-toggle span{font-size:10.5px!important;font-weight:800!important;letter-spacing:.1em!important;color:rgba(255,255,255,.55)!important;text-transform:uppercase}

/* Cabecera blanca de 56 px */
#s-perfil .portal-header{height:58px!important;background:#fff!important;border-bottom:1px solid var(--pl-line)!important;backdrop-filter:none!important;box-shadow:none!important}
#s-perfil .portal-page-title{font-size:15px!important;font-weight:800!important;color:var(--pl-text)!important}
#s-perfil .portal-page-subtitle{font-size:12px!important;color:var(--pl-muted)!important}
#s-perfil .portal-company-legal{font-size:12px!important;font-weight:700!important;color:var(--pl-muted)!important}
#s-perfil .portal-user-avatar{background:var(--pl-navy)!important;color:#fff!important;border-radius:9px!important}
#s-perfil .portal-user-copy strong{font-size:13.5px!important;color:var(--pl-text)!important}
#s-perfil .portal-user-copy span{font-size:11.5px!important;color:var(--pl-muted)!important}
#s-perfil .portal-content{max-width:1240px!important;padding:22px 22px 40px!important}

/* ---------- Inicio ---------- */
.pl-hero{position:relative;overflow:hidden;background:var(--pl-navy);color:#fff;border-radius:16px;padding:24px 26px;box-shadow:0 12px 32px rgba(29,48,88,.18);margin-bottom:16px}
.pl-hero:before{content:"";position:absolute;right:-70px;top:-90px;width:260px;height:260px;border-radius:50%;background:rgba(190,159,86,.14);transition:transform 1.2s var(--pl-ease)}
.pl-hero:hover:before{transform:scale(1.12) translate(-10px,10px)}
.pl-hero h1{position:relative;margin:0;font-size:24px;font-weight:800;letter-spacing:-.01em;color:#fff}
.pl-hero p{position:relative;margin:2px 0 0;font-size:13px;color:rgba(255,255,255,.72)}
.pl-pills{position:relative;display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.pl-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);font-size:12.5px;font-weight:600;color:#fff;transition:background .2s,transform .2s var(--pl-ease)}
.pl-pill:hover{background:rgba(255,255,255,.13);transform:translateY(-1px)}
.pl-pill i{width:7px;height:7px;border-radius:50%;flex:none}
.pl-pill b{font-weight:800}

.pl-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:16px}
.pl-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}
.pl-c7{grid-column:span 7}.pl-c5{grid-column:span 5}.pl-c12{grid-column:span 12}

.pl-panel{position:relative;background:#fff;border:1px solid #E1E6EE;border-radius:14px;box-shadow:var(--pl-shadow);padding:18px 18px 16px;transition:transform .35s var(--pl-ease),box-shadow .35s var(--pl-ease),border-color .35s}
.pl-card{cursor:pointer;display:flex;flex-direction:column}
.pl-card:hover,.pl-card:focus-visible{transform:translateY(-3px);box-shadow:var(--pl-shadow-hover);border-color:#D4C39A;outline:none}
.pl-card:after{content:"";position:absolute;left:18px;right:18px;top:0;height:3px;border-radius:0 0 3px 3px;background:var(--pl-gold);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--pl-ease)}
.pl-card:hover:after,.pl-card:focus-visible:after{transform:scaleX(1)}
.pl-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}
.pl-kicker{display:block;font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--pl-gold)}
.pl-head h2,.pl-head h3{margin:2px 0 0;font-size:16px;font-weight:800;color:var(--pl-text)}
.pl-link{border:0;background:none;padding:0;font:inherit;font-size:12.5px;font-weight:700;color:var(--pl-navy);white-space:nowrap;display:inline-flex;align-items:center;gap:4px;cursor:pointer}
.pl-link span{transition:transform .25s var(--pl-ease)}
.pl-panel:hover .pl-link span{transform:translateX(3px)}
.pl-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--pl-gold-soft);color:#8A6C2B;flex:none}
.pl-icon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8}
.pl-big{font-size:28px;font-weight:800;letter-spacing:-.02em;color:var(--pl-navy);line-height:1.15}
.pl-big.pl-text{font-size:17px;line-height:1.3}
.pl-sub{font-size:12.5px;color:var(--pl-muted);margin-top:2px}
.pl-prog{height:6px;border-radius:99px;background:var(--pl-surface-3);overflow:hidden;margin-top:auto;transform:translateY(8px)}
.pl-prog span{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--pl-gold),#D6B977);transition:width 1.3s var(--pl-ease)}

.pl-info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pl-info div{padding:10px 12px;border-radius:10px;background:var(--pl-surface-2);border:1px solid var(--pl-line);min-width:0}
.pl-info span{display:block;font-size:11.5px;color:var(--pl-muted)}
.pl-info strong{display:block;font-size:13.5px;font-weight:700;color:var(--pl-text);overflow-wrap:anywhere}

.pl-item{width:100%;display:flex;align-items:center;gap:12px;padding:11px 12px;border:1px solid #E6EBF1;border-radius:12px;margin-top:8px;background:#fff;text-align:left;font:inherit;cursor:pointer;transition:border-color .2s,background .2s,transform .25s var(--pl-ease)}
.pl-item:first-of-type{margin-top:0}
.pl-item:hover{border-color:#D4C39A;background:#FFFDF8;transform:translateX(2px)}
.pl-item b{display:block;font-size:13.5px;color:var(--pl-text)}
.pl-item small{display:block;font-size:11.5px;color:var(--pl-muted)}
.pl-item .pl-go{margin-left:auto;flex:none;height:32px;padding:0 12px;border-radius:9px;background:var(--pl-navy);color:#fff;font-size:12.5px;font-weight:700;display:inline-flex;align-items:center;transition:background .2s}
.pl-item:hover .pl-go{background:var(--pl-navy-2)}

.pl-rise{opacity:0;transform:translateY(10px);animation:plRise .6s var(--pl-ease) forwards}
@keyframes plRise{to{opacity:1;transform:none}}

/* Cumpleaños dentro del nuevo panel: el estilo anterior era para fondo
   oscuro (texto blanco) y no se leía sobre la tarjeta blanca. */
#ptab-resumen .portal-birthday-list{margin-top:4px;display:grid;gap:6px}
#s-perfil .portal-birthday-item{display:flex!important;align-items:center;gap:12px;padding:8px 10px;border:1px solid #E6EBF1;border-radius:12px;background:#fff!important;opacity:1!important;transition:border-color .2s,background .2s}
#s-perfil .portal-birthday-item:hover{border-color:#D4C39A;background:#FFFDF8!important}
#s-perfil .portal-birthday-day{min-width:38px;height:36px;border-radius:9px;display:grid;place-items:center;background:var(--pl-gold-soft)!important;color:#7A5F22!important;font-weight:800!important;font-size:14px!important}
#s-perfil .portal-birthday-item strong{display:block;color:var(--pl-text)!important;font-size:13px!important;font-weight:700!important;text-transform:capitalize}
#s-perfil .portal-birthday-item span{display:block;color:var(--pl-muted)!important;font-size:11.5px!important}
#s-perfil .portal-birthday-empty{color:var(--pl-muted)!important;font-size:13px}
#ptab-resumen .pl-grid{align-items:stretch}
#ptab-resumen .pl-stack{display:flex;flex-direction:column;gap:16px;min-width:0}
#ptab-resumen .pl-stack > .pl-panel:last-child{flex:1}

/* ==========================================================================
   Pantallas internas: mismos componentes que el ERP
   ========================================================================== */
#s-perfil .perfil-tab-content{font-size:13.5px;color:var(--pl-text)}

/* Encabezados de módulo (boletas, expediente, descansos, intro) */
#s-perfil :is(.boletas-head,.expediente-head,.med-head,.module-intro-compact,.vac-section-intro,.renta-head-compact){
  background:#fff!important;border:1px solid #E1E6EE!important;border-left:0!important;border-radius:14px!important;
  box-shadow:var(--pl-shadow)!important;padding:16px 18px!important;margin-bottom:16px!important;position:relative}
#s-perfil :is(.boletas-head,.expediente-head,.med-head,.module-intro-compact,.vac-section-intro,.renta-head-compact):before{
  content:"";position:absolute;left:18px;top:0;width:44px;height:3px;border-radius:0 0 3px 3px;background:var(--pl-gold)}
#s-perfil :is(.boletas-head,.expediente-head,.med-head) h3,#s-perfil :is(.module-intro-compact,.vac-section-intro) strong{
  display:block;font-size:17px!important;font-weight:800!important;color:var(--pl-text)!important;margin:0 0 2px!important}
#s-perfil :is(.boletas-head,.expediente-head,.med-head) p,#s-perfil :is(.module-intro-compact,.vac-section-intro) span{
  font-size:13px!important;color:var(--pl-muted)!important;line-height:1.5}
#s-perfil .module-intro-compact{display:flex!important;align-items:center;justify-content:space-between;gap:16px}

/* Paneles y tarjetas genéricas */
#s-perfil :is(.portal-panel,.perfil-card,.med-card,.vac-table-card,.vac-legal-card,.ben-box,.manual-card,.consulta-card,.boletin-reader,.expediente-contribute,.s34-grid>section,.vida-ley-grid>*){
  background:#fff!important;border:1px solid #E1E6EE!important;border-radius:14px!important;box-shadow:var(--pl-shadow)!important}
#s-perfil :is(.portal-panel,.perfil-card,.med-card,.ben-box,.manual-card){padding:18px!important}
#s-perfil .portal-panel-kicker,#s-perfil .portal-eyebrow{font-size:10.5px!important;font-weight:800!important;letter-spacing:.09em!important;text-transform:uppercase;color:var(--pl-gold)!important}
#s-perfil .portal-panel-head h3,#s-perfil .med-card h4,#s-perfil .ben-box-title,#s-perfil .manual-card-head h3,#s-perfil .manual-card-head strong{font-size:16px!important;font-weight:800!important;color:var(--pl-text)!important}
#s-perfil .sub,#s-perfil p.sub,#s-perfil .hint,#s-perfil .muted{color:var(--pl-muted)!important;font-size:12.5px!important}

/* Mi información: tarjetas de datos */
#s-perfil .perfil-cards-grid{gap:16px!important}
#s-perfil .perfil-card-header{border-bottom:1px solid #EEF2F6!important;padding-bottom:12px!important;margin-bottom:12px!important}
#s-perfil .perfil-card-header h3{font-size:16px!important;font-weight:800!important;color:var(--pl-text)!important}
#s-perfil .pch-icon{width:36px!important;height:36px!important;border-radius:10px!important;background:var(--pl-gold-soft)!important;color:#8A6C2B!important;border:0!important}
#s-perfil .perfil-card-field label{font-size:11.5px!important;color:var(--pl-muted)!important;text-transform:none!important;letter-spacing:0!important;font-weight:600!important}
#s-perfil .pcf-val{font-size:13.5px!important;font-weight:700!important;color:var(--pl-text)!important}

/* Botones */
#s-perfil :is(.btn-primary,.portal-primary-action,.ben-btn,.boleta-btn.primary){background:var(--pl-navy)!important;color:#fff!important;border:0!important;border-radius:9px!important;min-height:38px;padding:0 16px!important;font-weight:700!important;font-size:13px!important;box-shadow:none!important;transition:background .2s,transform .2s var(--pl-ease)}
#s-perfil :is(.btn-primary,.portal-primary-action,.ben-btn):hover{background:var(--pl-navy-2)!important;transform:translateY(-1px)}
#s-perfil .ben-btn-gold{background:var(--pl-gold)!important;color:var(--pl-navy)!important}
#s-perfil .ben-btn-gold:hover{background:var(--pl-gold-hover)!important}
#s-perfil :is(.btn-outline,.perfil-update-btn,.boleta-btn,.btn-remype,.attendance-geo-btn,.vac-si-no-btn,.btn-info-inline){background:#fff!important;color:var(--pl-navy)!important;border:1px solid #D5DEE8!important;border-radius:9px!important;min-height:34px;padding:0 12px!important;font-weight:700!important;font-size:12.5px!important;box-shadow:none!important;transition:background .2s,border-color .2s}
#s-perfil :is(.btn-outline,.perfil-update-btn,.boleta-btn,.btn-remype,.attendance-geo-btn,.vac-si-no-btn,.btn-info-inline):hover{background:var(--pl-surface-2)!important;border-color:#C2CCD8!important}
#s-perfil button:disabled{opacity:.55;cursor:not-allowed;transform:none!important}

/* Sub-pestañas y filtros: cápsula segmentada como el ERP */
#s-perfil :is(.vac-subtabs,.expediente-filters){display:inline-flex!important;flex-wrap:wrap;gap:4px!important;padding:5px!important;background:#fff!important;border:1px solid var(--pl-line)!important;border-radius:12px!important;box-shadow:var(--pl-shadow)!important;margin-bottom:16px!important;width:auto!important}
#s-perfil :is(.vac-subtab,.expediente-filter){flex:none!important;border:0!important;background:transparent!important;color:#33435A!important;padding:8px 14px!important;border-radius:8px!important;font-weight:700!important;font-size:13px!important;box-shadow:none!important;min-height:0!important;transition:background .2s,color .2s}
#s-perfil :is(.vac-subtab,.expediente-filter):hover{background:var(--pl-surface-3)!important}
#s-perfil :is(.vac-subtab,.expediente-filter).active{background:var(--pl-navy)!important;color:#fff!important}

/* Indicadores (vacaciones, gratificación, CTS, asistencia) */
#s-perfil :is(.vac-stat-card,.s34-kpi,.rb-item){background:#fff!important;border:1px solid #E1E6EE!important;border-radius:14px!important;box-shadow:var(--pl-shadow)!important;transition:transform .3s var(--pl-ease),box-shadow .3s}
#s-perfil :is(.vac-stat-card,.s34-kpi,.rb-item):hover{transform:translateY(-2px);box-shadow:var(--pl-shadow-hover)!important}
#s-perfil .vsc-icon{border-radius:10px!important;background:var(--pl-gold-soft)!important;color:#8A6C2B!important}
#s-perfil .vac-stat-amber .vsc-icon{background:#FFF3DC!important;color:#A87413!important}
#s-perfil .vac-stat-purple .vsc-icon{background:#E8EEF7!important;color:var(--pl-navy)!important}
#s-perfil .vsc-valor,#s-perfil .rb-val,#s-perfil .ben-renta-num,#s-perfil .rc-amount{color:var(--pl-navy)!important;font-weight:800!important}
#s-perfil .vsc-label,#s-perfil .rb-label,#s-perfil .rc-label{color:var(--pl-muted)!important;font-size:12px!important}
#s-perfil .vac-seg-amber,#s-perfil .vac-leyenda-dot.amber{background:var(--pl-gold)!important}
#s-perfil .vac-seg-purple,#s-perfil .vac-leyenda-dot.purple{background:var(--pl-navy)!important}
#s-perfil .vac-distribucion-wrap{background:#fff!important;border:1px solid #E1E6EE!important;border-radius:14px!important;box-shadow:var(--pl-shadow)!important}
#s-perfil .vac-distribucion-label{font-weight:800!important;color:var(--pl-text)!important;font-size:14px!important}
#s-perfil .vac-distribucion-leyenda,#s-perfil .gt-leyenda{color:var(--pl-muted)!important;font-size:12px!important}

/* Tablas */
#s-perfil :is(.vac-tabla,.month-table,.table-wrap table,.ben-box table){width:100%;border-collapse:separate!important;border-spacing:0!important;font-size:13px!important}
#s-perfil :is(.vac-tabla,.month-table,.table-wrap table,.ben-box table) th{background:var(--pl-surface-2)!important;color:var(--pl-muted)!important;font-size:11.5px!important;font-weight:700!important;text-transform:none!important;letter-spacing:0!important;padding:10px 12px!important;border-bottom:1px solid var(--pl-line)!important;text-align:left}
#s-perfil :is(.vac-tabla,.month-table,.table-wrap table,.ben-box table) td{padding:10px 12px!important;border-bottom:1px solid #EEF2F6!important;color:var(--pl-text)!important;background:#fff}
#s-perfil :is(.vac-tabla,.month-table,.table-wrap table,.ben-box table) tr:hover td{background:#FAFBFD!important}
#s-perfil :is(.vac-tabla,.month-table,.table-wrap table,.ben-box table) tr:last-child td{border-bottom:0!important}
#s-perfil :is(.month-table-wrap,.table-wrap){border:1px solid #E1E6EE!important;border-radius:12px!important;overflow:auto;background:#fff}

/* Estados (pills) */
#s-perfil :is(.tag-estado-v2,.pill,.s34-pill,.exp-status,.s34-day-status,.tag-provisional){display:inline-flex;align-items:center;gap:5px;border-radius:7px!important;padding:3px 9px!important;font-size:11.5px!important;font-weight:700!important;border:0!important}
#s-perfil :is(.tag-v2-completado,.pill-green,.s34-day-status.ok){background:#E3F3EC!important;color:var(--pl-green)!important}
#s-perfil :is(.tag-v2-en_curso,.pill-blue){background:#E8EEF7!important;color:var(--pl-navy)!important}
#s-perfil :is(.tag-v2-pendiente_vigente,.pill-gold,.tag-provisional,.s34-day-status.warn){background:var(--pl-gold-soft)!important;color:#7A5F22!important}
#s-perfil .tag-v2-pendiente_acumulado{background:#FDECEC!important;color:var(--pl-red)!important}
#s-perfil .s34-pill{background:var(--pl-surface-3)!important;color:#33435A!important}

/* Avisos */
#s-perfil :is(.box.box-info,.ben-info-block,.vac-desea-solicitar-box,.s34-summary-note,.perfil-nota-remype,.contract-expiry-note,.vida-ley-alert,.med-legal,.manual-tip){
  background:#F3F6FA!important;border:1px solid #DCE3EB!important;border-left:3px solid var(--pl-navy)!important;border-radius:10px!important;color:#33435A!important;font-size:13px!important}
#s-perfil :is(.ben-err-box,.error-box){background:#FDECEC!important;border:1px solid #F3C9C9!important;border-left:3px solid var(--pl-red)!important;border-radius:10px!important;color:#7F2A2A!important}
#s-perfil .vac-inline-status{font-size:12.5px!important}
#s-perfil .vac-inline-status.success{color:var(--pl-green)!important}
#s-perfil .vac-inline-status.error{color:var(--pl-red)!important}

/* Formularios */
#s-perfil .perfil-tab-content :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){
  min-height:38px;border:1px solid #D5DEE8!important;border-radius:10px!important;background:#fff!important;color:var(--pl-text)!important;font:inherit;font-size:13.5px!important;padding:8px 11px!important;box-shadow:none!important;transition:border-color .2s,box-shadow .2s}
#s-perfil .perfil-tab-content :is(input,select,textarea):focus{outline:none!important;border-color:var(--pl-navy)!important;box-shadow:0 0 0 3px rgba(29,48,88,.12)!important}
#s-perfil .perfil-tab-content input[type=file]{font-size:12.5px;color:var(--pl-muted)}
#s-perfil .perfil-tab-content input[type=file]::file-selector-button{border:1px solid #D5DEE8;background:#fff;color:var(--pl-navy);border-radius:8px;padding:7px 12px;font:inherit;font-weight:700;margin-right:10px;cursor:pointer}
#s-perfil .perfil-tab-content :is(.med-field,.ben-field,.s34-field,.consulta-field,.field) label{font-size:12px!important;font-weight:700!important;color:#33435A!important;text-transform:none!important;letter-spacing:0!important}
#s-perfil .ben-readonly-field{background:var(--pl-surface-2)!important;border:1px solid var(--pl-line)!important;border-radius:10px!important}

/* Gratificación / CTS: línea de meses */
#s-perfil .gt-mes-verde .gt-mes-punto{background:var(--pl-green)!important;border-color:var(--pl-green)!important}
#s-perfil .gt-mes-azul .gt-mes-punto{background:var(--pl-navy)!important;border-color:var(--pl-navy)!important}
#s-perfil .gt-mes-ambar .gt-mes-punto{background:var(--pl-gold)!important;border-color:var(--pl-gold)!important}
#s-perfil .gt-mes-nombre{color:var(--pl-text)!important;font-weight:700!important;font-size:12.5px!important}
#s-perfil .gt-mes-estado{color:var(--pl-muted)!important;font-size:11.5px!important}

/* Renta de 5ta: barras */
#s-perfil .ben-renta-chart-fill-done{background:var(--pl-navy)!important}
#s-perfil .ben-renta-chart-fill-proj{background:var(--pl-gold)!important}
#s-perfil .ben-renta-chart-bar{background:var(--pl-surface-3)!important;border-radius:99px!important}

/* Asistencia */
#s-perfil .attendance-clock strong{color:var(--pl-navy)!important;font-weight:800!important}
#s-perfil .attendance-actions button{background:#fff!important;border:1px solid #E1E6EE!important;border-radius:12px!important;color:var(--pl-text)!important;transition:border-color .2s,transform .25s var(--pl-ease),box-shadow .25s}
#s-perfil .attendance-actions button:not(:disabled):hover{border-color:#D4C39A!important;transform:translateY(-2px);box-shadow:var(--pl-shadow-hover)}
#s-perfil .attendance-actions button strong{color:var(--pl-text)!important;font-size:14px!important;font-weight:800!important}
#s-perfil .attendance-actions button span{color:var(--pl-muted)!important;font-size:12px!important}
#s-perfil .attendance-geo-status.ok{background:#E3F3EC!important;color:var(--pl-green)!important;border:0!important;border-radius:9px!important}
#s-perfil .s34-day{background:var(--pl-surface-3)!important;border:0!important;border-radius:9px!important}

/* Expediente y documentos vacíos */
#s-perfil :is(.expediente-empty,.boletas-empty,.attendance-empty,.s34-schedule-empty){background:#fff!important;border:1px dashed #D5DEE8!important;border-radius:12px!important;color:var(--pl-muted)!important;padding:18px!important;text-align:center}
#s-perfil :is(.expediente-empty,.boletas-empty) strong{color:var(--pl-text)!important;font-size:14px!important}

/* Esqueletos de carga */
#s-perfil .skeleton-card{background:#fff!important;border:1px solid #E1E6EE!important;border-radius:14px!important;box-shadow:none!important}
#s-perfil .skeleton-line{background:linear-gradient(90deg,#EEF2F6 25%,#F6F8FB 50%,#EEF2F6 75%)!important;background-size:200% 100%!important;border-radius:6px!important}

/* Ventanas emergentes */
.modal-overlay{background:rgba(16,28,52,.48)!important;backdrop-filter:blur(3px)}
.modal-card,.boletin-modal-card,.s34-modal-box{border-radius:16px!important;border:1px solid #E1E6EE!important;box-shadow:0 24px 60px rgba(16,28,52,.28)!important;font-family:Manrope,Arial,sans-serif}

/* Última actualización */
#s-perfil .portal-last-updated{color:var(--pl-muted)!important;font-size:11.5px!important;margin-top:14px}

#s-perfil :is(.vac-subtabs,.expediente-filters){width:fit-content!important;max-width:100%}

/* Gratificación / CTS / Renta: datos considerados y bloque de resultado */
#s-perfil .ben-form-grid{background:#fff!important;border:1px solid #E1E6EE!important;border-radius:14px!important;box-shadow:var(--pl-shadow)!important;padding:16px 18px!important;margin-bottom:16px!important}
#s-perfil .ben-readonly-field{min-height:38px;display:flex;align-items:center;padding:8px 11px!important;font-size:13.5px!important;font-weight:700!important;color:var(--pl-text)!important}
#s-perfil .btn-info-inline{min-height:0!important;width:20px;height:20px;padding:0!important;border-radius:50%!important;display:inline-grid;place-items:center;font-size:11px!important}
#s-perfil .result-card{background:var(--pl-navy)!important;border-radius:16px!important;box-shadow:0 12px 32px rgba(29,48,88,.18)!important;position:relative;overflow:hidden}
#s-perfil .result-card:before{content:"";position:absolute;right:-60px;top:-80px;width:220px;height:220px;border-radius:50%;background:rgba(190,159,86,.14)}
#s-perfil .result-card .rc-label{color:var(--pl-gold)!important;font-size:11px!important;font-weight:800!important;letter-spacing:.09em}
#s-perfil .result-card .rc-amount{color:#fff!important;font-weight:800!important}
#s-perfil .result-card .sub{color:rgba(255,255,255,.72)!important}
#s-perfil .ben-renta-num{color:#fff!important;background:var(--pl-navy)!important}

/* Contraste (revisión automática WCAG): textos pequeños con color legible */
#s-perfil{--pl-muted:#5B6577;--pl-gold-text:#8A6C2B}
#s-perfil :is(.portal-panel-kicker,.portal-eyebrow,.pl-kicker){color:var(--pl-gold-text)!important}
#s-perfil :is(.box.box-info,.ben-info-block,.vac-desea-solicitar-box,.s34-summary-note,.perfil-nota-remype,.contract-expiry-note,.vida-ley-alert,.med-legal,.manual-tip) :is(p,span,li,small){color:#33435A!important}
#s-perfil .perfil-tab-content :is(small,.consulta-counter,.consulta-counter span,.med-upload-note,.attendance-geo-status,.ben-calc-timestamp,.manual-route span){font-size:12px!important}
#s-perfil .perfil-tab-content :is(small,.consulta-counter,.consulta-counter span,.med-upload-note,.ben-calc-timestamp){color:var(--pl-muted)!important}
#s-perfil .renta-head-compact p,#s-perfil .expediente-contribute-copy span{font-size:13px!important;color:var(--pl-muted)!important}
#s-perfil :is(.tag-v2-completado,.pill-green,.s34-day-status.ok,.attendance-geo-status.ok){color:#0F6B4A!important}
#s-perfil .s34-day .muted,#s-perfil .manual-route span{color:var(--pl-muted)!important}
#s-perfil .s34-kpi span{font-size:11.5px!important;color:var(--pl-muted)!important;text-transform:none!important;letter-spacing:0!important}
#s-perfil .s34-kpi strong{color:var(--pl-navy)!important;font-weight:800!important}
#s-perfil .consulta-empty{font-size:13px!important;color:var(--pl-muted)!important}
#s-perfil .perfil-tab-content label span{color:var(--pl-muted)!important}

/* Avisos y notas: siempre con aire interior (el texto no debe tocar el borde) */
#s-perfil :is(.box,.box.box-info,.ben-info-block,.vac-desea-solicitar-box,.s34-summary-note,.perfil-nota-remype,.contract-expiry-note,.vida-ley-alert,.med-legal,.manual-tip,.ben-err-box,.error-box,.consulta-empty,.attendance-geo-status){
  padding:12px 16px!important;line-height:1.55!important}
#s-perfil :is(.perfil-nota-remype,.box,.s34-summary-note) p{margin:0!important}
#s-perfil :is(.perfil-nota-remype,.box) p + p{margin-top:6px!important}
#s-perfil .perfil-nota-remype{margin-top:12px!important}

/* Consulta REMYPE: botón compacto */
#s-perfil .btn-remype-chip{display:inline-flex;align-items:center;gap:8px;margin-top:12px;padding:6px 12px 6px 6px;border:1px solid #E1E6EE;border-radius:999px;background:#fff;color:var(--pl-navy);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;transition:border-color .2s,background .2s}
#s-perfil .btn-remype-chip:hover{border-color:#D4C39A;background:#FFFDF8}
#s-perfil .btn-remype-chip span{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--pl-gold-soft);color:var(--pl-gold-text);font-weight:800;font-size:12px}

/* Expediente: aporte de contratos */
#s-perfil .expediente-contribute{padding:16px 18px!important}
#s-perfil .expediente-contribute-copy strong{font-size:15px!important;font-weight:800!important;color:var(--pl-text)!important}
#s-perfil .expediente-contribute-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}
#s-perfil .expediente-contribute-grid .full{grid-column:1/-1!important}
#s-perfil .expediente-contribute-grid :is(select,input){width:100%!important}
@media(max-width:760px){#s-perfil .expediente-contribute-grid{grid-template-columns:1fr!important}}
#s-perfil .expediente-contribute-grid label{font-size:12px!important;font-weight:700!important;color:#33435A!important;text-transform:none!important;letter-spacing:0!important}

@media(max-width:980px){.pl-c7,.pl-c5{grid-column:span 12}}
@media(max-width:768px){#s-perfil .portal-company-legal{display:none!important}#s-perfil .portal-content{padding:16px 14px 32px!important}}
@media(max-width:560px){.pl-hero{padding:20px 18px}.pl-hero h1{font-size:20px}.pl-info{grid-template-columns:1fr}.pl-big{font-size:24px}}
@media(prefers-reduced-motion:reduce){.pl-rise{animation:none;opacity:1;transform:none}.pl-panel,.pl-card:after,.pl-prog span,.pl-hero:before{transition:none}}

/* Ajustes de la revisión final (06/10/2026) */
#s-perfil .med-links a{font-size:12px!important}
#s-perfil .btn-remype-chip span{color:#6B5220!important}

/* Resumen "Mis solicitudes de vacaciones" */
.mis-sol-resumen{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:12px 0}
.mis-sol-kpi{border:1px solid #E3E8F0;border-radius:10px;padding:10px 12px;background:#F8FAFC}
.mis-sol-kpi span{display:block;font-size:12px;color:#5B6B82}
.mis-sol-kpi strong{font-size:18px;color:#1D3058}
.mis-sol-tabla{width:100%;border-collapse:collapse;font-size:13px}
.mis-sol-tabla th,.mis-sol-tabla td{padding:8px;border-bottom:1px solid #E3E8F0;text-align:left}
.mis-sol-badge{padding:3px 8px;border-radius:999px;font-size:12px;font-weight:600}
.mis-sol-badge.b-ok{background:#EFF9F4;color:#2D6A51}
.mis-sol-badge.b-warn{background:#FFF9EC;color:#765B21}
.mis-sol-badge.b-err{background:#FFF2F2;color:#8A3C3C}
.mis-sol-badge.b-muted{background:#F1F3F6;color:#5B6B82}
.success-panel .actions{gap:12px;flex-wrap:wrap}
