:root{color:#1e2330;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;background:#f4f5f7;font-family:Barlow,Segoe UI,system-ui,sans-serif;font-size:15px;line-height:1.4}*{box-sizing:border-box}body{min-height:100vh;margin:0;transition:background-color .2s,color .2s;overflow-y:auto}body.theme-light{color:#1e2330;background:#f4f5f7}body.theme-dark{color:#e2e8f0;background:linear-gradient(#0f172a 0%,#111827 100%)}a{color:#1d5bbf}button,input,select,textarea{font-family:inherit}html,body{min-height:100%}#root{min-height:100vh}.app-shell{max-width:1440px;min-height:100vh;margin:0 auto;padding:24px}.auth-shell{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.auth-shell--compact{min-height:100vh}.auth-background{z-index:0;position:absolute;inset:0;overflow:hidden}.auth-background__blob{filter:blur(100px);border-radius:999px;width:50%;height:50%;position:absolute}.auth-background__blob--top{background:#ff884d33;top:-20%;left:-10%}.auth-background__blob--bottom{background:#fed7aa6b;bottom:-20%;right:-10%}.auth-card{z-index:1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffd1;border:1px solid #ffffff80;border-radius:24px;width:min(100%,460px);padding:32px;position:relative;box-shadow:0 8px 30px #0000000a}.auth-card--status{justify-items:center;gap:16px;display:grid}.auth-brand{text-align:center;justify-items:center;gap:8px;margin-bottom:28px;display:grid}.auth-logo{object-fit:contain;width:auto;height:48px}.auth-brand h2{color:#1f2937;letter-spacing:-.02em;margin:0;font-size:1.25rem}.auth-subtitle{color:#64748b;margin:0;font-size:.925rem;line-height:1.5}.auth-subtitle--center{text-align:center}.auth-form{gap:16px;display:grid}.auth-field{gap:6px;display:grid}.auth-field span{color:#334155;margin-left:4px;font-size:.78rem;font-weight:700}.auth-input-wrap{position:relative}.auth-input-wrap input{color:#0f172a;background:#fff;border:1px solid #e2e8f0;border-radius:12px;width:100%;padding:11px 14px 11px 40px;font-size:.92rem;transition:border-color .2s,box-shadow .2s}.auth-input-wrap input:focus{border-color:#ff884d;outline:none;box-shadow:0 0 0 4px #ff884d1f}.auth-input-icon{color:#94a3b8;pointer-events:none;font-size:.875rem;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.auth-submit{color:#fff;background:#ff884d;border:none;border-radius:12px;width:100%;margin-top:4px;padding:12px 16px;font-size:.95rem;font-weight:600;box-shadow:0 18px 36px #f9731638}.auth-submit:hover:not(:disabled){background:#e67a44}.auth-message{border-radius:12px;margin:0 0 16px;padding:12px 14px;font-size:.8rem}.auth-message--error{color:#c2410c;background:#fff1f2;border:1px solid #ffd5d8}.auth-links{text-align:center;margin-top:20px}.auth-link{color:#64748b;font-size:.82rem;text-decoration:none}.auth-link:hover{color:#1f2937}.auth-link--strong{color:#ff884d;font-weight:700}.auth-link--strong:hover{color:#e67a44}.auth-feedback{text-align:center;justify-items:center;gap:12px;padding:12px 0 4px;display:grid}.auth-feedback h3,.auth-feedback p{margin:0}.auth-feedback p{color:#64748b;line-height:1.6}.auth-feedback__icon{color:#15803d;background:#dcfce7;border-radius:999px;place-items:center;width:48px;height:48px;font-size:1.4rem;font-weight:700;display:grid}.auth-status-spinner{border:3px solid #ff884d2e;border-top-color:#ff884d;border-radius:999px;width:40px;height:40px;animation:1s linear infinite auth-spin}.main-header{background:#fff;border-bottom:1px solid #e2e5ea;margin:-24px -24px 20px;padding:12px 24px}.main-header__content{justify-content:space-between;align-items:center;gap:16px;display:flex}.main-header__marca{align-items:center;gap:14px;min-width:0;display:flex}.main-header__logo{width:auto;height:26px}.main-header__titulo{border-left:1px solid #e2e5ea;min-width:0;padding-left:14px;display:grid}.user-menu{flex-shrink:0;position:relative}.user-menu__trigger{width:36px;height:36px;box-shadow:none;background:#1e2330;border-radius:999px;place-items:center;padding:0;display:grid}.user-menu__trigger:hover{background:#f2741f}.user-menu__icon{font-size:1.05rem;line-height:1}.user-menu__dropdown{z-index:20;background:#fff;border:1px solid #e5e7eb;border-radius:16px;width:min(280px,100vw - 32px);padding:14px;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 16px 32px #0f172a24}.user-menu__header{border-bottom:1px solid #eef2f7;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:12px;display:flex}.user-menu__avatar{color:#fff;background:linear-gradient(135deg,#80ed99 0%,#57cc99 100%);border-radius:999px;place-items:center;width:42px;height:42px;font-weight:700;display:grid}.user-menu__identity{min-width:0}.user-menu__name,.user-menu__role{margin:0}.user-menu__name{color:#0f172a;overflow-wrap:anywhere;font-size:.92rem;font-weight:700}.user-menu__role{color:#64748b;text-transform:uppercase;letter-spacing:.06em;margin-top:4px;font-size:.76rem}.user-menu__provider{color:#475569;margin:4px 0 0;font-size:.78rem;font-weight:600}.user-menu__action{text-align:left;color:#1e293b;background:#f8fafc;border-radius:12px;width:100%;margin-top:8px;padding:10px 12px;font-size:.9rem;font-weight:600;display:block}.user-menu__action--link{text-decoration:none}.user-menu__action:hover:not(:disabled){background:#eef2ff}.user-menu__action:disabled{color:#94a3b8;background:#f1f5f9}.user-menu__action--danger{color:#be123c;background:#fff1f2}.user-menu__action--danger:hover:not(:disabled){background:#ffe4e6}.main-header h1{margin:0;font-family:Barlow Semi Condensed,Barlow,sans-serif;font-size:1.15rem;font-weight:700;line-height:1.1}.main-header p{color:#6a7282;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.86rem;overflow:hidden}.main-header .workspace-row{margin-top:8px;font-size:.82rem}.secondary-nav-link{color:#ff884d;font-weight:700;text-decoration:none}.secondary-nav-link:hover{text-decoration:underline}.mode-switch{flex-wrap:wrap;gap:10px;display:flex}.workspace-row{align-items:center;gap:12px;margin-bottom:12px;display:flex}.workspace-row a{color:#0f4ea2;font-weight:600;text-decoration:none}.link-button{color:#0f4ea2;background:0 0;border:none;border-radius:0;padding:0;font-weight:600;text-decoration:underline}button{color:#fff;cursor:pointer;background:#1e2330;border:none;border-radius:8px;padding:9px 14px;font-weight:600}button:focus-visible{outline-offset:2px;outline:2px solid #f2741f}button.secondary{color:#1e2330;background:#e8eaee}button.active{background:#1e2330}button:disabled{opacity:.6;cursor:not-allowed}.login-box{background:#fff;border-radius:16px;width:min(480px,100%);margin:40px auto;padding:20px;box-shadow:0 10px 26px #0a1c441a}.login-box h2{margin:0}.login-box p{color:#5e6880;margin:6px 0 16px}.login-form{gap:12px;display:grid}.page-grid,.admin-layout{gap:18px;display:grid}.section-head{background:#fff;border-radius:14px;padding:16px;box-shadow:0 6px 18px #0a1c440f}.section-head__row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.section-head h2{margin:0}.section-head p{color:#5f6880;margin:4px 0 0}.filters-row{flex-wrap:wrap;gap:12px;display:flex}.filters-field{min-width:min(100%,320px)}.filters-field span{color:#334155;margin-left:4px;font-size:.78rem;font-weight:700}.cards-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.estado-card-trigger{text-align:left;width:100%;color:inherit;background:0 0;border:none;border-radius:14px;padding:0}.estado-card-trigger:hover .estado-card{box-shadow:0 10px 20px #0a1c441f}.estado-card-trigger:focus-visible{outline-offset:2px;outline:2px solid #0f4ea2}.estado-card{color:#1b2a44;background:#fff;border:2px solid #0000;border-radius:14px;padding:14px;box-shadow:0 6px 14px #0a1c440f}.estado-card header{justify-content:space-between;align-items:center;gap:8px;display:flex}.estado-card h3{color:#0f172a;margin:0}.estado-card p{color:#64708c;margin:10px 0}.estado-meta{justify-content:space-between;align-items:center;gap:10px;margin:6px 0;display:flex}.estado-meta strong{color:#0f172a;text-align:right;word-break:break-word}.estado-meta small,.estado-footer small{color:#475569}.estado-footer strong{color:#0f172a}.estado-vigente{border-color:#35a868}.estado-vencido{border-color:#d63d3d}.estado-footer{justify-content:space-between;align-items:center;display:flex}.badge{color:#7a1e1e;background:#ffe1e1;border-radius:999px;padding:4px 10px;font-size:12px}.badge-vigente{color:#155c33;background:#def5e7}.badge-vencido{color:#7a1e1e;background:#ffe1e1}.upload-form,.admin-form{background:#fff;border-radius:14px;gap:12px;padding:16px;display:grid;box-shadow:0 6px 16px #0a1c440f}.upload-form h3{margin:0}label{color:#273047;gap:6px;font-weight:600;display:grid}input,select,textarea{border:1px solid #c7d1e4;border-radius:8px;padding:9px;font-size:14px}.actions-row{gap:8px;display:flex}.vigencia-row{grid-template-columns:100px 140px;gap:8px;display:grid}.view-mode-toggle{align-items:center;gap:8px;display:flex}.view-mode-toggle span{color:#334155;font-size:.9rem;font-weight:700}.table-wrapper{background:#fff;border-radius:14px;max-height:340px;overflow:auto;box-shadow:0 6px 16px #0a1c440f}.clickable-row{cursor:pointer}.clickable-row:hover{background:#f8fbff}.selected-row{background:#e7f0ff}.selected-row:hover{background:#dce9ff}.contract-selector-row{gap:10px;display:grid}.contract-selector-field{max-width:560px}.contract-selector-field span{color:#334155;margin-left:4px;font-size:.78rem;font-weight:700}.contract-active-label{color:#334155;margin:0}.upload-context-card{background:#f8fbff;border:1px solid #dbe4f0;border-radius:12px;gap:10px;padding:12px;display:grid}.upload-context-card h4{color:#1e293b;margin:0}.upload-context-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.upload-context-item{gap:4px;display:grid}.upload-context-item small{color:#64748b}.upload-context-item strong{color:#0f172a}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a57;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{background:#fff;border-radius:16px;gap:14px;width:min(980px,100%);max-height:calc(100vh - 40px);padding:16px;display:grid;overflow:auto;box-shadow:0 24px 42px #0a1c443d}.modal-card__header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.modal-card__header h3{margin:0}.modal-card__header p{color:#5f6880;margin:4px 0 0}table{border-collapse:collapse;width:100%;min-width:620px}th,td{text-align:left;border-bottom:1px solid #e3e9f4;padding:12px}th{z-index:1;background:#f6f8fc;position:sticky;top:0}.matrix-wrapper{max-height:none}.doc-matrix-table th,.doc-matrix-table td{white-space:nowrap;min-width:132px}.doc-matrix-table th:first-child,.doc-matrix-table td:first-child,.doc-matrix-table th:nth-child(2),.doc-matrix-table td:nth-child(2){min-width:220px}.month-current{background:#fff5cf!important}.matrix-doc-cell{text-align:left;color:#0f172a;cursor:pointer;background:#f8fafc;border:1px solid #0000;border-radius:8px;width:100%;padding:8px}.matrix-doc-cell.revision-pendiente{background:#fff8c7;border-color:#facc15}.matrix-doc-cell.revision-aprovado{background:#dcfce7;border-color:#22c55e}.matrix-doc-cell.revision-rechazado{background:#fee2e2;border-color:#ef4444}.matrix-upload-cell{width:100%}.matrix-cell-actions{gap:6px;display:grid}.matrix-merged-cell{min-width:260px}.upload-history-table{max-height:220px}.error-message{color:#9f1c1c;background:#ffe8e8;border-radius:8px;margin:0;padding:8px 10px}.status-message{color:#134e2a;background:#def5e7;border-radius:8px;margin:0;padding:8px 10px}.loading-state,.empty-state{background:#fff;border-radius:14px;margin:0;padding:16px}.toast-stack{z-index:80;gap:10px;width:min(420px,100vw - 32px);display:grid;position:fixed;top:20px;right:20px}.toast{border-radius:12px;padding:10px 12px;font-weight:600;box-shadow:0 14px 26px #0f172a29}.toast--info{color:#1e3a8a;background:#eff6ff;border:1px solid #bfdbfe}.toast--success{color:#166534;background:#ecfdf3;border:1px solid #bbf7d0}.toast--error{color:#9f1239;background:#fff1f2;border:1px solid #fecdd3}body.theme-dark .main-header,body.theme-dark .section-head,body.theme-dark .table-wrapper,body.theme-dark .upload-form,body.theme-dark .admin-form,body.theme-dark .login-box,body.theme-dark .modal-card,body.theme-dark .user-menu__dropdown,body.theme-dark .loading-state,body.theme-dark .empty-state,body.theme-dark .estado-card{background:#111827;border-color:#334155;box-shadow:0 10px 24px #00000047}body.theme-dark .main-header h1,body.theme-dark .section-head h3,body.theme-dark .estado-card h3,body.theme-dark .user-menu__name,body.theme-dark .modal-card__header h3,body.theme-dark .upload-context-item strong,body.theme-dark th,body.theme-dark td{color:#e2e8f0}body.theme-dark .main-header p,body.theme-dark .estado-card p,body.theme-dark .user-menu__role,body.theme-dark .user-menu__provider,body.theme-dark .estado-meta small,body.theme-dark .estado-footer small,body.theme-dark .contract-active-label,body.theme-dark .auth-subtitle{color:#94a3b8}body.theme-dark .view-mode-toggle span{color:#cbd5e1}body.theme-dark input,body.theme-dark select,body.theme-dark textarea{color:#e2e8f0;background:#0f172a;border-color:#334155}body.theme-dark th{background:#0f172a;border-bottom-color:#334155}body.theme-dark td{border-bottom-color:#334155}body.theme-dark .user-menu__action{color:#e2e8f0;background:#0f172a}body.theme-dark .user-menu__action:hover:not(:disabled){background:#1e293b}body.theme-dark .user-menu__action:disabled{color:#64748b;background:#0f172a}body.theme-dark .link-button,body.theme-dark .workspace-row a{color:#93c5fd}body.theme-dark .estado-meta strong,body.theme-dark .estado-footer strong{color:#f8fafc}body.theme-dark .estado-card{background:#0b1730}body.theme-dark .estado-vigente{border-color:#22c55e;box-shadow:0 0 0 1px #22c55e59,0 14px 28px #00000059}body.theme-dark .estado-vencido{border-color:#ef4444;box-shadow:0 0 0 1px #ef444459,0 14px 28px #00000059}body.theme-dark .badge-vigente{color:#dcfce7;background:#14532d}body.theme-dark .badge-vencido{color:#fee2e2;background:#7f1d1d}body.theme-dark .clickable-row:hover{background:#1e293b}body.theme-dark .selected-row{background:#1d4ed8}body.theme-dark .selected-row:hover{background:#2563eb}body.theme-dark .month-current{background:#3f3300!important}body.theme-dark .matrix-doc-cell{color:#e2e8f0;background:#0b1730}body.theme-dark .matrix-doc-cell.revision-pendiente{background:#4a3e08;border-color:#facc15}body.theme-dark .matrix-doc-cell.revision-aprovado{background:#12301d;border-color:#22c55e}body.theme-dark .matrix-doc-cell.revision-rechazado{background:#3a1111;border-color:#ef4444}@keyframes auth-spin{to{transform:rotate(360deg)}}@media (width<=768px){.app-shell{padding:14px}.auth-shell{padding:16px}.auth-card{border-radius:20px;padding:24px}.main-header__content{flex-direction:column;align-items:stretch}.section-head__row,.mode-switch{flex-direction:column}.workspace-row{flex-direction:column;align-items:flex-start}.modal-card{padding:14px}.modal-card__header{flex-direction:column}}.portal,.encargados,.control-shell{--ok:#13795b;--ok-bg:#e3f4ec;--alerta:#b2650b;--alerta-bg:#fdf0dc;--mal:#cc2f2a;--mal-bg:#fbe7e6;--revision:#2563c9;--revision-bg:#e4edfb;--texto:#1e2330;--texto-suave:#6a7282;--superficie:#fff;--fondo-suave:#f4f5f7;--borde:#e2e5ea;--marca:#1e2330;--acento:#f2741f;--condensada:"Barlow Semi Condensed", "Barlow", sans-serif;gap:16px;display:grid}body.theme-dark .portal,body.theme-dark .encargados,body.theme-dark .control-shell{--ok:#6fd3a8;--ok-bg:#13795b42;--alerta:#f5b453;--alerta-bg:#b2650b42;--mal:#f2706b;--mal-bg:#cc2f2a3d;--revision:#8ab4f8;--revision-bg:#2563c942;--texto:#e2e8f0;--texto-suave:#94a3b8;--superficie:#111827;--fondo-suave:#0f172a;--borde:#273449;--marca:#e2e8f0;--acento:#f59a5b}.portal-celda--al_dia{--c-bg:var(--ok-bg);--c-fg:var(--ok);--c-borde:transparent}.portal-celda--en_revision{--c-bg:var(--revision-bg);--c-fg:var(--revision);--c-borde:transparent}.portal-celda--por_vencer{--c-bg:var(--alerta-bg);--c-fg:var(--alerta);--c-borde:var(--alerta)}.portal-celda--rechazado,.portal-celda--falta,.portal-celda--vencido{--c-bg:var(--mal-bg);--c-fg:var(--mal);--c-borde:var(--mal)}.portal-celda--futuro{--c-bg:transparent;--c-fg:transparent;--c-borde:var(--borde)}.portal-celda--sin_novedad{--c-bg:var(--fondo-suave);--c-fg:var(--texto-suave);--c-borde:var(--borde)}.portal-admin-bar{color:#7a2e0e;background:#fef0c7;border-radius:10px;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:.92rem;display:flex}.portal-obra{align-items:center;gap:10px;font-weight:600;display:flex}.portal-obra select{flex:1;max-width:420px}.portal-semaforos{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.portal-semaforo{border:1px solid var(--borde);background:var(--superficie);border-radius:14px;align-items:center;gap:14px;padding:14px 18px;display:flex}.portal-semaforo small{color:var(--texto-suave);text-transform:uppercase;letter-spacing:.04em;font-size:.76rem;font-weight:600;display:block}.portal-semaforo strong{font-size:1.08rem;display:block}.portal-semaforo p{margin:2px 0 0;font-size:.88rem}.portal-semaforo__icon{background:var(--fondo-suave);color:#fff;border-radius:999px;flex:none;place-items:center;width:38px;height:38px;display:grid}.portal-semaforo--ok{border-color:var(--ok);background:var(--ok-bg)}.portal-semaforo--ok strong,.portal-semaforo--ok p{color:var(--ok)}.portal-semaforo--ok .portal-semaforo__icon{background:var(--ok)}.portal-semaforo--bloqueado{border-color:var(--mal);background:var(--mal-bg)}.portal-semaforo--bloqueado strong,.portal-semaforo--bloqueado p{color:var(--mal)}.portal-semaforo--bloqueado .portal-semaforo__icon{background:var(--mal)}.portal-semaforo--neutral strong{color:var(--texto-suave);font-weight:600}body.theme-dark .portal-semaforo__icon{color:#0f172a}.portal-urgentes{background:var(--superficie);border:1px solid var(--borde);border-left:4px solid var(--mal);border-radius:14px;padding:14px 16px}.portal-urgentes h2{margin:0 0 8px;font-size:1rem}.portal-urgentes ul{margin:0;padding:0;list-style:none;display:grid}.portal-urgente{border-top:1px solid var(--borde);grid-template-columns:136px 1fr auto;align-items:center;gap:12px;padding:10px 0;display:grid}.portal-urgente:first-child{border-top:none}.portal-urgente div{min-width:0;display:grid}.portal-urgente div span{color:var(--texto-suave);font-size:.9rem}.portal-urgente button{white-space:nowrap}.portal-urgente__acciones{justify-content:flex-end;gap:8px;display:flex}.portal-doc__abrir{color:#155ab6;text-align:left;overflow-wrap:anywhere;cursor:pointer;background:0 0;border:none;justify-self:start;padding:0;font-weight:600;text-decoration:underline}body.theme-dark .portal-doc__abrir{color:#84caff}.portal-avisos{border:1px solid var(--borde);background:var(--superficie);border-radius:14px;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 16px;display:flex}.portal-avisos ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.portal-aviso{align-items:flex-start;gap:8px;display:flex}.portal-aviso div{display:grid}.portal-aviso span{color:var(--texto-suave);font-size:.88rem}.portal-aviso--validado svg{color:var(--ok);margin-top:2px}.portal-aviso--rechazado svg,.portal-aviso--reclamo svg{color:var(--mal);margin-top:2px}.portal-aviso span{white-space:pre-line}.portal-pendiente-mes+.portal-pendiente-mes{border-top:1px solid var(--borde);margin-top:14px;padding-top:12px}.portal-pendiente-mes__head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;display:flex}.portal-pendiente-mes__head div{display:grid}.portal-pendiente-mes__head span{color:var(--texto-suave);font-size:.86rem}.portal-pendiente-mes__head .portal-pendiente-mes__atrasada{color:var(--mal);font-weight:700}.portal-pendiente-bloque{margin-top:8px}.portal-pendiente-bloque h3{color:var(--texto-suave);text-transform:uppercase;letter-spacing:.04em;margin:6px 0 0;font-size:.74rem;font-weight:700}.portal-pendiente-bloque h3 span{text-transform:none;letter-spacing:0;font-weight:600}.portal-urgente .portal-urgente__mes{color:var(--texto-suave);font-weight:500}.portal-pendiente-mes ul{margin:0;padding:0;list-style:none;display:grid}.portal-subir-mes{width:min(680px,100%)}.portal-subir-mes__form{gap:12px;display:grid}.portal-subir-mes__lista{margin:0;padding:0;list-style:none;display:grid}.portal-subir-mes__lista li{border-top:1px solid var(--borde);grid-template-columns:1fr minmax(220px,auto);align-items:center;gap:12px;padding:10px 0;display:grid}.portal-subir-mes__lista li:first-child{border-top:none}.portal-subir-mes__doc{gap:2px;min-width:0;display:grid}.portal-subir-mes__doc small{color:var(--texto-suave)}.portal-subir-mes__doc .portal-subir-mes__error{color:var(--mal)}.portal-subir-mes__accion{gap:4px;display:grid}.portal-subir-mes__sn{align-items:center;gap:6px;font-size:.86rem;display:flex}.portal-subir-mes__sn input{width:auto}.portal-subir-mes__hecho{opacity:.7}@media (width<=640px){.portal-subir-mes__lista li{grid-template-columns:1fr}.portal-urgente__acciones{justify-content:stretch}.portal-urgente__acciones button{flex:1}}.portal-pill{white-space:nowrap;border-radius:999px;justify-self:start;align-items:center;gap:4px;padding:3px 10px 3px 7px;font-size:.8rem;font-weight:600;display:inline-flex}.portal-pill--falta,.portal-pill--vencido{background:var(--mal-bg);color:var(--mal);box-shadow:inset 0 0 0 1px var(--mal)}.portal-pill--rechazado{background:var(--mal-bg);color:var(--mal)}.portal-pill--por_vencer{background:var(--alerta-bg);color:var(--alerta)}.portal-pill--en_revision{background:var(--revision-bg);color:var(--revision)}.portal-pill--al_dia{background:var(--ok-bg);color:var(--ok)}.portal-pill--futuro,.portal-pill--sin_novedad,.portal-pill--no_aplica{background:var(--fondo-suave);color:var(--texto-suave)}.portal-tag{border:1px solid var(--mal);color:var(--mal);text-transform:uppercase;letter-spacing:.03em;vertical-align:2px;border-radius:5px;margin-left:6px;padding:0 6px;font-size:.66rem;font-weight:700}.portal-grilla-card{background:var(--superficie);border:1px solid var(--borde);border-radius:14px;overflow:hidden;box-shadow:0 6px 18px #0a1c440f}.portal-grilla-card__head{border-bottom:1px solid var(--borde);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.portal-resumen{color:var(--texto-suave);flex-wrap:wrap;gap:6px 16px;font-size:.9rem;display:flex}.portal-resumen__item{align-items:center;gap:6px;display:inline-flex}.portal-resumen__item:before{content:"";border-radius:999px;width:8px;height:8px}.portal-resumen__item b{color:var(--texto);font-size:1.05rem}.portal-resumen__item--falta:before{background:var(--mal)}.portal-resumen__item--por_vencer:before{background:var(--alerta)}.portal-resumen__item--en_revision:before{background:var(--revision)}.portal-resumen__item--al_dia:before{background:var(--ok)}.portal-anio{align-items:center;gap:10px;display:inline-flex}.portal-anio button{width:32px;height:32px;padding:0;font-size:1.1rem;line-height:1}.portal-anio strong{text-align:center;min-width:44px;font-size:1.05rem}.portal-grilla-scroll{overflow-x:auto}.portal-grilla{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;min-width:920px}.portal-grilla__col-doc{width:240px}.portal-grilla th,.portal-grilla td{background:0 0;border:none;padding:0}.portal-grilla thead th{color:var(--texto-suave);text-transform:uppercase;letter-spacing:.04em;text-align:center;padding:10px 2px 6px;font-size:.76rem;font-weight:600}.portal-grilla thead th.portal-mes--actual{color:var(--acento)}.portal-grilla thead th.portal-mes--actual:after{content:"";background:var(--acento);border-radius:3px;width:18px;height:3px;margin:4px auto 0;display:block}.portal-grilla .portal-grilla__doc{z-index:1;background:var(--superficie);text-align:left;width:230px;min-width:200px;padding:4px 12px 4px 16px;position:sticky;left:0}.portal-grilla__doc button{width:100%;color:var(--texto);text-align:left;background:0 0;border-radius:0;gap:1px;padding:4px 0;display:grid}.portal-grilla__nombre{font-size:.94rem;font-weight:600}.portal-grilla__doc small{color:var(--texto-suave);font-size:.76rem;font-weight:400}.portal-grupo th{color:var(--texto-suave);text-transform:uppercase;letter-spacing:.06em;text-align:left;border-top:1px solid var(--borde);padding:14px 16px 4px;font-size:.72rem;font-weight:700;position:sticky;left:0}.portal-grilla tbody:first-of-type .portal-grupo th{border-top:none}.portal-grilla .portal-celda{vertical-align:middle;padding:3px 2px}.portal-grilla .portal-celda--actual{background:#0e4ca00f}body.theme-dark .portal-grilla .portal-celda--actual{background:#84caff14}.portal-celda button,.portal-celda .personal-celda{border:1px solid var(--c-borde);background:var(--c-bg);width:100%;min-width:52px;height:46px;color:var(--c-fg);border-radius:8px;align-content:center;place-items:center;gap:1px;padding:0 2px;font-size:.7rem;font-weight:600;line-height:1.1;transition:transform .12s,box-shadow .12s;display:grid;position:relative}.portal-celda button:hover,.portal-celda .personal-celda:hover{transform:translateY(-1px);box-shadow:0 4px 10px #0a1c441f}.portal-celda button:focus-visible,.portal-grilla__doc button:focus-visible,.portal-celda-unica button:focus-visible{outline:2px solid var(--marca);outline-offset:2px}.portal-celda--futuro button{border-style:dashed}.portal-celda--futuro button:hover{color:var(--texto-suave)}.portal-celda__vacia{background:var(--fondo-suave);opacity:.6;border-radius:8px;height:46px;display:block}.portal-celda__extra{opacity:.8;font-size:.6rem;font-style:normal;position:absolute;top:3px;right:4px}.portal-fila--bloquea .portal-grilla__nombre{color:var(--mal)}.portal-grilla .portal-celda-unica{padding:3px 2px}.portal-celda-unica button{border:1px solid var(--borde);background:var(--fondo-suave);width:100%;height:46px;color:var(--texto);text-align:left;border-radius:8px;align-items:center;gap:12px;padding:0 12px;display:flex}.portal-celda-unica--falta button,.portal-celda-unica--rechazado button{border-color:var(--mal);background:var(--mal-bg)}.portal-celda-unica__texto{color:var(--texto-suave);font-size:.86rem}.portal-leyenda{border-top:1px solid var(--borde);color:var(--texto-suave);flex-wrap:wrap;align-items:center;gap:8px 16px;padding:12px 16px;font-size:.8rem;display:flex}.portal-leyenda__item{align-items:center;gap:6px;display:inline-flex}.portal-leyenda__item svg{border:1px solid var(--c-borde);background:var(--c-bg);width:20px;height:20px;color:var(--c-fg);border-radius:5px;padding:2px}.portal-leyenda__nota{margin-left:auto}.portal-detalle,.portal-subir{width:min(560px,100%)}.portal-detalle__estado{background:var(--fondo-suave);border-radius:12px;gap:6px;padding:12px 14px;display:grid}.portal-detalle__estado p{margin:0}.portal-detalle__estado--falta,.portal-detalle__estado--vencido,.portal-detalle__estado--rechazado{background:var(--mal-bg)}.portal-detalle__ayuda{color:var(--texto-suave);margin:0}.portal-detalle__docs h4{margin:0 0 6px;font-size:.9rem}.portal-doc{border-top:1px solid var(--borde);justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 0;display:flex}.portal-doc div{gap:2px;min-width:0;display:grid}.portal-doc a{overflow-wrap:anywhere;font-weight:600}.portal-doc small{color:var(--texto-suave)}.portal-doc__rechazo,.portal-doc__comentario{margin:2px 0 0;font-size:.86rem}.portal-doc__rechazo{color:var(--mal)}.portal-subir__rechazo{color:#b42318;background:#fee4e2;border-radius:10px;margin:0;padding:10px 12px}.portal-subir__ayuda{color:#5b6578;margin:0}.admin-form__check{align-items:center;gap:8px;display:flex}.admin-form__check input{width:auto}.portal-grilla__num{background:var(--fondo-suave);min-width:20px;height:20px;color:var(--texto-suave);border-radius:6px;place-items:center;margin-right:8px;padding:0 4px;font-size:.72rem;font-weight:700;display:inline-grid}.portal-grupo th span{text-transform:none;letter-spacing:0;margin-left:10px;font-weight:500}.portal-detalle__estado-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.portal-detalle__estado-head .portal-tag{margin-left:0}.portal-detalle__acciones{flex-wrap:wrap}.portal-reglas{border:1px solid var(--borde);background:var(--superficie);color:var(--texto-suave);border-radius:12px;padding:12px 16px;font-size:.9rem}.portal-reglas summary{cursor:pointer;color:var(--texto);font-weight:600}.portal-reglas ul{gap:4px;margin:10px 0 0;padding-left:18px;display:grid}@media (width<=640px){.portal-semaforos{grid-template-columns:1fr}.portal-urgente{grid-template-columns:1fr;gap:6px}.portal-urgente button{width:100%}.portal-obra{flex-direction:column;align-items:stretch}.portal-grilla .portal-grilla__doc{width:150px;min-width:150px}.portal-leyenda__nota{margin-left:0}}.portal .portal-plegable{width:100%;color:var(--texto);text-align:left;cursor:pointer;background:0 0;border:0;align-items:baseline;gap:10px;padding:0;font-weight:400;display:flex}.portal-plegable__titulo{font-size:1rem;font-weight:700}.portal-plegable span{color:var(--texto-suave);font-size:.86rem}.portal-plegable i{color:var(--texto-suave);margin-left:auto;font-style:normal}.portal-urgentes .portal-plegable[aria-expanded=true]{margin-bottom:8px}.portal-grilla-card__head .portal-plegable--grilla{width:auto}.portal-grilla-card__head .portal-plegable--grilla i{margin-left:4px}.portal-pestanias{border-bottom:1px solid var(--borde);gap:4px;display:flex}.portal .portal-pestania{color:var(--texto-suave);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;padding:10px 16px;font-weight:600}.portal .portal-pestania--activa{border-bottom-color:var(--acento);color:var(--texto)}.personal{gap:14px;display:grid}.personal__head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.personal__head h2{margin:0;font-size:1.1rem}.personal__head p{color:var(--texto-suave);margin:4px 0 0;font-size:.9rem}.personal-form{border:1px solid var(--borde);border-left:4px solid var(--acento);background:var(--superficie);border-radius:14px;gap:12px;padding:16px;display:grid}.personal-form h3{margin:0;font-size:1rem}.personal-form label{gap:4px;font-size:.86rem;font-weight:600;display:grid}.personal-form__fila{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.personal-form__modalidad{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;display:grid}.personal-form__modalidad legend{margin-bottom:6px;font-size:.86rem;font-weight:600}.personal-form .personal-modalidad{border:1px solid var(--borde);cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:12px;display:flex}.personal-form .personal-modalidad--activa{border-color:var(--acento);background:var(--fondo-suave)}.personal-modalidad input{accent-color:var(--acento)}.personal-form__pide{color:var(--texto-suave);margin:0;font-size:.86rem}.personal-lista{gap:8px;margin:0;padding:0;list-style:none;display:grid}.personal-persona{border:1px solid var(--borde);background:var(--superficie);border-radius:12px;overflow:hidden}.personal-persona__fila{grid-template-columns:minmax(0,1fr) 150px 130px auto;align-items:center;gap:14px;padding:12px 16px;display:grid}.personal-persona__botones{gap:8px;display:flex}.personal-persona__botones button{white-space:nowrap}.personal-persona__pide{color:var(--texto-suave);margin:10px 0 0;font-size:.84rem}.personal-persona__nombre{gap:2px;min-width:0;display:grid}.personal-persona__nombre small,.personal-persona__avance small{color:var(--texto-suave);font-size:.8rem}.personal-persona__avance{gap:4px;display:grid}.personal-barra{background:var(--fondo-suave);border-radius:999px;height:6px;overflow:hidden}.personal-barra span{background:var(--ok);height:100%;display:block}.personal-persona__detalle{border-top:1px solid var(--borde);gap:10px;padding:4px 16px 14px;display:grid}.personal-docs{margin:0;padding:0;list-style:none;display:grid}.personal-docs li{border-bottom:1px solid var(--borde);grid-template-columns:136px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;display:grid}.personal-docs__texto{gap:2px;font-size:.92rem;display:grid}.personal-docs__texto small{color:var(--texto-suave);font-size:.8rem}.personal-docs__acciones{gap:8px;display:flex}.personal-subir{background:var(--marca);color:var(--superficie);cursor:pointer;border-radius:8px;align-items:center;padding:8px 14px;font-size:.86rem;font-weight:700;display:inline-flex;position:relative}.personal-subir--secundario{background:var(--fondo-suave);color:var(--texto)}.personal-subir input{opacity:0;cursor:pointer;position:absolute;inset:0}.personal-persona__acciones{justify-content:flex-end;gap:8px;display:flex}@media (width<=760px){.personal-form__fila,.personal-form__modalidad{grid-template-columns:1fr}.personal-persona__fila{grid-template-columns:minmax(0,1fr) auto}.personal-persona__avance{display:none}.personal-persona__botones{grid-column:1/-1}.personal-docs li{grid-template-columns:1fr}}.personal-grilla{min-width:860px}.personal-grilla__col-acciones{width:150px}.personal-grilla__persona{gap:1px;padding:4px 0;display:grid}.portal-celda .personal-celda{cursor:pointer}.personal-celda input{opacity:0;cursor:pointer;position:absolute;inset:0}.personal-grilla .personal-grilla__acciones{white-space:nowrap;text-align:right;padding:0 8px}.personal-grilla__acciones button{padding:6px 10px;font-size:.8rem}.personal-grilla__acciones button+button{margin-left:6px}.personal-grilla .personal-grilla__detalle td{background:var(--fondo-suave);padding:4px 16px 14px}.portal-celda .personal-celda--quieta{cursor:default}.portal-celda .personal-celda--quieta:hover{box-shadow:none;transform:none}.personal-grilla__col-acceso{width:120px}.portal-grilla thead th.personal-grilla__acceso-titulo{color:var(--texto)}.portal-grilla .personal-acceso{border-left:1px solid var(--borde);padding-left:10px}.personal-acceso small{opacity:.85;font-size:.62rem;font-weight:500}.revision__verificacion{border:1px solid var(--borde);border-radius:12px;display:grid;overflow:hidden}.revision__verificacion-head,.revision__fila{grid-template-columns:minmax(0,1fr) 104px 72px;align-items:center;gap:10px;padding:8px 12px;display:grid}.revision__verificacion-head{background:var(--fondo-suave);color:var(--texto-suave);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:700}.revision__verificacion-head span:not(:first-child){text-align:center}.revision__fila{border-top:1px solid var(--borde)}.revision__fila-texto{gap:2px;min-width:0;font-size:.88rem;display:grid}.revision__fila-texto small{-webkit-line-clamp:3;overflow-wrap:anywhere;color:var(--texto-suave);-webkit-box-orient:vertical;font-size:.78rem;display:-webkit-box;overflow:hidden}.revision__fila--observado{background:var(--alerta-bg)}.revision__auto{white-space:nowrap;border-radius:999px;justify-self:center;align-items:center;gap:4px;padding:2px 8px;font-size:.76rem;font-weight:600;display:inline-flex}.revision__auto--ok{background:var(--ok-bg);color:var(--ok)}.revision__auto--observado{background:var(--alerta);color:#fff}.revision__auto--sin_dato,.revision__auto--pendiente{background:var(--fondo-suave);color:var(--texto-suave)}.revision__auto-manual{color:var(--texto-suave);font-weight:400}.revision__humano{justify-self:center}.revision__humano input{cursor:pointer;width:20px;height:20px}.revision__nota-fila{grid-column:1/-1;font-size:.86rem}.revision__comparacion{background:var(--superficie);border:1px solid var(--borde);border-radius:8px;grid-column:1/-1;grid-template-columns:1fr 1fr;gap:4px 12px;padding:8px 10px;display:grid}.revision__comparacion div{gap:1px;min-width:0;display:grid}.revision__comparacion small{color:var(--texto-suave);text-transform:uppercase;letter-spacing:.05em;font-size:.68rem;font-weight:700}.revision__comparacion b{overflow-wrap:anywhere;font-size:.88rem;font-weight:600}.revision__comparacion--observado .revision__leido-valor{color:var(--mal)}.revision__comparacion--ok .revision__leido-valor{color:var(--ok)}.revision__comparacion p{color:var(--texto-suave);grid-column:1/-1;margin:2px 0 0;font-size:.8rem}.revision__leido-bloque summary{cursor:pointer;justify-content:space-between;align-items:center;gap:8px;font-size:.86rem;font-weight:600;display:flex}.revision__leido-bloque summary button{padding:4px 10px;font-size:.8rem}.revision__leido{gap:8px;margin-top:8px;font-size:.86rem;display:grid}.revision__leido dl{grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;display:grid}.revision__leido dl div{display:contents}.revision__leido dt{color:var(--texto-suave)}.revision__leido dd{overflow-wrap:anywhere;margin:0}.revision__leido ul{max-height:180px;margin:6px 0 0;padding-left:18px;overflow:auto}.revision__leido-vacio{color:var(--texto-suave);margin:8px 0 0;font-size:.86rem}.admin-form__lectura{border:1px solid var(--borde,#e2e5ea);border-radius:10px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px 16px;margin:0;padding:10px 12px;display:grid}.admin-form__lectura legend{padding:0 4px;font-size:.8rem;font-weight:700}.admin-form__lectura input:disabled+*{opacity:.55}.admin-form__lectura label:has(input:disabled){opacity:.55}.encargados-tabs{border-bottom:1px solid var(--borde);gap:24px;display:flex;overflow-x:auto}.encargados-tab{color:var(--texto-suave);font-family:var(--condensada);white-space:nowrap;background:0 0;border-bottom:3px solid #0000;border-radius:0;align-items:center;gap:8px;margin-bottom:-1px;padding:10px 2px 12px;font-size:1.05rem;font-weight:600;display:inline-flex}.encargados-tab:hover{color:var(--texto)}.encargados-tab--activa{border-bottom-color:var(--acento);color:var(--texto)}.encargados-badge{background:var(--acento);color:#fff;border-radius:999px;min-width:20px;padding:0 7px;font-family:Barlow,sans-serif;font-size:.74rem;font-weight:700;line-height:1.6}.control{gap:14px;display:grid}.control-filtros{flex-wrap:wrap;align-items:flex-end;gap:12px 28px;display:flex}.control-filtros label,.control-periodo{color:var(--texto-suave);gap:4px;font-size:.78rem;font-weight:600;display:grid}.control-filtros select{min-width:300px;max-width:100%;font-size:.95rem}.control-periodo>div{align-items:center;gap:6px;display:flex}.control-periodo strong{min-width:160px;color:var(--texto);font-family:var(--condensada);text-align:center;text-transform:capitalize;font-size:1.35rem;font-weight:700}.control-periodo button{width:30px;height:30px;padding:0;font-size:1.05rem}.control-kpis{border:1px solid var(--borde);background:var(--superficie);border-radius:12px;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.control-kpis>div{align-items:baseline;gap:10px;padding:12px 18px;display:flex}.control-kpis>div+div{border-left:1px solid var(--borde)}.control-kpis strong{font-family:var(--condensada);font-size:1.7rem;font-weight:700;line-height:1}.control-kpis span{color:var(--texto-suave);font-size:.88rem;line-height:1.2}.control-kpis .control-kpi--alerta strong{color:var(--mal)}.control-kpis .control-kpi--revisar strong{color:var(--revision)}.cm{gap:12px;transition:opacity .15s;display:grid}.cm--cargando{opacity:.55}.cm-filtros{flex-wrap:wrap;gap:8px;display:flex}.cm-filtro{border:1px solid var(--borde);background:var(--superficie);color:var(--texto-suave);border-radius:999px;padding:6px 12px;font-size:.85rem;font-weight:500}.cm-filtro b{color:var(--texto);margin-left:4px}.cm-filtro--activo{border-color:var(--texto);background:var(--texto);color:var(--superficie)}.cm-filtro--activo b{color:var(--superficie)}.cm-lista{gap:8px;margin:0;padding:0;list-style:none;display:grid}.cm-prov{border:1px solid var(--borde);background:var(--superficie);border-radius:12px;overflow:hidden}.cm-prov--abierto{border-color:var(--texto-suave)}.cm-prov__fila{width:100%;color:var(--texto);text-align:left;background:0 0;border-radius:0;grid-template-columns:minmax(0,1fr) 180px 130px 130px 20px;align-items:center;gap:16px;padding:12px 16px;font-weight:400;display:grid}.cm-prov__fila:hover{background:var(--fondo-suave)}.cm-prov__nombre{gap:2px;min-width:0;display:grid}.cm-prov__nombre strong{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;overflow:hidden}.cm-prov__nombre small{color:var(--texto-suave);font-size:.8rem}.cm-prov__nombre .cm-prov__resumen--mal{color:var(--mal);font-weight:600}.cm-prov__avance{gap:4px;display:grid}.cm-prov__avance small{color:var(--texto-suave);font-size:.76rem}.cm-barra{background:var(--fondo-suave);border-radius:999px;height:6px;overflow:hidden}.cm-barra span{background:var(--ok);border-radius:999px;height:100%;display:block}.cm-permiso{border-radius:8px;gap:1px;padding:5px 10px;font-size:.86rem;font-weight:700;display:grid}.cm-permiso small{opacity:.85;font-size:.68rem;font-weight:500}.cm-permiso--ok{background:var(--ok-bg);color:var(--ok)}.cm-permiso--mal{background:var(--mal-bg);color:var(--mal)}.cm-permiso--neutral{background:var(--fondo-suave);color:var(--texto-suave)}.cm-prov__flecha{color:var(--texto-suave);text-align:center}.cm-detalle{border-top:1px solid var(--borde);background:var(--fondo-suave);grid-template-columns:minmax(0,1fr) 340px;gap:16px;padding:14px 16px 16px;display:grid}.cm-detalle__docs{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-content:start;gap:16px;display:grid}.cm-panel{align-content:start;gap:10px;display:grid}.cm-panel__bloque{border:1px solid var(--borde);background:var(--superficie);border-radius:10px;gap:6px;padding:12px 14px;display:grid}.cm-panel__bloque h4{margin:0;font-size:.86rem}.cm-panel__bloque p{margin:0;font-size:.84rem;line-height:1.35}.cm-panel__bloque>button{justify-self:start;margin-top:4px}.cm-panel__suave{color:var(--texto-suave)}.cm-panel .cm-panel__ok,.cm-panel .cm-panel__altas{color:var(--ok)}.cm-panel .cm-panel__bajas,.cm-panel .cm-panel__mal{color:var(--mal)}.cm-historial{grid-template-columns:repeat(6,1fr);gap:6px;margin:0;padding:0;list-style:none;display:grid}.cm-historial__mes{cursor:help;justify-items:center;gap:3px;display:grid}.cm-historial__mes span{background:var(--fondo-suave);border-radius:5px;width:100%;height:22px}.cm-historial__mes small{color:var(--texto-suave);font-size:.7rem}.cm-historial__mes--mal span{background:var(--mal)}.cm-historial__mes--revision span{background:var(--revision)}.cm-historial__mes--plazo span{background:var(--alerta)}.cm-historial__mes--ok span{background:var(--ok)}.cm-historial__mes:last-child small{color:var(--texto);font-weight:700}.cm-datos{grid-template-columns:96px minmax(0,1fr);gap:4px 8px;margin:0;font-size:.82rem;display:grid}.cm-datos dt{color:var(--texto-suave)}.cm-datos dd{overflow-wrap:anywhere;gap:2px;margin:0;display:grid}.cm-datos__usuario{display:grid}.cm-datos__usuario small{color:var(--texto-suave);font-size:.74rem}.cm-panel__acciones{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.cm-grupo h4{margin:0 0 8px;font-size:.92rem;display:grid}.cm-grupo h4 small{color:var(--texto-suave);font-size:.74rem;font-weight:500}.cm-grupo ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.cm-doc{border:1px solid var(--borde);background:var(--superficie);width:100%;color:var(--texto);text-align:left;border-radius:8px;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 10px;font-weight:400;display:grid}.cm-doc:hover{border-color:var(--texto-suave)}.cm-doc__num{color:var(--texto-suave);text-align:right;font-size:.78rem;font-weight:700}.cm-doc__nombre{font-size:.84rem;line-height:1.25}.cm-estado{background:var(--fondo-suave);color:var(--texto-suave);white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:.74rem;font-weight:600}.cm-estado--falta,.cm-estado--vencido,.cm-estado--rechazado{background:var(--mal-bg);color:var(--mal)}.cm-estado--por_vencer{background:var(--alerta-bg);color:var(--alerta)}.cm-estado--en_revision{background:var(--revision-bg);color:var(--revision)}.cm-estado--al_dia{background:var(--ok-bg);color:var(--ok)}@media (width<=1100px){.cm-detalle{grid-template-columns:1fr}}@media (width<=760px){.cm-prov__fila{grid-template-columns:1fr 1fr}.cm-prov__nombre,.cm-prov__avance{grid-column:1/-1}.cm-prov__flecha{display:none}}.control-sin-asignar{border:1px dashed var(--borde);color:var(--texto-suave);border-radius:12px;padding:12px 16px;font-size:.88rem}.control-sin-asignar summary{cursor:pointer;font-weight:600}.control-sin-asignar p{margin:8px 0 4px;line-height:1.6}.control-vacia{width:min(460px,100%)}.control-vacia p{margin:0}.bandeja{gap:14px;display:grid}.bandeja-filtros{flex-wrap:wrap;justify-content:space-between;gap:10px;display:flex}.bandeja-chips{flex-wrap:wrap;gap:6px;display:flex}.bandeja-chips button{border-radius:999px;padding:7px 12px;font-size:.86rem}.bandeja-chips b{opacity:.75;margin-left:4px}.bandeja-filtros input{flex:0 340px;min-width:260px}.bandeja-vacia{background:var(--ok-bg);color:var(--ok);text-align:center;border-radius:14px;margin:0;padding:28px;font-weight:600}.bandeja-lista{gap:6px;margin:0;padding:0;list-style:none;display:grid}.bandeja-item{border:1px solid var(--borde);background:var(--superficie);width:100%;color:var(--texto);text-align:left;border-radius:12px;grid-template-columns:96px minmax(0,1fr) minmax(0,220px) auto;align-items:center;gap:14px;padding:12px 16px;display:grid}.bandeja-item:hover{border-color:var(--marca)}.bandeja-item__edad{color:var(--texto-suave);font-size:.8rem}.bandeja-item__edad--demorado{color:var(--alerta);font-weight:700}.bandeja-item__principal,.bandeja-item__meta{min-width:0;display:grid}.bandeja-item__principal span,.bandeja-item__meta small{color:var(--texto-suave);text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;overflow:hidden}.bandeja-item__meta span{text-transform:capitalize;font-size:.88rem}.bandeja-item__accion{background:var(--marca);color:#fff;border-radius:9px;padding:7px 14px;font-size:.86rem;font-weight:600}body.theme-dark .bandeja-item__accion{color:#0f172a}.modal-card.revision{grid-template-columns:minmax(0,1fr) 380px;gap:0;width:min(1180px,100%);height:min(860px,100vh - 40px);padding:0;overflow:hidden}.revision__visor{background:var(--fondo-suave);min-height:0}.revision__visor iframe{border:none;width:100%;height:100%;display:block}.revision__sin-visor{text-align:center;height:100%;color:var(--texto-suave);place-content:center;gap:8px;display:grid}.revision__panel{border-left:1px solid var(--borde);flex-direction:column;gap:14px;padding:18px;display:flex;overflow-y:auto}.revision__panel>*{flex-shrink:0}.revision__head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.revision__head small{color:var(--texto-suave);font-weight:600}.revision__head h3{margin:2px 0;font-size:1.15rem}.revision__head p{color:var(--texto-suave);text-transform:capitalize;margin:0}.revision__datos{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.revision__datos div{gap:1px;min-width:0;display:grid}.revision__datos dt{color:var(--texto-suave);text-transform:uppercase;letter-spacing:.04em;font-size:.74rem;font-weight:600}.revision__datos dd{overflow-wrap:anywhere;margin:0}.revision__comentario,.revision__ayuda{margin:0;font-size:.88rem}.revision__ayuda{color:var(--texto-suave)}.revision__checklist{border:1px solid var(--borde);border-radius:12px;gap:8px;margin:0;padding:12px 14px;display:grid}.revision__checklist legend{text-transform:uppercase;letter-spacing:.04em;color:var(--texto-suave);padding:0 4px;font-size:.78rem;font-weight:700}.revision__checklist label{cursor:pointer;align-items:flex-start;gap:8px;font-size:.9rem;display:flex}.revision__checklist input{width:auto;margin-top:3px}.revision__motivo{gap:4px;font-size:.86rem;display:grid}.revision__acciones{z-index:1;background:var(--superficie);border-top:1px solid var(--borde);grid-template-columns:1fr auto;gap:8px;margin:auto -18px -18px;padding:12px 18px 18px;display:grid;position:sticky;bottom:-18px}.revision__aprobar{background:var(--ok)}body.theme-dark .revision__aprobar{color:#0f172a}.revision__rechazar{background:var(--mal)}.revision__rechazar-sec{border:1px solid var(--mal);color:var(--mal);background:0 0}.revision__nota{color:var(--texto-suave);text-align:center;grid-column:1/-1}.tipo-form{gap:14px}.tipo-form__fila{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.tipo-form__fila--nombre{grid-template-columns:80px 1fr}.tipo-form__plazo{align-items:center;gap:6px;display:flex}.tipo-form__plazo span{white-space:nowrap;font-weight:400}.tipo-form__plazo input{width:64px}.tipo-tabla{max-height:420px}.tipo-tabla__alcance{color:var(--texto-suave);display:block}@media (width<=900px){.control-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.control-kpis>div:nth-child(3){border-left:none}.control-kpis>div:nth-child(n+3){border-top:1px solid var(--borde)}.modal-card.revision{grid-template-rows:45vh auto;grid-template-columns:1fr;height:calc(100vh - 40px)}.revision__panel{border-left:none;border-top:1px solid var(--borde)}.bandeja-item{grid-template-columns:1fr auto}.bandeja-item__edad,.bandeja-item__meta{grid-column:1}.bandeja-item__accion{grid-area:1/2/span 3}}@media (width<=640px){.control-filtros select,.bandeja-filtros input{width:100%;min-width:0}}.config-doc{grid-template-columns:minmax(240px,300px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.config-doc__lista{border:1px solid var(--borde);background:var(--superficie);border-radius:12px;gap:12px;max-height:calc(100vh - 160px);padding:12px;display:grid;position:sticky;top:12px;overflow-y:auto}.config-doc__lista>header,.config-doc__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.config-doc__lista h3,.config-doc__head h3{margin:0;font-size:1rem}.config-doc__grupo{gap:4px;display:grid}.config-doc__grupo h4{color:var(--texto-suave);text-transform:uppercase;letter-spacing:.04em;margin:4px 0;font-size:.72rem;font-weight:700}.config-doc__vacio{color:var(--texto-suave);margin:0;font-size:.82rem}.config-doc__item{width:100%;color:var(--texto);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:28px minmax(0,1fr);align-items:start;gap:8px;padding:8px;font-weight:400;display:grid}.config-doc__item:hover{background:var(--fondo-suave)}.config-doc__item--activo{border-color:var(--acento);background:var(--fondo-suave)}.config-doc__num{background:var(--fondo-suave);width:24px;height:24px;color:var(--texto-suave);border-radius:50%;place-items:center;font-size:.75rem;font-weight:700;display:grid}.config-doc__item-texto{gap:2px;min-width:0;font-size:.86rem;display:grid}.config-doc__chips{color:var(--texto-suave);font-size:.74rem}.config-doc__editor{border:1px solid var(--borde);background:var(--superficie);border-radius:12px;gap:14px;min-width:0;padding:16px;display:grid}.config-doc__placeholder{color:var(--texto-suave);text-align:center;padding:40px 16px}.config-doc__seccion{border-top:1px solid var(--borde);gap:10px;padding-top:14px;display:grid}.config-doc__seccion h4{align-items:center;gap:8px;margin:0;font-size:.95rem;display:flex}.config-doc__seccion h4 span{background:var(--acento);color:#fff;border-radius:50%;place-items:center;width:22px;height:22px;font-size:.75rem;display:grid}.config-doc label{gap:4px;font-size:.84rem;display:grid}.config-doc .admin-form__check{align-items:center;gap:8px;display:flex}.config-doc__fila{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end;gap:10px;display:grid}.config-doc__fila--nombre{grid-template-columns:90px minmax(0,1fr) 180px}.config-doc__plazo{gap:6px;display:flex}.config-doc__plazo input{width:72px}.config-doc__opciones{flex-wrap:wrap;gap:8px;display:flex}.config-doc .config-doc__opcion{border:1px solid var(--borde);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:8px 12px;display:flex}.config-doc .config-doc__opcion--activa{border-color:var(--acento);background:var(--fondo-suave);font-weight:600}.config-doc__ayuda{color:var(--texto-suave);margin:0;font-size:.82rem}.config-doc__columnas{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px 16px;display:grid}.config-doc__deshabilitado{opacity:.5}.config-doc .config-doc__parametro{max-width:320px}.config-doc__beneficiarios{gap:6px;display:grid}.config-doc__beneficiario{grid-template-columns:160px minmax(0,1fr) auto;gap:6px;display:grid}.config-doc__agregar{justify-self:start}.config-doc__checklist{gap:6px;margin:0;padding-left:22px;display:grid}.config-doc__checklist li{grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:6px;display:grid}.config-doc__nuevo-punto{grid-template-columns:minmax(0,1fr) auto;gap:6px;display:grid}.config-doc__acciones{border-top:1px solid var(--borde);background:var(--superficie);justify-content:flex-end;gap:8px;padding-top:12px;display:flex;position:sticky;bottom:0}@media (width<=860px){.config-doc{grid-template-columns:1fr}.config-doc__lista{max-height:320px;position:static}.config-doc__fila--nombre,.config-doc__beneficiario{grid-template-columns:1fr}}.carga{gap:16px;max-width:820px;display:grid}.carga__intro h3{margin:0 0 4px}.carga__intro p{color:var(--texto-suave);margin:0;font-size:.88rem}.carga__form{border:1px solid var(--borde);background:var(--superficie);border-radius:12px;gap:14px;padding:16px;display:grid}.carga__form label{gap:4px;font-size:.84rem;display:grid}.carga__fila{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end;gap:12px;display:grid}.carga__periodo{gap:6px;display:flex}.carga__regla{background:var(--fondo-suave);color:var(--texto-suave);border-radius:8px;margin:0;padding:8px 12px;font-size:.84rem}.carga__hechos{border:1px solid var(--borde);border-radius:12px;padding:12px 16px}.carga__hechos h4{margin:0 0 8px}.carga__hechos ul{color:var(--ok);gap:4px;margin:0;padding:0;font-size:.86rem;list-style:none;display:grid}.cfg{gap:16px;display:grid}.cfg-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.cfg-nav .cfg-nav__item{border:1px solid var(--borde);background:var(--superficie);color:var(--texto);text-align:left;cursor:pointer;border-radius:12px;gap:2px;padding:12px 14px;font-weight:400;display:grid}.cfg-nav__item span{color:var(--texto-suave);font-size:.8rem}.cfg-nav .cfg-nav__item--activo{border-color:var(--acento);box-shadow:inset 3px 0 0 var(--acento)}.cfg-prov__filtros{flex-wrap:wrap;gap:4px;display:flex}.cfg-prov__filtros .cfg-prov__filtro{border:1px solid var(--borde);color:var(--texto-suave);background:0 0;border-radius:999px;padding:3px 10px;font-size:.74rem;font-weight:600}.cfg-prov__filtros .cfg-prov__filtro--activo{border-color:var(--marca);background:var(--marca);color:var(--superficie)}.cfg-prov__item{width:100%;color:var(--texto);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;gap:2px;padding:8px 10px;font-size:.86rem;font-weight:400;display:grid}.cfg-prov__item:hover{background:var(--fondo-suave)}.cfg-prov__item strong{font-weight:600}.cfg-prov__falta{color:var(--mal)}.cfg-prov__acciones{flex-wrap:wrap;gap:8px;display:flex}.cfg-prov__acciones select{min-width:220px}.cfg-pedidos{border:1px solid var(--borde);border-radius:10px;gap:2px;display:grid;overflow:hidden}.cfg-pedidos__head{background:var(--fondo-suave);justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:.86rem;display:flex}.cfg-pedidos__head .cfg-pedidos__todos{color:var(--acento);background:0 0;border:0;padding:2px 8px;font-size:.78rem;font-weight:700}.config-doc .cfg-pedido{border-top:1px solid var(--borde);color:var(--texto-suave);cursor:pointer;grid-template-columns:18px 24px minmax(0,1fr);align-items:center;gap:10px;padding:8px 12px;font-weight:400;display:grid}.config-doc .cfg-pedido--activo{color:var(--texto)}.cfg-pedido input{accent-color:var(--acento)}.cfg-pedido__texto{gap:1px;font-size:.88rem;display:grid}.cfg-pedido__texto small{color:var(--texto-suave);font-size:.75rem}.cfg-prov__guardar{border-top:1px solid var(--borde);background:var(--superficie);justify-content:flex-end;align-items:center;gap:8px;padding:10px 0 2px;display:flex;position:sticky;bottom:0}.cfg-prov__guardar span{color:var(--alerta);margin-right:auto;font-size:.84rem;font-weight:600}.cfg-usuarios{gap:6px;margin:0;padding:0;list-style:none;display:grid}.cfg-usuarios li{border:1px solid var(--borde);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.cfg-usuarios li span{overflow-wrap:anywhere;gap:1px;min-width:0;display:grid}.cfg-usuarios .cfg-usuarios__acciones{flex-shrink:0;gap:6px;display:flex}.cfg-usuarios small{color:var(--texto-suave);font-size:.75rem}.cfg-usuarios__agregar{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}@media (width<=760px){.cfg-nav{grid-template-columns:1fr}}.personal-admin{grid-template-columns:minmax(220px,280px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.personal-admin__tablero{gap:12px;min-width:0;display:grid}.personal-admin__head{justify-content:space-between;align-items:center;gap:12px;display:flex}.personal-admin__head h3{margin:0}.personal-admin__head p{color:var(--texto-suave);margin:2px 0 0;font-size:.86rem}.cfg-prov__item .personal-admin__revisar{color:var(--revision);font-weight:700}.revision__lectura-estado{color:var(--texto-suave);margin:0;font-size:.84rem}@media (width<=860px){.personal-admin{grid-template-columns:1fr}}.acceso-modal{width:min(560px,100%)}.acceso-modal__form{gap:12px;display:grid}.acceso-modal__form label{gap:4px;font-size:.86rem;font-weight:600;display:grid}.acceso-modal__opciones{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.acceso-modal__form .acceso-opcion{border:1px solid var(--borde);cursor:pointer;border-radius:10px;align-content:start;gap:4px;padding:12px;display:grid;position:relative}.acceso-opcion input{opacity:0;position:absolute}.acceso-opcion small{color:var(--texto-suave);font-size:.78rem;font-weight:400}.acceso-opcion--aprobado.acceso-opcion--activa{border-color:var(--ok);background:var(--ok-bg)}.acceso-opcion--observado.acceso-opcion--activa{border-color:var(--alerta);background:var(--alerta-bg)}.acceso-opcion--rechazado.acceso-opcion--activa{border-color:var(--mal);background:var(--mal-bg)}.acceso-modal__dias span{color:var(--texto-suave);align-items:center;gap:8px;font-weight:400;display:flex}.acceso-modal__dias input{width:80px}@media (width<=640px){.acceso-modal__opciones{grid-template-columns:1fr}}.control-shell{background:var(--fondo-suave,#f4f5f7);min-height:100vh;padding:16px 16px 24px}.ingresos{gap:12px;max-width:560px;margin:0 auto;display:grid}.control__head h1{margin:0;font-size:1.3rem}.control__head small{color:var(--texto-suave)}.control__elegir{gap:8px;display:grid}.control__elegir label{gap:4px;font-size:.84rem;font-weight:600;display:grid}.control__elegir select,.control__buscar{width:100%;min-height:46px;font-size:1rem}.ingresos .control__escanear{background:var(--marca);min-height:64px;color:var(--superficie);border-radius:14px;font-size:1.2rem;font-weight:700}.control__resumen{color:var(--texto-suave);flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;font-size:.86rem;display:flex}.control__punto{border-radius:50%;width:10px;height:10px;display:inline-block}.control__punto--por_ingresar{background:var(--ok)}.control__punto--ingreso{background:var(--revision)}.control__punto--no{background:var(--mal)}.control__lista{gap:8px;margin:0;padding:0;list-style:none;display:grid}.control-persona{border-left:6px solid var(--borde);background:var(--superficie);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.control-persona--por_ingresar{border-left-color:var(--ok)}.control-persona--ingreso{border-left-color:var(--revision);background:var(--revision-bg)}.control-persona--no{border-left-color:var(--mal);background:var(--mal-bg)}.control-persona__datos{gap:2px;min-width:0;display:grid}.control-persona__datos small{color:var(--texto-suave)}.control-persona .control-persona__motivo{color:var(--alerta)}.control-persona--no .control-persona__motivo{color:var(--mal)}.control-persona__estado{flex-shrink:0;font-size:.86rem;font-weight:700}.control-persona--ingreso .control-persona__estado{color:var(--revision)}.control-persona--no .control-persona__estado{color:var(--mal)}.ingresos .control-persona__confirmar{background:var(--ok);color:#fff;flex-shrink:0;min-height:42px}.control__error,.control__aviso,.control__vacio{border-radius:10px;margin:0;padding:10px 12px}.control__error{background:var(--mal-bg);color:var(--mal)}.control__aviso{background:var(--ok-bg);color:var(--ok);font-weight:600}.control__vacio{color:var(--texto-suave)}.control-shell__pie{justify-content:center;align-items:center;gap:16px;max-width:560px;margin:24px auto 0;display:flex}.control-escaner{z-index:50;background:#000;grid-template-rows:1fr auto auto auto;gap:10px;padding:16px;display:grid;position:fixed;inset:0}.control-escaner__visor{border-radius:14px;position:relative;overflow:hidden}.control-escaner__visor video{object-fit:cover;width:100%;height:100%}.control-escaner__guia{border:3px solid #ffffffd9;border-radius:10px;position:absolute;inset:32% 8%}.control-escaner__visor p{color:#fff;text-align:center;text-shadow:0 1px 3px #000c;margin:0;font-weight:600;position:absolute;bottom:12px;left:0;right:0}.control-escaner__error{color:#ffb4b0;text-align:center;margin:0}.control-escaner__manual{grid-template-columns:1fr auto;gap:8px;display:grid}.control-escaner__manual input{min-height:46px;font-size:1rem}.control-escaner .control-escaner__cerrar{color:#fff;background:0 0;border:1px solid #ffffff80;min-height:48px}.control-resultado{z-index:40;background:#0a101c99;align-content:center;gap:14px;padding:16px;display:grid;position:fixed;inset:0}.control-resultado__tarjeta{background:var(--superficie);border-top:10px solid var(--borde);text-align:center;border-radius:16px;gap:6px;padding:22px 18px;display:grid}.control-resultado__tarjeta strong{font-size:1.3rem}.control-resultado__tarjeta p{margin:0}.control-resultado__tarjeta--por_ingresar{border-top-color:var(--ok)}.control-resultado__tarjeta--ingreso{border-top-color:var(--revision)}.control-resultado__tarjeta--no{border-top-color:var(--mal)}.ingresos .control-resultado__confirmar{background:var(--ok);color:#fff;border-radius:12px;min-height:60px;margin-top:8px;font-size:1.15rem;font-weight:700}.control-resultado__acciones{grid-template-columns:1fr 1fr;gap:10px;display:grid}.control-resultado__acciones button{min-height:48px}
