/* =========================================================
   SUMAQ · estilos (identidad: carbón + rojo SUMAQ)
   ========================================================= */
:root{
  --rojo:#c0141b;--rojo-2:#e0242c;--rojo-osc:#8f0f14;--carbon:#18181b;--carbon-2:#26262b;--ink:#2f3140;--bg:#f4f4f6;--slate:#3a3b45;
  --linea:#e4e4ea;--suave:#fbfbfc;--sidebar:255px
}
body{font-family:'Open Sans',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:var(--bg);font-size:.9rem}
h1,h2,h3,h4,h5,h6,.page-head h1,.modal-title{font-family:'Quicksand','Open Sans',sans-serif;color:var(--carbon)}
a{color:#b3121a;text-decoration:none}a:hover{color:#8f0f14;text-decoration:underline}
.btn-brand{background:var(--rojo);border-color:var(--rojo);color:#fff}.btn-brand:hover,.btn-brand:focus,.btn-brand:active{background:var(--rojo-osc)!important;border-color:var(--rojo-osc)!important;color:#fff!important}
.btn-brand:disabled{background:#d78a8d;border-color:#d78a8d}
.btn-icon{background:none;border:0;color:#fff;cursor:pointer;border-radius:4px;padding:.1rem .4rem}.btn-icon:hover{background:rgba(255,255,255,.14)}
.text-brand{color:var(--rojo)!important}

/* Acceso: fondo rojo con círculo de luz y tarjeta gris claro */
.auth{position:relative;min-height:100vh;display:grid;place-items:center;padding:1.5rem;overflow:hidden;
  background:linear-gradient(135deg,#de2e34 0%,#c8161d 38%,#b3121a 70%,#9d0f16 100%)}
.auth-circulo{position:fixed;width:min(92vw,980px);aspect-ratio:1;left:-16vw;top:-48vw;border-radius:50%;
  background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.17) 0,rgba(255,255,255,.12) 62%,rgba(255,255,255,.04) 70%,transparent 71%);filter:blur(1.5px);pointer-events:none}
@media(min-width:900px){.auth-circulo{top:-34vw;left:-8vw;width:min(70vw,980px)}}
.auth-card{position:relative;width:100%;max-width:430px;border:0;border-radius:14px;background:#f2f3f5;color:#2f3140;box-shadow:0 24px 60px rgba(60,0,4,.35)!important}
.auth-card .form-control{background:#fff;border-color:#d9dbe1}
.auth-card .input-group-text{background:#fff;border-color:#d9dbe1;color:#80828f}
.auth-card .btn-outline-secondary{border-color:#d9dbe1;color:#80828f;background:#fff}
.brand-logo{display:block;margin:0 auto .4rem;width:100%;max-width:290px;height:auto}
.divider-text{display:flex;align-items:center;gap:.75rem;color:#8a8c9a;font-size:.85rem;margin:1rem 0 1.4rem}
.divider-text:before,.divider-text:after{content:"";flex:1;border-top:1px solid #dcdee4}
.input-group-text{background:#fff;color:#6b6d7d}.form-control,.form-select{border-color:#dcdce3}
.form-control:focus,.form-select:focus{border-color:var(--rojo-2);box-shadow:0 0 0 .15rem rgba(192,20,27,.15)}
.form-control[readonly]{background:#eceef2;border-color:#e2e4ea}
.form-check-input:checked{background-color:var(--rojo);border-color:var(--rojo)}

/* Estructura */
.topbar{position:sticky;top:0;z-index:1030;height:56px;display:flex;justify-content:space-between;align-items:center;padding:0 1rem;background:linear-gradient(90deg,#111113,#26262b);color:#fff;border-bottom:3px solid var(--rojo)}
.brand-top{display:inline-flex;align-items:center;gap:.8rem;color:#fff}.brand-top:hover{color:#fff;text-decoration:none}
.logo-img{height:34px;width:auto}
.brand-sub-top{font-size:.76rem;color:#b9b9c4;border-left:1px solid #44444c;padding-left:.8rem}
.user-chip{color:#fff;display:inline-flex;align-items:center;gap:.5rem}.user-chip:hover{color:#fff;text-decoration:none}
.avatar-sm,.avatar-md,.avatar-xl,.avatar-xxl{border-radius:50%;background:var(--rojo);display:inline-grid;place-items:center;color:#fff;font-weight:700;font-family:'Quicksand',sans-serif;flex:none;object-fit:cover}
.avatar-sm{width:32px;height:32px;font-size:.78rem}.avatar-md{width:40px;height:40px;font-size:.9rem}
.avatar-xl{width:112px;height:112px;font-size:2.2rem;border:4px solid #fff;box-shadow:0 4px 14px rgba(20,20,30,.2)}
.avatar-xxl{width:150px;height:150px;font-size:2.8rem;display:grid}
img.avatar-img{background:#ddd}
.shell{display:flex;min-height:calc(100vh - 56px)}
.sidebar{width:var(--sidebar);flex:none;background:#fff;border-right:1px solid var(--linea);padding:.5rem 0 1rem}
.side-user{display:flex;align-items:center;gap:.6rem;padding:.6rem 1rem .8rem;border-bottom:1px solid #efeff3;margin-bottom:.4rem;font-size:.85rem;color:inherit}.side-user:hover{text-decoration:none;color:inherit;background:#faf6f6}
.side-link{display:flex;align-items:center;gap:.6rem;padding:.6rem 1.1rem;color:#555766;border-left:3px solid transparent;font-family:'Quicksand',sans-serif;font-weight:600}
.side-link:hover{background:#f7f2f2;text-decoration:none;color:#2b2c36}
.side-link.active{border-left-color:var(--rojo);color:var(--rojo);background:#fdf0f0}
.side-link span:first-of-type{flex:1 1 auto}
.side-group .chev{font-size:.7rem;transition:transform .15s}.side-group:not(.collapsed) .chev{transform:rotate(180deg)}
.side-sub .side-link.sub{padding:.42rem 1.1rem .42rem 2.9rem;font-size:.85rem;font-weight:500}
.content{flex:1;min-width:0;padding:1.2rem 1.4rem 0;display:flex;flex-direction:column}
.page-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:1rem;margin-bottom:1rem}
.page-head h1{font-size:1.25rem;font-weight:700;margin:0;color:var(--carbon)}
.crumbs{font-size:.78rem;color:#8a8c9a;padding-left:1rem;border-left:1px solid #dcdce3}.crumbs span{margin:0 .2rem}
.foot{margin-top:auto;padding:1.2rem 0;color:#8a8c9a;font-size:.78rem}
@media(min-width:992px){.sidebar-collapsed .sidebar{display:none}}
.sidebar-backdrop{display:none}
@media(max-width:991px){
  .sidebar{position:fixed;z-index:1040;top:56px;bottom:0;left:calc(var(--sidebar) * -1);transition:left .2s;overflow-y:auto}
  .sidebar-open .sidebar{left:0;box-shadow:0 0 30px rgba(0,0,0,.25)}
  .sidebar-open .sidebar-backdrop{display:block;position:fixed;inset:56px 0 0 0;background:rgba(10,10,15,.4);z-index:1035}
  .content{padding:1rem}
}

/* Paneles y tarjetas */
.panel{border:0;box-shadow:0 1px 6px rgba(20,20,30,.07);border-radius:8px}
.panel .card-header{background:#fff;font-family:'Quicksand',sans-serif;font-weight:700;border-bottom:1px solid #efeff3}
.panel .card-footer{background:#fff;border-top:1px solid #efeff3}
.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}
.nav-tabs .nav-link{color:#555766;font-weight:600}.nav-tabs .nav-link.active{color:var(--rojo);border-top:3px solid var(--rojo)}
.stat{display:flex;gap:1rem;align-items:center;padding:1rem 1.2rem;border-radius:8px;color:#fff;min-height:98px;box-shadow:0 1px 8px rgba(20,20,30,.1);height:100%}
a.stat:hover{color:#fff;text-decoration:none;filter:brightness(1.07)}
.stat>i{font-size:2.2rem;opacity:.9}.stat-n{font-family:'Quicksand',sans-serif;font-size:1.5rem;font-weight:700;line-height:1.1;white-space:nowrap}.stat-n small{font-size:.76rem;font-weight:600;opacity:.9}
.stat-dark{background:linear-gradient(110deg,#18181b,#3a3a42)}.stat-red{background:linear-gradient(110deg,#8f0f14,#e0242c)}
.stat-green{background:linear-gradient(110deg,#146c43,#3fb27f)}.stat-slate{background:linear-gradient(110deg,#40424f,#6c6f80)}
.stat-orange{background:linear-gradient(110deg,#c76a00,#f2a531)}
.chart-box{position:relative;height:290px}.chart-box.tall{height:380px}
.saludo{font-family:'Quicksand',sans-serif;font-size:1rem}
.fecha-chip{flex:none;width:46px;text-align:center;border-radius:8px;background:#f1f1f4;color:#555766;font-size:.68rem;text-transform:uppercase;line-height:1.1;padding:.3rem 0;font-weight:700}
.fecha-chip span{display:block;font-size:1.15rem;color:var(--carbon)}
.fecha-chip.hoy{background:var(--rojo);color:#fff}.fecha-chip.hoy span{color:#fff}
.fecha-chip.vencida{background:#fde2e2;color:#8f0f14}

/* Tablas */
.grid thead th{background:var(--slate);color:#fff;font-family:'Quicksand',sans-serif;font-weight:700;font-size:.78rem;border:0;white-space:nowrap;vertical-align:middle}
.grid td{font-size:.82rem}.grid .desc{max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.btn-act{display:inline-grid;place-items:center;width:28px;height:24px;border-radius:4px;color:#fff;font-size:.8rem;margin:0 1px;cursor:pointer;border:0;padding:0;line-height:1;vertical-align:middle}
.btn-act:hover{color:#fff;filter:brightness(1.12);text-decoration:none}
.bg-orange{background:#f07f2c}
.ro-data dt{font-weight:700;font-size:.8rem}.ro-data dd{font-size:.85rem;color:#4b4d5e}
.grid .col-acc{position:sticky;right:0;background:#fff;box-shadow:-6px 0 8px -6px rgba(20,20,30,.25);z-index:1}
.grid thead .col-acc{background:var(--slate)}
.table-hover>tbody>tr:hover>.col-acc{background:#f6f6f8}
.grid .col-acc.menu-abierto,.grid .col-acc:has(.dropdown-menu.show){z-index:6}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.3rem}

.flash-stack{position:fixed;top:66px;right:16px;z-index:2000;width:min(420px,calc(100vw - 32px))}
.nav-pills .nav-link{font-size:.85rem;color:#555766}.nav-pills .nav-link.active{background:var(--rojo);color:#fff}
.perm-grupo{border:1px solid var(--linea);border-radius:6px;padding:.6rem .8rem;margin-bottom:.6rem;background:var(--suave)}
.perm-grupo h6{font-size:.8rem;font-weight:700;color:#3a3b45;margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.03em}
.lista-ie{max-height:460px;overflow:auto;border:1px solid var(--linea);border-radius:6px}
.lista-ie label{display:flex;gap:.6rem;align-items:flex-start;padding:.45rem .7rem;border-bottom:1px solid #f1f1f4;cursor:pointer;margin:0}
.lista-ie label:hover{background:#faf4f4}
.dropdown-item:disabled{color:#212529;font-weight:600;opacity:1}

/* Autocompletado */
.ac-wrap{position:relative}
.ac-menu{display:none;position:absolute;z-index:1050;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid #dfdfe6;border-radius:8px;max-height:340px;overflow-y:auto;padding:.25rem}
.ac-menu.show{display:block}
.ac-item{display:flex;align-items:center;gap:.6rem;padding:.45rem .6rem;border-radius:6px;cursor:pointer}
.ac-item.active,.ac-item:hover{background:#fdf0f0}
.ac-item mark{background:#ffe9a8;padding:0;border-radius:2px;color:inherit}
.ac-avatar{flex:none;width:32px;height:32px;border-radius:50%;background:#f6e1e2;color:var(--rojo);display:grid;place-items:center}
.ac-empty{padding:.7rem .8rem;color:#6c757d;font-size:.85rem}
.min-w-0{min-width:0}

/* ---------- Ficha de monitoreo (formato del instrumento) ---------- */
.ficha-cabecera .form-label{font-size:.8rem;color:#3f4150;margin-bottom:.2rem}
.ficha{font-size:.84rem}
.ficha-seccion{margin-bottom:1.4rem}
.ficha-sec-titulo{font-family:'Open Sans',sans-serif;font-weight:700;font-size:.86rem;text-transform:uppercase;margin:0 0 .35rem;color:#1d1e26;border-left:4px solid var(--rojo);padding-left:.5rem}
.ficha-sub{font-weight:700;text-transform:uppercase;font-size:.84rem;color:#1d1e26}
.ficha-enun{margin:.15rem 0 .6rem;line-height:1.5}
.ficha-preg{margin-bottom:1.1rem}
.ficha-preg.falta{outline:2px dashed var(--rojo);outline-offset:6px;border-radius:4px}
.ficha-label{display:block;font-weight:700;font-size:.82rem;text-transform:uppercase;margin:.6rem 0 .25rem;color:#1d1e26}
.ficha-resp{border:1px solid #e2e4ea;border-radius:6px;padding:.45rem .7rem;background:#fafafb;min-height:2.2rem;white-space:normal}
.ficha-tabla{width:100%;border-collapse:collapse;margin-bottom:.4rem}
.ficha-tabla th,.ficha-tabla td{border:1px solid #2b2b33;padding:.35rem .4rem;vertical-align:middle}
.ficha-tabla thead th{font-weight:700;font-size:.8rem;text-transform:uppercase;background:#fff}
.ficha-tabla .col-niv{width:190px}.ficha-tabla .col-op{width:42%}
.ficha-tabla tr.nivel-sel>td{background:#fdecec}
.ficha-tabla tr.nivel-sel>td:first-child{box-shadow:inset 4px 0 0 var(--rojo)}
.niv-radio{position:absolute;opacity:0;pointer-events:none;width:0;height:0}
.niv-group,.op-group{display:inline-flex;border:1px solid #dcdce3;border-radius:6px;overflow:hidden;background:#fff}
.niv-btn,.op-btn{display:inline-grid;place-items:center;min-width:44px;height:38px;padding:0 .6rem;border-right:1px solid #e6e6ec;color:#b9bbc6;font-weight:500;font-size:.92rem;user-select:none;margin:0}
.niv-btn:last-child,.op-btn:last-of-type{border-right:0}
label.niv-btn,label.op-btn{cursor:pointer}
.niv-radio:disabled~table label.niv-btn,.btn-check:disabled+.op-btn{cursor:default;pointer-events:none}
label.niv-btn:hover,label.op-btn:hover{background:#f7f2f2;color:#555}
.niv-btn.propio{color:#1d1e26;font-weight:700}
.niv-btn.active{background:var(--rojo);color:#fff!important;font-weight:700}
.op-btn{color:#3b3d4a;font-weight:600;min-width:56px}
.btn-check:checked+.op-btn,.op-btn.active{background:var(--rojo);color:#fff}
.btn-check:focus-visible+.op-btn{outline:2px solid var(--rojo-2)}
.barra-acciones{position:sticky;bottom:0;z-index:20;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;background:rgba(255,255,255,.96);backdrop-filter:blur(4px);border-top:1px solid var(--linea);padding:.7rem 1rem;margin:0 -1.4rem;box-shadow:0 -4px 14px rgba(20,20,30,.06)}
.resultado-box{border-left:4px solid;padding:.2rem .9rem}
.print-only{display:none}

/* ---------- Constructor de fichas ---------- */
.editor-lateral{position:sticky;top:72px}
.ed-num{flex:none;width:28px;height:28px;border-radius:50%;background:var(--rojo);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.85rem}
.ed-preg{border:1px solid var(--linea);border-left:4px solid #6c6f80;border-radius:6px;margin-bottom:.8rem;background:#fff}
.ed-preg.ed-niveles{border-left-color:var(--rojo)}.ed-preg.ed-si_no{border-left-color:#198754}.ed-preg.ed-opcion{border-left-color:#0d6efd}.ed-preg.ed-texto{border-left-color:#e69600}
.ed-preg-head{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:var(--suave);border-bottom:1px solid var(--linea);border-radius:6px 6px 0 0}
.ed-preg-head .btn{padding:.1rem .4rem}
.ed-resumen{min-width:0;color:#555766}
.ed-preg-body{padding:.7rem}
.ed-plegado .ed-preg-body{display:none}
.ed-opciones th{font-size:.74rem;color:#6b6d7d;font-weight:700;border-bottom-width:1px}
.ed-opciones td{padding:.2rem .25rem}

/* ---------- Calendario de visitas ---------- */
.calendario{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--linea)}
.cal-head{background:var(--slate);color:#fff;text-align:center;font-weight:700;font-size:.76rem;padding:.35rem 0}
.cal-dia{min-height:112px;border-right:1px solid var(--linea);border-bottom:1px solid var(--linea);padding:.25rem;background:#fff}
.cal-dia.vacio{background:#f7f7f9}.cal-dia.hoy{background:#fff6f6}
.cal-num{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:.8rem;color:#555766}
.cal-dia.hoy .cal-num{color:var(--rojo)}
.cal-add{opacity:0;color:var(--rojo);font-size:1rem;line-height:1}.cal-dia:hover .cal-add{opacity:1}
.cal-ev{display:block;font-size:.7rem;line-height:1.25;border-left:3px solid;background:#f6f6f8;border-radius:3px;padding:.15rem .3rem;margin-top:.2rem;color:#2f3140;overflow:hidden}
.cal-ev:hover{text-decoration:none;background:#efeff3;color:#000}
@media(max-width:767px){.calendario{grid-template-columns:1fr}.cal-head,.cal-dia.vacio{display:none}.cal-dia{min-height:0}}

@media print{
  body{background:#fff;font-size:11px}.topbar,.sidebar,.sidebar-backdrop,.no-print,.flash-stack,.foot,.barra-acciones,.page-head .crumbs{display:none!important}
  .shell{display:block}.content{padding:0}.panel{box-shadow:none}.print-only{display:block}
  .ficha-tabla tr.nivel-sel>td{background:#eee!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .niv-btn.active{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* ---------- Mi perfil ---------- */
.perfil-head{overflow:hidden}
.perfil-cover{height:110px;background:linear-gradient(120deg,#9d0f16,#c8161d 45%,#26262b);position:relative}
.perfil-cover:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.1);right:8%;top:-150px}
.perfil-head .card-body{margin-top:-62px;position:relative}
.perfil-avatar{position:relative}
.perfil-cam{position:absolute;right:4px;bottom:6px;width:34px;height:34px;border-radius:50%;background:#18181b;color:#fff;display:grid;place-items:center;cursor:pointer;border:3px solid #fff}
.perfil-cam:hover{background:var(--rojo)}
.perfil-meta{text-align:right}@media(max-width:767px){.perfil-meta{text-align:left}}
.perfil-stat{width:46px;height:46px;border-radius:12px;background:#fdecec;color:var(--rojo);display:grid;place-items:center;font-size:1.3rem}
.perfil-tabs .list-group-item{border-left:3px solid transparent;font-weight:600;color:#555766}
.perfil-tabs .list-group-item.active{background:#fdf0f0;color:var(--rojo);border-color:transparent;border-left-color:var(--rojo)}
.firma-box{min-height:130px;border:1px dashed #cfd1d8;border-radius:8px;display:grid;place-items:center;padding:.6rem;
  background:repeating-conic-gradient(#f3f3f5 0 25%,#fff 0 50%) 50%/18px 18px}
.firma-box img{max-width:100%;max-height:120px}

/* ---------- Módulo de Archivos ---------- */
.sol-form .sol-titulo{background:linear-gradient(90deg,#1d1e24,#3a3b45);color:#fff;font-family:'Quicksand',sans-serif;font-weight:700;text-align:center;padding:.6rem;border-radius:8px 8px 0 0;border-bottom:3px solid var(--rojo)}
.sol-box{border:1px solid #d6d8de;border-radius:8px;padding:.7rem .8rem;background:#fff}
.sol-box .form-label{margin-bottom:.2rem}
.sol-box hr{margin:.7rem 0;border-color:#9a9ca6;opacity:.6}
.sol-subir{min-width:58px;height:58px;display:grid;place-items:center}
.sol-off{opacity:.45;pointer-events:none}
.sol-extra{margin-top:.8rem;padding:.4rem .4rem 0}
.campo-fila{background:#fafafb;border:1px solid #ececf1;border-radius:6px;padding:.3rem .2rem;margin:.3rem 0 0 0!important}
.sol-dir{display:inline-block;background:#e3f6fb;color:#0b6178;border:1px solid #bfe7f1;border-radius:4px;padding:.2rem .6rem;font-size:.85rem}
.avance-sol .progress{height:7px;margin-bottom:.15rem}
.seg-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem}
.seg-card{display:flex;flex-direction:column;align-items:flex-start;background:#fff;border-radius:8px;border-left:4px solid;padding:.6rem .8rem;box-shadow:0 1px 6px rgba(20,20,30,.07);color:var(--ink)}
.seg-card:hover{text-decoration:none;color:var(--ink);box-shadow:0 2px 12px rgba(20,20,30,.14)}
.seg-card.activa{background:#fdf0f0;outline:2px solid var(--rojo)}
.seg-card i{font-size:1.1rem}.seg-card .n{font-family:'Quicksand',sans-serif;font-size:1.5rem;font-weight:700;line-height:1.1}.seg-card .lb{font-size:.76rem;color:#6b6d7d}
.grid tbody tr.fila-omiso>td{background:#fff5f5}
.envio-item{border-left:4px solid;background:#fafafb;border-radius:6px;padding:.6rem .8rem;margin-bottom:.7rem}
.archivo-chip{display:flex;align-items:center;gap:.5rem;background:#fff;border:1px solid #e4e4ea;border-radius:6px;padding:.3rem .5rem;margin-top:.35rem;font-size:.84rem;min-width:0}
.archivo-chip .text-truncate{flex:1;min-width:0}
.obs-box{background:#fff8e6;border:1px solid #f5d77a;border-left:4px solid #e69600;border-radius:6px;padding:.5rem .7rem;margin-top:.4rem}
.dropzone{border:2px dashed #cfd1d8;border-radius:10px;padding:1.2rem;text-align:center;color:#6b6d7d;background:#fafafb;transition:.15s;cursor:pointer}
.dropzone.arrastrando{border-color:var(--rojo);background:#fdf0f0}
.dropzone.con-archivos{border-style:solid;border-color:#198754;background:#f2fbf6}
.sol-card{background:#fff;border:1px solid #e6e6ec;border-left:4px solid;border-radius:8px;padding:.8rem .9rem;height:100%;display:flex;flex-direction:column}
.sol-card>.d-flex:last-child{margin-top:auto!important}
.text-truncate-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
