body{background:#f4f7fb;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.sidebar{min-height:100vh;background:#0f2744;color:white}.card-kpi{border:0;border-radius:16px;box-shadow:0 8px 24px rgba(15,39,68,.08)}.level{font-weight:800;letter-spacing:.08em}.progress{height:14px;border-radius:9px}.tool-row{padding:12px 0;border-bottom:1px solid #edf0f4}.topbar{background:white;border-bottom:1px solid #e8edf3}.badge-soft{background:#eaf1f8;color:#0f2744}.btn-primary{background:#0f5fa8;border-color:#0f5fa8}
.section-title{font-weight:800;color:#0f2744;font-size:1.05rem;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid #e8edf3}.bg-light-subtle{background:#f8fafc!important}.form-label{color:#26384d}.form-control,.form-select{border-radius:10px;min-height:44px}.form-control:focus,.form-select:focus{border-color:#76a9d7;box-shadow:0 0 0 .2rem rgba(15,95,168,.12)}
.notification-item{padding:16px;border-bottom:1px solid #e8edf3}.notification-item:last-child{border-bottom:0}.notification-unread{background:#fff7df;border-left:4px solid #e8a400}.table-warning td{background:#fff7df!important}
.action-mini{border:1px solid #e5eaf0;border-radius:12px;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;background:#fff}.action-mini b{font-size:1.35rem}.action-mini.warning{background:#fff9e8;border-color:#ffe49a}.action-mini.danger{background:#fff2f2;border-color:#ffc9c9}.action-mini.success{background:#eefaf3;border-color:#b9e8ca}
.consolidated-preview table{min-width:1700px}.consolidated-preview th{white-space:normal;min-width:120px;vertical-align:middle;background:#f4f7fb;color:#0f2744}.consolidated-preview td{vertical-align:top;min-width:110px}
.dashboard-wide{max-width:1800px}.chart-card{min-height:420px}.chart-card canvas{width:100%!important;height:320px!important}.level-pill{display:inline-block;padding:.35rem .65rem;border-radius:999px;font-weight:800;font-size:.78rem;letter-spacing:.04em}.level-base{background:#e7e5e4;color:#57534e}.level-plata{background:#e2e8f0;color:#475569}.level-oro{background:#fef3c7;color:#92400e}.level-diamante{background:#dbeafe;color:#1d4ed8}@media(max-width:767.98px){.chart-card{min-height:360px}.chart-card canvas{height:280px!important}.dashboard-wide{padding-left:12px!important;padding-right:12px!important}}
.profile-photo-sm,.profile-photo-md,.profile-photo-lg{object-fit:cover;border-radius:50%;border:3px solid #fff;box-shadow:0 4px 14px rgba(15,39,68,.15);flex:0 0 auto}.profile-photo-sm{width:42px;height:42px}.profile-photo-md{width:68px;height:68px}.profile-photo-lg{width:92px;height:92px}.profile-placeholder{display:flex;align-items:center;justify-content:center;background:#dbeafe;color:#0f5fa8;font-weight:800;font-size:1.4rem}.profile-photo-lg.profile-placeholder{font-size:2rem}.supervisor-summary-card{background:#fff;border:1px solid #e8edf3;border-radius:16px;padding:18px}.tool-progress-row{padding:8px 0;border-bottom:1px solid #f0f3f7}.tool-progress-row:last-child{border-bottom:0}.progress-thin{height:7px}.module-coming{opacity:.72;border:1px dashed #cbd5e1}
.document-home-alert{border-radius:18px;padding:20px 22px;color:#fff;box-shadow:0 10px 26px rgba(15,39,68,.12)}.document-home-alert-danger{background:linear-gradient(135deg,#991b1b,#dc2626)}.document-home-alert-warning{background:linear-gradient(135deg,#a16207,#d97706)}.document-alert-icon{font-size:2rem;line-height:1}.document-alert-item{height:100%;border-radius:12px;padding:12px 14px;background:rgba(255,255,255,.94);color:#26384d}.document-home-alert .btn-light{font-weight:700}@media(max-width:575.98px){.document-home-alert{padding:16px}.document-alert-item{padding:10px 12px}}
/* V2.3 · Dashboard documental visual */
.doc-kpi{height:100%;min-height:112px;border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid transparent;box-shadow:0 8px 22px rgba(15,39,68,.06)}.doc-kpi span{font-weight:700;font-size:.86rem}.doc-kpi b{font-size:2rem;line-height:1}.doc-kpi-success{background:#effaf3;border-color:#bde6c9;color:#17633a}.doc-kpi-soon{background:#fffbea;border-color:#f7e4a3;color:#7a5b00}.doc-kpi-attention{background:#fff5e8;border-color:#ffd0a1;color:#8a4a00}.doc-kpi-danger{background:#fff0f0;border-color:#f5bcbc;color:#9f1d1d}.doc-kpi-expired{background:#fde8e8;border-color:#ef9a9a;color:#7f1d1d}.doc-kpi-missing{background:#f3f4f6;border-color:#d7dce2;color:#4b5563}
.doc-priority-list{max-height:330px;overflow:auto}.doc-priority-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:10px 0;border-bottom:1px solid #edf0f4}.doc-priority-row:last-child{border-bottom:0}.doc-type-card{height:100%;background:#fbfcfe;border:1px solid #e4eaf1;border-radius:14px;padding:15px}.doc-matrix table{min-width:1280px}.doc-matrix th{background:#f5f8fb;color:#0f2744;white-space:nowrap}.doc-matrix td{vertical-align:middle}.doc-matrix .sticky-col{position:sticky;left:0;background:#fff;z-index:2;min-width:260px}.doc-matrix thead .sticky-col{background:#f5f8fb;z-index:3}.doc-status-dot{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:6px;box-shadow:0 0 0 2px #fff,0 0 0 3px rgba(15,39,68,.08)}
.doc-detail-card{height:100%;background:#fff;border:1px solid #e5eaf0;border-left-width:5px;border-radius:14px;padding:16px}.doc-detail-grid{display:grid;grid-template-columns:minmax(115px,40%) 1fr;gap:8px 12px;font-size:.88rem}.doc-detail-grid span{color:#64748b}.doc-detail-grid b{font-weight:600;overflow-wrap:anywhere}.border-success{border-left-color:#198754!important}.border-warning{border-left-color:#ffc107!important}.border-danger{border-left-color:#dc3545!important}.border-secondary{border-left-color:#6c757d!important}
@media(max-width:575.98px){.doc-kpi{min-height:96px;padding:13px}.doc-kpi b{font-size:1.6rem}.doc-priority-row{align-items:flex-start}.doc-detail-grid{grid-template-columns:1fr}.doc-detail-grid span{margin-top:5px}.doc-matrix .sticky-col{min-width:220px}}
/* V2.5 · Separación Supervisor: Mi Información / Mi Personal */
.supervisor-topbar{position:relative;z-index:5}.supervisor-view-btn{min-width:145px;font-weight:700}.supervisor-context-bar{background:#fff;border-bottom:1px solid #e8edf3}.supervisor-context-bar.context-personal{box-shadow:inset 4px 0 0 #0f5fa8}.supervisor-context-bar.context-personnel{box-shadow:inset 4px 0 0 #198754}.personnel-count-badge{background:#0f2744;color:#fff;border-radius:16px;padding:12px 18px;display:flex;gap:14px;align-items:center;box-shadow:0 8px 22px rgba(15,39,68,.12)}.personnel-count-badge span{font-size:.82rem;opacity:.8}.personnel-count-badge b{font-size:1.9rem;line-height:1}.personnel-kpi{height:100%;min-height:118px;background:#fff;border:1px solid #e5eaf0;border-radius:16px;padding:15px 16px;display:flex;flex-direction:column;justify-content:center;box-shadow:0 7px 20px rgba(15,39,68,.05)}.personnel-kpi span{font-weight:700;color:#334155}.personnel-kpi b{font-size:2rem;line-height:1.1;margin:.25rem 0}.personnel-kpi small{color:#64748b}.personnel-kpi.warning{background:#fff9e8;border-color:#ffe49a}.personnel-kpi.critical{background:#fff0f0;border-color:#f2b8b8}.module-roadmap{height:100%;min-height:180px;border:1px dashed #b8c5d3;background:#f8fafc;border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:8px}.module-roadmap b{font-size:1.05rem}.module-roadmap span{color:#64748b}.module-roadmap small{margin-top:auto;color:#0f5fa8;font-weight:700;text-transform:uppercase;letter-spacing:.04em}@media(max-width:700px){.supervisor-view-btn{min-width:auto}.supervisor-context-bar .text-secondary{display:block;margin-left:0!important;margin-top:2px}.personnel-count-badge{width:100%;justify-content:space-between}}

/* V2.6 · Vehículos */
.vehicle-hero{background:linear-gradient(135deg,#0f2744,#0f5fa8);color:#fff;border-radius:18px;padding:24px;display:flex;justify-content:space-between;align-items:center;gap:20px;box-shadow:0 10px 28px rgba(15,39,68,.18)}.vehicle-doc-card{height:100%;background:#fff;border:1px solid #e5eaf0;border-left-width:5px;border-radius:14px;padding:15px}.vehicle-doc-mini{height:100%;min-height:98px;border:1px solid #e4eaf1;border-radius:13px;padding:12px;background:#f8fafc;display:flex;flex-direction:column;gap:6px}.vehicle-doc-mini .badge{align-self:flex-start}.vehicle-doc-mini small{color:#64748b}.vehicle-fleet-status{border-radius:14px;background:#f8fafc;border:1px solid #e5eaf0;padding:14px}@media(max-width:575.98px){.vehicle-hero{align-items:flex-start;flex-direction:column}.vehicle-hero .text-end{text-align:left!important}}

/* =========================================================
   V2.7 · Ingenya360 · Identidad visual y experiencia mobile
   ========================================================= */
:root{
  --i360-navy:#111827;
  --i360-blue:#0b2a91;
  --i360-blue-2:#1559b7;
  --i360-sky:#eaf2ff;
  --i360-gray:#74777e;
  --i360-border:#e4e9f0;
  --i360-bg:#f3f6fa;
  --i360-radius:18px;
}
html{scroll-behavior:smooth}
body{background:linear-gradient(180deg,#f7f9fc 0,#eef3f8 100%);color:#172033;min-height:100vh}
a{transition:color .18s ease,background-color .18s ease,border-color .18s ease,transform .18s ease}
.topbar{
  min-height:64px;
  position:sticky;
  top:0;
  z-index:1030;
  display:flex;
  align-items:center;
  gap:.75rem;
  flex-wrap:wrap;
  background:rgba(255,255,255,.96)!important;
  border-bottom:1px solid rgba(15,39,68,.09)!important;
  box-shadow:0 8px 22px rgba(15,39,68,.06);
  backdrop-filter:blur(10px)
}
.topbar::before{
  content:"";
  display:block;
  width:64px;
  height:40px;
  flex:0 0 64px;
  background:url('ingenya_logo.png') center/contain no-repeat;
}
.topbar>b{font-size:1rem;color:var(--i360-navy);letter-spacing:-.01em}
.topbar>span{margin-left:auto}
.card-kpi{
  border:1px solid rgba(15,39,68,.065)!important;
  border-radius:var(--i360-radius)!important;
  box-shadow:0 9px 28px rgba(15,39,68,.075)!important;
  background:rgba(255,255,255,.98);
}
.card-kpi:hover{box-shadow:0 12px 32px rgba(15,39,68,.095)!important}
.btn{border-radius:11px;font-weight:650}
.btn-primary{background:linear-gradient(135deg,var(--i360-blue),var(--i360-blue-2));border-color:var(--i360-blue);box-shadow:0 5px 14px rgba(11,42,145,.16)}
.btn-primary:hover{background:linear-gradient(135deg,#091f70,#104b9d);border-color:#091f70;transform:translateY(-1px)}
.btn-outline-primary{color:var(--i360-blue);border-color:#9db8dc}
.btn-outline-primary:hover{background:var(--i360-blue);border-color:var(--i360-blue);color:#fff}
.form-control,.form-select{border-color:#dbe2ea;background:#fff}
.form-control:focus,.form-select:focus{border-color:#7195d4;box-shadow:0 0 0 .2rem rgba(11,42,145,.10)}
.table{--bs-table-bg:transparent}.table thead th{color:#24364b;font-size:.86rem;text-transform:none;letter-spacing:.01em;border-bottom-width:1px}.table tbody tr:hover{background:rgba(234,242,255,.55)}
.badge{border-radius:999px;padding:.45em .7em}
.progress{background:#e9eef4}.progress-bar{background:linear-gradient(90deg,var(--i360-blue),#2976d5)}
.section-title{color:var(--i360-navy)}

/* Encabezados de página */
.i360-page-title{font-weight:850;letter-spacing:-.035em;color:var(--i360-navy)}
.i360-kicker{font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;color:var(--i360-blue);font-weight:800}
.i360-soft-panel{background:linear-gradient(135deg,#fff,#f7faff);border:1px solid var(--i360-border);border-radius:20px}

/* Login */
.ingenya-login{background:#0d1726;overflow-x:hidden}
.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);padding:0}
.login-brand-panel{position:relative;overflow:hidden;padding:clamp(42px,7vw,96px);display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 20% 20%,rgba(40,91,205,.35),transparent 34%),linear-gradient(145deg,#091221 0%,#0e203a 54%,#102c58 100%);color:#fff}
.login-brand-panel::after{content:"360";position:absolute;right:-30px;bottom:-85px;font-size:clamp(180px,24vw,370px);font-weight:900;line-height:1;color:rgba(255,255,255,.035);letter-spacing:-.09em}
.login-brand-logo{width:min(300px,72%);height:auto;filter:drop-shadow(0 10px 18px rgba(0,0,0,.22));margin-bottom:34px}
.login-brand-panel h1{font-size:clamp(3rem,6vw,5.5rem);font-weight:900;letter-spacing:-.06em;margin:0;position:relative;z-index:1}
.login-brand-panel .brand-360{color:#7fb0ff}
.login-brand-copy{max-width:620px;font-size:1.08rem;color:#c7d3e6;position:relative;z-index:1}
.login-pill-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;position:relative;z-index:1}.login-pill{padding:8px 13px;border:1px solid rgba(255,255,255,.15);border-radius:999px;background:rgba(255,255,255,.06);font-size:.84rem;color:#e6edf8}
.login-form-wrap{display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#f7f9fc,#eef3f8);padding:32px}
.login-card{width:min(460px,100%);border:1px solid rgba(15,39,68,.08);border-radius:26px;padding:34px;background:rgba(255,255,255,.98);box-shadow:0 24px 60px rgba(10,25,48,.16)}
.login-mobile-logo{width:150px;height:auto;margin-bottom:16px}
.login-card h2{font-weight:900;letter-spacing:-.04em;color:var(--i360-navy)}
.login-card .btn-primary{min-height:48px}

/* Portal trabajador */
.worker-home main{padding-bottom:92px!important}
.worker-welcome{background:linear-gradient(135deg,#0c1d39,#0d3d8f);color:#fff;border:none!important;overflow:hidden;position:relative}
.worker-welcome::after{content:"360";position:absolute;right:-15px;bottom:-55px;font-size:150px;font-weight:900;color:rgba(255,255,255,.055);line-height:1;letter-spacing:-.08em}
.worker-welcome .text-secondary{color:rgba(255,255,255,.72)!important}.worker-welcome h2{position:relative;z-index:1}.worker-welcome .profile-photo-lg,.worker-welcome .profile-placeholder{position:relative;z-index:1;border-color:rgba(255,255,255,.9)}
.worker-action-card{position:relative;overflow:hidden}.worker-action-card .fs-2{width:48px;height:48px;border-radius:15px;display:flex;align-items:center;justify-content:center;background:var(--i360-sky);margin-bottom:12px}.worker-action-card h5{font-weight:800}.worker-action-card .btn{min-height:44px}
.worker-mobile-nav{display:none}

/* Supervisor */
.supervisor-context-bar{background:rgba(255,255,255,.96)}
.supervisor-view-btn{border-radius:12px}.personnel-kpi{border-radius:18px}

/* Cards ejecutivas */
.admin-home .card-kpi,.management-home .card-kpi{transition:transform .18s ease,box-shadow .18s ease}.admin-home .card-kpi:hover,.management-home .card-kpi:hover{transform:translateY(-2px)}

@media(max-width:991.98px){
  .login-layout{grid-template-columns:1fr}.login-brand-panel{display:none}.login-form-wrap{min-height:100vh;padding:22px}.login-card{padding:28px}
}
@media(max-width:767.98px){
  .topbar{padding:.55rem .75rem!important;min-height:58px;gap:.45rem}
  .topbar::before{width:50px;height:32px;flex-basis:50px}
  .topbar>b{font-size:.92rem;max-width:calc(100vw - 85px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .topbar>span{order:3;width:100%;margin-left:0!important;display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
  .topbar>span::-webkit-scrollbar{display:none}.topbar>span .btn{white-space:nowrap;flex:0 0 auto}
  .supervisor-topbar .d-flex:first-child{max-width:calc(100vw - 65px)}
  .supervisor-topbar>.d-flex:last-child{width:100%;overflow-x:auto;flex-wrap:nowrap!important;padding-bottom:2px}
  .supervisor-view-btn{white-space:nowrap;flex:0 0 auto}
  .card-kpi{border-radius:16px!important}
  .worker-home main{padding-bottom:98px!important}.worker-home .container{padding-left:12px;padding-right:12px}
  .worker-action-card{padding:18px!important}.worker-action-card p{font-size:.9rem}
  .worker-mobile-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;z-index:1050;left:10px;right:10px;bottom:10px;background:rgba(12,29,57,.96);border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:7px;box-shadow:0 16px 40px rgba(8,21,42,.28);backdrop-filter:blur(14px)}
  .worker-mobile-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:#dce8fa;font-size:.68rem;gap:2px;padding:5px 2px;border-radius:12px}.worker-mobile-nav a span{font-size:1.15rem}.worker-mobile-nav a:hover,.worker-mobile-nav a.active{background:rgba(255,255,255,.10);color:#fff}
  .doc-matrix .sticky-col{min-width:190px}
}
@media(max-width:420px){
  .login-form-wrap{padding:14px}.login-card{padding:22px;border-radius:20px}.login-mobile-logo{width:128px}.login-card h2{font-size:1.8rem}
  .display-4{font-size:2.4rem}.display-6{font-size:1.7rem}
}

/* V2.8 · Participación, puntos y reconocimiento */
.participation-strip{border:0;border-radius:18px;padding:18px 22px;background:linear-gradient(135deg,#111827,#0b2a91);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:18px;box-shadow:0 12px 30px rgba(11,42,145,.18)}
.participation-hero{border-radius:22px;padding:28px;background:linear-gradient(135deg,#0b2a91,#1559b7);color:#fff;display:flex;justify-content:space-between;align-items:center;box-shadow:0 14px 34px rgba(11,42,145,.22);min-height:190px}
.point-rule-mini{border:1px solid #e5eaf0;border-radius:12px;padding:10px 12px;background:#f8fafc;display:flex;justify-content:space-between;align-items:center;gap:8px;height:100%}.point-rule-mini span{font-size:.82rem;color:#475569}.point-rule-mini b{color:#15803d;white-space:nowrap}
.ranking-row{display:flex;align-items:center;gap:10px;border:1px solid #e7ecf2;background:#fff;border-radius:14px;padding:10px 12px}.ranking-row.ranking-me{background:#eef5ff;border-color:#9cb9e4;box-shadow:inset 3px 0 0 #0b2a91}.ranking-position{width:30px;height:30px;border-radius:50%;background:#eef2f7;display:flex;align-items:center;justify-content:center;font-weight:800;color:#334155;flex:0 0 auto}.ranking-row:nth-child(1) .ranking-position{background:#fef3c7;color:#92400e}.ranking-row:nth-child(2) .ranking-position{background:#e2e8f0;color:#475569}.ranking-row:nth-child(3) .ranking-position{background:#ffedd5;color:#9a3412}
.recognition-card{height:100%;border:1px solid #e4eaf1;border-radius:18px;padding:20px;background:linear-gradient(145deg,#fff,#f8fafc);box-shadow:0 8px 22px rgba(15,39,68,.06)}.recognition-card small{color:#64748b;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.recognition-card h5{font-weight:850;margin:.55rem 0 .25rem;color:#172033}.recognition-gold{background:linear-gradient(145deg,#fffdf4,#fff7d6);border-color:#f2d675}.nonreporter-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid #edf0f4}.nonreporter-row:last-child{border-bottom:0}.ranking-top{background:rgba(250,246,225,.55)}
@media(max-width:575.98px){.participation-strip{padding:15px 16px}.participation-hero{padding:20px;min-height:150px}.participation-hero .display-3{font-size:2.8rem}.recognition-card{padding:16px}}


/* V3.1.1 · Ordenamiento de matriz documental */
.doc-sort-btn{appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;padding:4px 3px;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;border-radius:7px}
.doc-sort-btn:hover,.doc-sort-btn:focus-visible{background:#eaf2ff;color:var(--i360-blue);outline:none}
.doc-sort-btn.active{color:var(--i360-blue);background:#eaf2ff}
.doc-sort-arrow{font-size:.9rem;line-height:1;min-width:12px;text-align:center;color:#66809e}
.doc-sort-btn.active .doc-sort-arrow{color:var(--i360-blue)}
@media(max-width:767.98px){.doc-sort-btn{min-height:38px;padding:6px 4px}}

/* V3.2 · Inicio ejecutivo y navegación principal */
.i360-admin-nav::before{display:none!important}.i360-brand-link{text-decoration:none;display:flex;align-items:center;gap:10px;color:var(--i360-navy);font-weight:900}.i360-brand-link::before{content:"";width:58px;height:36px;background:url('ingenya_logo.png') center/contain no-repeat;display:block}.i360-brand-name{font-size:1.08rem;letter-spacing:-.035em}.i360-brand-name span{color:var(--i360-blue-2)}.i360-admin-menu{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.i360-admin-menu .dropdown-menu{border:1px solid #e5eaf0;border-radius:14px;padding:8px;min-width:235px}.i360-admin-menu .dropdown-item{border-radius:9px;padding:9px 11px;font-size:.9rem}.i360-admin-menu .dropdown-item:hover{background:#eef5ff;color:var(--i360-blue)}
.i360-exec-hero{display:flex;justify-content:space-between;align-items:end;gap:24px;padding:8px 2px}.i360-period-form{display:flex;align-items:end;gap:8px}.i360-period-form label{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#64748b;margin:0 0 4px}.i360-period-form input{width:94px}.i360-period-form select{width:82px}.i360-global-search{display:flex;gap:9px;align-items:center;background:#fff;border:1px solid #dfe6ee;border-radius:18px;padding:9px 10px 9px 15px;box-shadow:0 8px 24px rgba(15,39,68,.055)}.i360-global-search .form-control{border:0;box-shadow:none;min-height:44px}.i360-search-icon{font-size:1.45rem;color:#64748b}.i360-search-results{border-left:4px solid var(--i360-blue)!important}.i360-result-group{height:100%;padding:12px;border-radius:14px;background:#f8fafc;border:1px solid #e7ecf2}.i360-result-group>b{display:block;margin-bottom:7px;color:#0f2744}.i360-result-group a{display:flex;flex-direction:column;text-decoration:none;padding:8px 9px;border-radius:9px;color:#172033}.i360-result-group a:hover{background:#eaf2ff;color:var(--i360-blue)}.i360-result-group a small{color:#64748b}
.exec-kpi{height:100%;min-height:128px;border-radius:18px;padding:17px 18px;display:flex;flex-direction:column;text-decoration:none;border:1px solid #e4e9f0;box-shadow:0 8px 24px rgba(15,39,68,.055);transition:transform .18s ease,box-shadow .18s ease;background:#fff}.exec-kpi:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(15,39,68,.09)}.exec-kpi span{font-size:.82rem;font-weight:800;color:#475569}.exec-kpi b{font-size:2.15rem;line-height:1.05;margin:.3rem 0;color:#172033}.exec-kpi small{color:#64748b;line-height:1.3}.exec-kpi-blue{border-top:4px solid #1559b7}.exec-kpi-green{border-top:4px solid #198754}.exec-kpi-red{border-top:4px solid #dc3545}.exec-kpi-orange{border-top:4px solid #e98300}.exec-kpi-slate{border-top:4px solid #475569}
.exec-ranking-list{display:flex;flex-direction:column;gap:8px}.exec-ranking-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #edf0f4}.exec-ranking-row:last-child{border-bottom:0}.exec-ranking-row .min-w-0{min-width:0}.exec-ranking-row b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-medal{width:30px;text-align:center;font-weight:800;font-size:1.05rem;flex:0 0 30px}.i360-team-status{display:flex;justify-content:space-between;gap:12px;align-items:center;border-radius:12px;background:#f5f8fb;border:1px solid #e6ebf1;padding:10px 12px;font-size:.86rem;color:#475569}
.exec-rop-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.exec-rop-grid div{background:#f8fafc;border:1px solid #e6ebf1;border-radius:13px;padding:11px 12px}.exec-rop-grid span{display:block;font-size:.78rem;color:#64748b;font-weight:700}.exec-rop-grid b{font-size:1.5rem;color:#172033}.exec-alert-list{display:flex;flex-direction:column}.exec-alert-list>a{display:flex;align-items:center;gap:9px;text-decoration:none;color:#172033;padding:10px 0;border-bottom:1px solid #edf0f4}.exec-alert-list>a:last-child{border-bottom:0}.exec-alert-list>a:hover b{color:var(--i360-blue)}.exec-alert-list small{display:block;color:#64748b;font-size:.78rem}.exec-alert-list strong{font-size:.82rem;white-space:nowrap}.alert-dot{width:10px;height:10px;border-radius:50%;flex:0 0 10px}.exec-priority-alerts{display:flex;flex-direction:column;gap:9px}.priority-alert{display:flex;gap:12px;align-items:flex-start;text-decoration:none;color:#172033;border-radius:13px;padding:12px 14px;border:1px solid #e6ebf1}.priority-alert>span{font-size:1.25rem;line-height:1.2}.priority-alert b{display:block}.priority-alert small{display:block;color:#64748b;margin-top:2px}.priority-danger{background:#fff2f2;border-color:#f4c1c1}.priority-warning{background:#fff9e8;border-color:#f6df9e}.priority-info{background:#eef5ff;border-color:#c9dcf4}.exec-notification-list{display:flex;flex-direction:column}.exec-notification-list>a{display:flex;justify-content:space-between;gap:14px;text-decoration:none;color:#172033;padding:11px 0;border-bottom:1px solid #edf0f4}.exec-notification-list>a:last-child{border-bottom:0}.exec-notification-list p{margin:2px 0 0;color:#64748b;font-size:.82rem}.exec-notification-list small{white-space:nowrap;color:#94a3b8;font-size:.74rem}
@media(max-width:991.98px){.i360-admin-nav{align-items:flex-start}.i360-admin-menu{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px;scrollbar-width:none}.i360-admin-menu::-webkit-scrollbar{display:none}.i360-admin-menu>.btn,.i360-admin-menu>.dropdown{flex:0 0 auto}.i360-exec-hero{align-items:flex-start;flex-direction:column}.i360-period-form{width:100%;flex-wrap:wrap}.i360-team-status{align-items:flex-start;flex-direction:column}}
@media(max-width:575.98px){.i360-brand-name{display:none}.i360-brand-link::before{width:52px}.i360-global-search{flex-wrap:wrap}.i360-global-search .form-control{width:calc(100% - 42px)}.i360-global-search .btn{flex:1}.exec-kpi{min-height:112px;padding:14px}.exec-kpi b{font-size:1.75rem}.exec-ranking-row .profile-photo-sm{width:38px;height:38px}.exec-ranking-row .level-pill{font-size:.68rem}.i360-page-title{font-size:1.9rem}.i360-period-form input,.i360-period-form select{width:100px}}


/* V3.2.4 · Supervisión en tres vistas */
.supervisor-context-bar.context-vehicles{box-shadow:inset 4px 0 0 #d97706}
.supervisor-main-tabs{margin-left:auto}.supervisor-main-tabs .supervisor-view-btn{min-width:132px}
.supervisor-alert-btn{position:relative}
.vehicle-module-link{color:var(--i360-navy);transition:transform .15s ease,border-color .15s ease}.vehicle-module-link:hover{color:var(--i360-navy);transform:translateY(-2px);border-color:#b9d3ef}
.doc-sort-btn{background:transparent;border:0;padding:0;font:inherit;font-weight:700;color:inherit;white-space:nowrap}.doc-sort-btn:hover,.doc-sort-btn.active{color:var(--i360-blue)}.doc-sort-arrow{font-size:.85em;margin-left:2px}
@media(max-width:700px){.supervisor-main-tabs{width:100%;overflow-x:auto;flex-wrap:nowrap!important;scrollbar-width:none}.supervisor-main-tabs::-webkit-scrollbar{display:none}.supervisor-main-tabs .supervisor-view-btn{min-width:auto;white-space:nowrap;flex:0 0 auto}.supervisor-context-bar>div>span:last-child{display:none}.vehicle-module-link{min-height:150px}}

/* V3.3.2 · Programación visual de personal · ventana de 12 días */
.shift-kpi-day{border-top:4px solid #7dd3fc!important}.shift-kpi-night{border-top:4px solid #c4b5fd!important}.shift-kpi-rest{border-top:4px solid #cbd5e1!important}.shift-kpi-away{border-top:4px solid #86efac!important}
.shift-legend{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;color:#475569;font-size:.84rem}.shift-legend span{display:inline-flex;align-items:center;gap:6px}.shift-legend i{width:20px;height:12px;border-radius:4px;border:1px solid rgba(15,39,68,.1);display:inline-block}
.shift-day{background:#bae6fd!important;color:#075985!important}.shift-night{background:#ddd6fe!important;color:#5b21b6!important}.shift-rest{background:#d1d5db!important;color:#374151!important}.shift-vacation{background:#bbf7d0!important;color:#166534!important}.shift-leave{background:#fed7aa!important;color:#9a3412!important}.shift-medical{background:#fecdd3!important;color:#9f1239!important}.shift-absence{background:#fecaca!important;color:#991b1b!important}.shift-training{background:#bfdbfe!important;color:#1e40af!important}.shift-other{background:#e5e7eb!important;color:#4b5563!important}
.shift-grid-scroll{overflow:auto;max-width:100%;overscroll-behavior-inline:contain}.shift-grid-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;background:#fff}.shift-grid-table th,.shift-grid-table td{border-bottom:1px solid #e7ecf2;border-right:1px solid #edf1f5}.shift-grid-table thead th{position:sticky;top:0;z-index:5;background:#f8fafc;color:#26384d;text-align:center;font-size:.78rem}.shift-grid-table .shift-sticky-name{position:sticky;left:0;z-index:7;min-width:255px;max-width:255px;background:#fff;text-align:left}.shift-grid-table .shift-sticky-area{position:sticky;left:255px;z-index:7;min-width:150px;max-width:150px;background:#fff;text-align:left}.shift-grid-table thead .shift-sticky-name,.shift-grid-table thead .shift-sticky-area{z-index:9;background:#f5f8fb}.shift-grid-table tbody tr:hover .shift-sticky-name,.shift-grid-table tbody tr:hover .shift-sticky-area{background:#f8fbff}.shift-grid-table tbody tr:hover td:not(.shift-sticky-name):not(.shift-sticky-area){background:#fbfdff}.shift-block-row th{height:38px;text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.shift-block.previous{background:#f1f5f9}.shift-block.current{background:#eaf2ff;color:#0b2a91}.shift-block.next{background:#f8fafc}.shift-day-head{min-width:76px;width:76px;height:56px}.shift-day-head span{display:block;font-weight:600;color:#64748b;font-size:.68rem}.shift-day-head b{display:block;margin-top:2px;font-size:.8rem;color:#1f2937}.shift-day-head.previous{background:#f8fafc}.shift-day-head.current{background:#f2f7ff}.shift-day-head.next{background:#fbfcfe}.shift-day-head.is-today{box-shadow:inset 0 -4px 0 #0b2a91}.shift-grid-cell{padding:3px!important;min-width:76px;width:76px;height:48px;text-align:center;background:#fff}.shift-grid-cell.is-today{background:#f6f9ff!important}.shift-slot{height:38px;min-width:68px;display:flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid rgba(15,39,68,.08);font-size:.78rem;font-weight:800;transition:filter .12s ease,transform .12s ease}.shift-slot:hover{filter:brightness(.96);transform:translateY(-1px)}.shift-slot.empty{background:transparent!important;color:#cbd5e1!important;border-style:dashed;border-color:#e5e7eb}.shift-slot.segment-single{border-radius:9px}.shift-slot.segment-start{border-radius:9px 2px 2px 9px;margin-right:-3px}.shift-slot.segment-mid{border-radius:2px;margin-left:-3px;margin-right:-3px;border-left-color:transparent;border-right-color:transparent}.shift-slot.segment-end{border-radius:2px 9px 9px 2px;margin-left:-3px}.shift-person{display:flex;flex-direction:column;gap:2px;padding:8px 10px}.shift-person b{font-size:.86rem;color:#172033;line-height:1.18}.shift-person small{color:#64748b;font-size:.72rem}.shift-sticky-area{padding:8px 10px!important;font-size:.8rem}.shift-sort-link{color:#26384d;text-decoration:none;font-weight:800;display:inline-flex;align-items:center;gap:4px}.shift-sort-link:hover,.shift-sort-link.active{color:#0b2a91}.shift-area-group td{background:#eef5ff!important;color:#0f2744;font-weight:850;padding:8px 12px!important;position:relative;z-index:3}.shift-details-summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;align-items:center;list-style:none;font-weight:800;color:#172033}.shift-details-summary::-webkit-details-marker{display:none}.shift-details-summary::after{content:'▾';color:#64748b}.shift-details-summary small{font-weight:500;color:#64748b;margin-left:auto;margin-right:8px}.shift-grid-table td:last-child,.shift-grid-table th:last-child{border-right:0}
@media(max-width:767.98px){.shift-grid-table .shift-sticky-name{min-width:185px;max-width:185px}.shift-grid-table .shift-sticky-area{left:185px;min-width:112px;max-width:112px}.shift-day-head,.shift-grid-cell{min-width:66px;width:66px}.shift-slot{min-width:58px}.shift-person{padding:7px 8px}.shift-person b{font-size:.77rem}.shift-person small{font-size:.66rem}.shift-sticky-area{font-size:.72rem;padding:7px 8px!important}.shift-details-summary{align-items:flex-start;flex-direction:column}.shift-details-summary small{margin:0}.shift-legend{font-size:.78rem}.shift-grid-scroll{border-top:1px solid #edf1f5}.shift-grid-table thead th{top:0}}

/* V3.3.3 · edición rápida de turnos */
.quick-shift-edit{width:100%;cursor:pointer;border:1px solid rgba(15,39,68,.08);padding:0}.quick-shift-edit.empty{font-size:1rem;color:#94a3b8!important}.quick-shift-edit.empty:hover{background:#f1f5f9!important;color:#0b2a91!important}.quick-shift-hint{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.quick-shift-modal .modal-header{background:#f7faff}.quick-shift-current{border:1px solid #e5eaf0;border-radius:12px;padding:12px;background:#f8fafc}.quick-shift-current b{display:block;color:#172033}.quick-shift-current small{color:#64748b}.shift-change-table td,.shift-change-table th{font-size:.82rem;vertical-align:middle}
