:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=1024px){:root{font-size:16px}}#root{box-sizing:border-box;flex-direction:column;width:100%;min-height:100svh;margin:0 auto;display:flex}body{color:#111827;background-color:#f8fafc;margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.inline-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin:12px 0;padding:10px 14px;font-size:.92rem;line-height:1.5}.counter{color:var(--accent);background:var(--accent-bg);border:2px solid #0000;border-radius:5px;margin-bottom:24px;padding:5px 10px;font-size:16px;transition:border-color .3s}.counter:hover{border-color:var(--accent-border)}.counter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero{position:relative}.hero .base,.hero .framework,.hero .vite{margin:0 auto;inset-inline:0}.hero .base{z-index:0;width:170px;position:relative}.hero .framework,.hero .vite{position:absolute}.hero .framework{z-index:1;height:28px;top:34px;transform:perspective(2000px)rotate(300deg)rotateX(44deg)rotateY(39deg)scale(1.4)}.hero .vite{z-index:0;width:auto;height:26px;top:107px;transform:perspective(2000px)rotate(300deg)rotateX(40deg)rotateY(39deg)scale(.8)}#center{flex-direction:column;flex-grow:1;place-content:center;place-items:center;gap:25px;display:flex}@media (width<=1024px){#center{gap:18px;padding:32px 20px 24px}}#next-steps{border-top:1px solid var(--border);text-align:left;display:flex}#next-steps>div{flex:1 1 0;padding:32px}@media (width<=1024px){#next-steps>div{padding:24px 20px}}#next-steps .icon{width:22px;height:22px;margin-bottom:16px}@media (width<=1024px){#next-steps{text-align:center;flex-direction:column}}#docs{border-right:1px solid var(--border)}@media (width<=1024px){#docs{border-right:none;border-bottom:1px solid var(--border)}}#next-steps ul{gap:8px;margin:32px 0 0;padding:0;list-style:none;display:flex}#next-steps ul .logo{height:18px}#next-steps ul a{color:var(--text-h);background:var(--social-bg);border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-size:16px;text-decoration:none;transition:box-shadow .3s;display:flex}#next-steps ul a:hover{box-shadow:var(--shadow)}#next-steps ul a .button-icon{width:18px;height:18px}@media (width<=1024px){#next-steps ul{flex-wrap:wrap;justify-content:center;margin-top:20px}#next-steps ul li{flex:calc(50% - 8px)}#next-steps ul a{box-sizing:border-box;justify-content:center;width:100%}}#spacer{border-top:1px solid var(--border);height:88px}@media (width<=1024px){#spacer{height:48px}}.ticks{width:100%;position:relative}.ticks:before,.ticks:after{content:"";border:5px solid #0000;position:absolute;top:-4.5px}.ticks:before{border-left-color:var(--border);left:0}.ticks:after{border-right-color:var(--border);right:0}.investigadores-container{max-width:1200px;margin:0 auto}.table-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000000d}.investigadores-table{border-collapse:collapse;text-align:left;width:100%}.investigadores-table th{color:#4b5563;text-transform:uppercase;letter-spacing:.05em;background-color:#f9fafb;border-bottom:1px solid #e5e7eb;padding:12px 24px;font-size:.75rem;font-weight:600}.investigadores-table td{vertical-align:middle;color:#374151;border-bottom:1px solid #e5e7eb;padding:16px 24px;font-size:.875rem}.investigadores-table tbody tr:last-child td{border-bottom:none}.investigadores-table tbody tr:hover{background-color:#f9fafb}.user-cell{color:#111827;align-items:center;gap:12px;font-weight:500;display:flex}.avatar{color:#4b5563;background-color:#e5e7eb;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:.75rem;font-weight:600;display:flex;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.p-base{color:#111827;padding:24px}.text-error{color:#ef4444}.tabla{background:#fff;border:1px solid #e5e7eb;border-radius:8px;width:100%;overflow:hidden}.tabla-fila{cursor:pointer;display:grid}.tabla-encabezado{display:grid}.tabla-encabezado-celda{color:#4b5563;text-transform:uppercase;letter-spacing:.05em;background-color:#f9fafb;border-bottom:1px solid #e5e7eb;padding:12px 24px;font-size:.75rem;font-weight:600}.tabla-celda{vertical-align:middle;color:#374151;border-bottom:1px solid #e5e7eb;padding:16px 24px;font-size:.875rem}.tabla-fila:last-child .tabla-celda{border-bottom:none}.tabla-fila{background-color:#fff;display:grid}.tabla-fila:hover{background-color:#f9fafb}.tabla-contenedor{width:100%}.filtros{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:16px;display:flex}.filtro{flex-direction:column;gap:6px;display:flex}.filtro label{color:#374151;font-size:.875rem;font-weight:600}.filtro input,.filtro select,.filtros button{box-sizing:border-box;border:1px solid #d1d5db;border-radius:6px;padding:8px 12px;font-family:inherit;font-size:.875rem}.filtro input,.filtro select{color:#374151;background-color:#fff}.filtros button{color:#374151;cursor:pointer;background-color:#f9fafb}.filtros button:hover{background-color:#f3f4f6}.tabla-imagen{object-fit:cover;border-radius:50%;width:40px;height:40px}.barra-progreso-contenedor{align-items:center;gap:8px;width:100%;display:flex}.barra-progreso-fondo{background-color:#e5e7eb;border-radius:9999px;flex-grow:1;height:8px;overflow:hidden}.barra-progreso-relleno{border-radius:9999px;height:100%;transition:width .3s}.barra-progreso-relleno.verde{background-color:#10b981}.barra-progreso-relleno.amarillo{background-color:#f59e0b}.barra-progreso-relleno.rojo{background-color:#ef4444}.barra-progreso-texto{color:#374151;text-align:right;min-width:32px;font-size:.75rem;font-weight:600}.tabla-acciones{align-items:center;gap:12px;display:flex}.tabla-acciones button{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;display:flex}.tabla-acciones button:hover{color:#111827;background-color:#f3f4f6}.tabla-acciones svg{width:20px;height:20px}.tabla-semaforo{align-items:center;gap:8px;display:flex}.semaforo-circulo{border-radius:50%;flex-shrink:0;width:10px;height:10px}.semaforo-circulo.rojo{background-color:#dc2626}.semaforo-circulo.amarillo{background-color:#eab308}.semaforo-circulo.verde{background-color:#16a34a}.semaforo-circulo.gris{background-color:#9ca3af}.panel-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:40;background-color:#0006;animation:.3s ease-out fadeIn;position:fixed;inset:0}.panel-lateral{z-index:50;background-color:#fff;flex-direction:column;width:calc(100% - 250px);max-width:100%;animation:.3s ease-out forwards slideInRight;display:flex;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-4px 0 25px #0000001a}.panel-cabecera{background-color:#f9fafb;border-bottom:1px solid #e5e7eb;padding:24px;position:relative}.boton-cerrar{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:8px;transition:all .2s;display:flex;position:absolute;top:16px;right:16px}.boton-cerrar:hover{color:#111827;background-color:#e5e7eb}.panel-cabecera h2{color:#111827;margin:0 0 4px;font-size:1.25rem}.cargo-texto{color:#6b7280;margin:0;font-size:.875rem}.panel-contenido{flex:1;padding:24px;overflow-y:auto}.cabecera-info{align-items:flex-start;gap:16px;display:flex}.avatar{object-fit:cover;border:1px solid #e0f2fe;border-radius:50%;width:64px;height:64px;box-shadow:0 1px 2px #0000000d}.cabecera-detalle{flex:1;margin-top:4px}.contacto-links{color:#6b7280;align-items:center;gap:12px;margin-top:12px;font-size:.75rem;display:flex}.contacto-link{cursor:pointer;color:inherit;align-items:center;gap:4px;text-decoration:none;transition:color .2s;display:flex}.contacto-link:hover{color:#0369a1}.seccion-titulo{color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px;font-size:.875rem;font-weight:600}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:32px;display:grid}.kpi-card{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:12px}.kpi-encabezado{color:#6b7280;align-items:center;gap:8px;margin-bottom:8px;display:flex}.kpi-encabezado span{font-size:.75rem;font-weight:500}.kpi-valor{color:#111827;align-items:center;gap:8px;font-size:1.5rem;font-weight:700;display:flex}.status-dot{border-radius:50%;width:8px;height:8px}.status-success{background-color:#10b981}.status-warning{background-color:#f59e0b}.status-error{background-color:#ef4444}.seccion-grafico{margin-bottom:32px}.grafico-contenedor{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px}.secciones-inferiores{flex-direction:column;gap:24px;margin-bottom:24px;display:flex}.lista-items{flex-direction:column;gap:12px;display:flex}.lista-item{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;align-items:center;gap:12px;padding:12px;display:flex}.item-detalle h4{color:#111827;margin:0 0 4px;font-size:.875rem;font-weight:600}.item-detalle p{color:#6b7280;margin:0;font-size:.75rem}.timeline-items{border-left:2px solid #e5e7eb;flex-direction:column;gap:16px;margin-left:8px;padding-left:8px;display:flex}.timeline-item{padding-left:16px;position:relative}.timeline-punto{background-color:#0369a1;border:2px solid #fff;border-radius:50%;width:10px;height:10px;position:absolute;top:4px;left:-22px}.timeline-contenido h4{color:#111827;margin:0 0 4px;font-size:.875rem;font-weight:600}.timeline-contenido p{color:#6b7280;margin:0;font-size:.75rem}.panel-footer{background-color:#f9fafb;border-top:1px solid #e5e7eb;justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.boton-secundario{color:#374151;cursor:pointer;background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:8px 16px;font-size:.875rem;font-weight:500;transition:background-color .2s}.boton-secundario:hover{background-color:#f3f4f6}.boton-primario{color:#fff;cursor:pointer;background-color:#0369a1;border:none;border-radius:6px;padding:8px 16px;font-size:.875rem;font-weight:500;transition:background-color .2s}.boton-primario:hover{background-color:#0284c7}.closing-overlay{animation:.25s ease-in forwards fadeOut}.closing-lateral{animation:.25s ease-in forwards slideOutRight}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideOutRight{0%{transform:translate(0)}to{transform:translate(100%)}}.login-page{justify-content:center;align-items:center;width:100%;min-height:100vh;padding:24px;display:flex}.login-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;width:100%;max-width:420px;padding:40px;box-shadow:0 4px 12px #0000000a}.login-header{text-align:center;margin-bottom:32px}.login-logo{color:#fff;background-color:#10b981;border-radius:8px;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 16px;font-size:22px;font-weight:700;display:flex}.login-title{color:#111827;margin:0 0 8px;font-size:1.5rem;font-weight:600}.login-description{color:#6b7280;margin:0;font-size:.875rem}.login-form{flex-direction:column;gap:20px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:#374151;font-size:.875rem;font-weight:600}.form-group input{color:#374151;background-color:#fff;border:1px solid #d1d5db;border-radius:6px;outline:none;width:100%;padding:11px 12px;font-family:inherit;font-size:.875rem;transition:border-color .2s,box-shadow .2s}.form-group input::placeholder{color:#9ca3af}.form-group input:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b9811f}.login-button{color:#fff;cursor:pointer;background-color:#10b981;border:1px solid #10b981;border-radius:6px;width:100%;padding:11px 16px;font-family:inherit;font-size:.875rem;font-weight:600;transition:background-color .2s,border-color .2s}.login-button:hover{background-color:#059669;border-color:#059669}.login-error{color:#b91c1c;background-color:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:10px 12px;font-size:.875rem}.page-title{color:#111827;margin-bottom:2rem;font-size:2rem;font-weight:700}.ficha-header-volver{color:var(--color-muted-foreground);align-items:center;gap:6px;margin-bottom:8px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.ficha-header-volver:hover{color:var(--color-foreground)}.ficha-header{background:var(--color-card);border:1px solid var(--color-border);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:24px;display:flex}.ficha-header-fila-superior{color:var(--color-muted-foreground);align-items:center;gap:8px;margin-bottom:8px;font-size:.875rem;display:flex}.ficha-header-separador{color:var(--color-border)}.ficha-header-titulo{color:var(--color-foreground);margin:0;font-size:1.5rem;font-weight:700}.ficha-header-derecha{flex-direction:column;align-items:flex-end;gap:12px;display:flex}.ficha-header-info{color:var(--color-muted-foreground);background:var(--color-background);border-radius:8px;align-items:center;gap:24px;padding:10px 16px;font-size:.875rem;display:flex}.ficha-header-info-item{align-items:center;gap:6px;display:flex}.ficha-header-boton-editar{color:#2563eb;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:.875rem;font-weight:500;display:inline-flex}.ficha-header-boton-editar:hover{text-decoration:underline}.ficha-header-acciones{align-items:center;gap:20px;display:flex}.semaforo-punto{border-radius:50%;flex-shrink:0}.semaforo-sm .semaforo-punto{width:8px;height:8px}.semaforo-md .semaforo-punto{width:12px;height:12px}.semaforo-lg .semaforo-punto{width:16px;height:16px}.semaforo-success{background-color:var(--color-success)}.semaforo-warning{background-color:var(--color-warning)}.semaforo-error{background-color:var(--color-destructive)}.semaforo-label{color:var(--color-foreground);font-size:.875rem;font-weight:500}.hitos-tabla-envoltura{width:100%;overflow-x:auto}.hitos-tabla{border-collapse:collapse;width:100%;font-size:.875rem}.hitos-tabla thead th{text-align:left;letter-spacing:.03em;color:var(--color-muted-foreground,#6b7280);text-transform:uppercase;border-bottom:1px solid var(--color-border,#e2e8f0);padding:8px 12px;font-size:.72rem;font-weight:600}.hitos-tabla tbody tr{border-bottom:1px solid var(--color-border,#e2e8f0);transition:background-color .15s}.hitos-tabla tbody tr:last-child{border-bottom:none}.hitos-tabla tbody tr:hover{background:var(--color-background,#f8fafc)}.hitos-tabla td{color:var(--color-foreground,#111827);vertical-align:middle;padding:12px}.hitos-tabla-estado{white-space:nowrap}.hitos-tabla-hito{flex-direction:column;gap:2px;display:flex}.hitos-tabla-titulo{color:var(--color-foreground,#111827);font-weight:600}.hitos-tabla-producto{color:var(--color-muted-foreground,#6b7280);font-size:.78rem}.hitos-tabla-fecha{color:var(--color-muted-foreground,#6b7280);white-space:nowrap}.hitos-tabla-fecha-atrasada{color:#dc2626;font-weight:600}.hitos-tabla-accion{text-align:right}.hitos-tabla-acciones{justify-content:flex-end;align-items:center;gap:4px;display:flex}.hitos-tabla-boton-mail{cursor:pointer;color:var(--color-muted-foreground,#6b7280);background:0 0;border:none;border-radius:6px;padding:6px;display:inline-flex}.hitos-tabla-boton-mail:hover{background:var(--color-background,#f1f5f9);color:var(--color-foreground,#111827)}.hitos-tabla-chevron{color:#cbd5e1;flex-shrink:0}.hitos-tabla-vacio{border:1px dashed var(--color-border,#e2e8f0);color:var(--color-muted-foreground,#6b7280);text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:8px;padding:28px 16px;display:flex}.hitos-tabla-vacio p{margin:0;font-size:.85rem}.hitos-tabla-vacio svg{color:#94a3b8}.seccion-bloque{margin-bottom:24px}.seccion-titulo{text-transform:uppercase;letter-spacing:.05em;color:#6b7280;margin-bottom:12px;font-size:.85rem;font-weight:700}.hito-icono{color:#0284c7;background-color:#f0f9ff;border:1px solid #bae6fd;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.hito-estado{border-radius:9999px;align-items:center;gap:6px;width:fit-content;margin-top:8px;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.hito-estado.status-success{color:#15803d;background-color:#dcfce7}.hito-estado.status-warning{color:#b45309;background-color:#fef3c7}.hito-estado.status-error{color:#b91c1c;background-color:#fee2e2}.hito-estado.status-pending{color:#4b5563;background-color:#f3f4f6}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.kpi-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:12px 14px;box-shadow:0 1px 2px #00000008}.kpi-encabezado{color:#6b7280;align-items:center;gap:6px;margin-bottom:6px;font-size:.75rem;display:flex}.detalle-valor{color:#111827;font-size:.875rem;font-weight:600;line-height:1.4}.detalle-seccion{flex-direction:column;gap:10px;display:flex}.detalle-item{background-color:#fff;border:1px solid #e5e7eb;border-radius:10px;align-items:flex-start;gap:12px;padding:12px 14px;transition:border-color .2s;display:flex;box-shadow:0 1px 2px #00000008}.detalle-item:hover{border-color:#cbd5e1}.detalle-item-icono{color:#0284c7;flex-shrink:0;margin-top:2px}.detalle-item>div{flex-direction:column;gap:2px;display:flex}.detalle-label{color:#6b7280;font-size:.7rem;font-weight:500}.detalle-item strong{color:#1f2937;font-size:.875rem;font-weight:600}.detalle-secundario{color:#6b7280;font-size:.75rem}.descripcion-hito{color:#0284c7;background-color:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;align-items:flex-start;gap:12px;padding:14px;display:flex}.descripcion-hito svg{flex-shrink:0;margin-top:2px}.descripcion-hito p{color:#334155;margin:0;font-size:.875rem;line-height:1.5}.detalle-seccion a.detalle-item{color:inherit;text-decoration:none}.panel-cargando,.panel-error{border-radius:10px;padding:12px 14px;font-size:.85rem}.panel-cargando{color:#475569;background-color:#f1f5f9}.panel-error{color:#991b1b;background-color:#fee2e2;border:1px solid #fca5a5;margin-bottom:12px}.panel-acciones{border-bottom:1px solid #e5e7eb;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px;padding-bottom:20px;display:flex}.panel-completar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.panel-completar input[type=date]{font:inherit;color:#374151;border:1px solid #d1d5db;border-radius:6px;padding:9px 10px;font-size:.85rem}.panel-boton{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:9px 14px;font-size:.85rem;font-weight:600;transition:background-color .2s,border-color .2s;display:inline-flex}.panel-boton:disabled{opacity:.6;cursor:not-allowed}.panel-boton-editar{color:#1d4ed8;background-color:#eff6ff;border-color:#bfdbfe}.panel-boton-editar:hover:not(:disabled){background-color:#dbeafe}.panel-boton-completar{color:#fff;background-color:#10b981;border-color:#10b981}.panel-boton-completar:hover:not(:disabled){background-color:#059669;border-color:#059669}.panel-boton-reabrir{color:#4b5563;background-color:#fff;border-color:#d1d5db}.panel-boton-reabrir:hover:not(:disabled){background-color:#f3f4f6}.panel-pendientes{color:#92400e;background-color:#fffbeb;border:1px solid #fcd34d;border-radius:10px;margin:0 0 20px;padding:12px 14px 12px 34px;font-size:.82rem}.panel-pendientes li{margin-bottom:2px}.panel-fechas-meta{color:#6b7280;flex-direction:column;gap:2px;margin-top:12px;font-size:.72rem;display:flex}.panel-chips{flex-wrap:wrap;gap:6px;display:flex}.panel-chip{color:#0369a1;background-color:#e0f2fe;border-radius:9999px;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-block}.panel-chip-suave{color:#475569;background-color:#f1f5f9}.panel-textos{flex-direction:column;gap:14px;display:flex}.panel-texto-bloque{background-color:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:14px}.panel-texto-titulo{color:#334155;align-items:center;gap:6px;margin:0 0 8px;font-size:.8rem;font-weight:700;display:flex}.panel-texto-titulo svg{color:#0284c7}.panel-texto{color:#334155;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:.875rem;line-height:1.55}.panel-texto-clamp{-webkit-line-clamp:6;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.panel-texto-toggle{color:#0284c7;font:inherit;cursor:pointer;background:0 0;border:none;margin-top:8px;padding:0;font-size:.78rem;font-weight:600}.panel-texto-toggle:hover{text-decoration:underline}.panel-patser{flex-direction:column;gap:16px;display:flex}.panel-patser-item{flex-direction:column;gap:8px;display:flex}.panel-patser-label{text-transform:uppercase;letter-spacing:.04em;color:#6b7280;font-size:.72rem;font-weight:700}.panel-patser-detalle{background-color:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px}.panel-patser-detalle strong{color:#1f2937;margin-bottom:4px;font-size:.82rem;display:block}.panel-patser-detalle p{color:#475569;white-space:pre-wrap;margin:0;font-size:.82rem;line-height:1.5}.panel-patser-descripcion{color:#334155}.panel-patser-contribucion{color:#64748b;margin-top:6px;font-style:italic}.panel-lateral.panel-colaboradores{width:480px}.colaboradores-icono{color:#0284c7;background-color:#f0f9ff;border:1px solid #bae6fd;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.colaboradores-buscador{margin-bottom:20px;position:relative}.colaboradores-buscador svg{color:#6b7280;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.colaboradores-buscador input{box-sizing:border-box;color:#111827;background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;width:100%;padding:10px 12px 10px 36px;font-family:inherit;font-size:.875rem}.colaboradores-buscador input:focus{border-color:#0284c7;outline:2px solid #bae6fd}.colaboradores-filtro{color:#374151;cursor:pointer;align-items:center;gap:8px;margin:-8px 0 16px;font-size:.875rem;display:flex}.colaboradores-lista{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.colaborador-fila{background-color:#fff;border:1px solid #e5e7eb;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;transition:border-color .2s,background-color .2s;display:flex}.colaborador-fila.con-acceso{background-color:#f0f9ff;border-color:#bae6fd}.colaborador-casilla{accent-color:#0369a1;cursor:pointer;flex-shrink:0;width:16px;height:16px;margin:0}.colaborador-casilla:disabled{cursor:default}.colaborador-avatar{color:#0369a1;background-color:#e0f2fe;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:.75rem;font-weight:600;display:flex}.colaborador-datos{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.colaborador-datos strong{color:#1f2937;font-size:.875rem;font-weight:600}.colaborador-datos span{color:#6b7280;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.colaborador-acciones{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:6px;display:flex}.colaborador-permiso{color:#374151;cursor:pointer;background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;max-width:170px;padding:6px 8px;font-family:inherit;font-size:.8rem}.colaborador-etiqueta{color:#15803d;background-color:#dcfce7;border-radius:9999px;padding:4px 10px;font-size:.75rem;font-weight:600}.colaborador-sin-acceso{color:#9ca3af;font-size:.75rem}.colaboradores-aviso{color:#6b7280;margin-top:12px;font-size:.875rem}.colaboradores-error{color:#b91c1c;background-color:#fee2e2;border-radius:8px;margin-bottom:16px;padding:10px 12px;font-size:.8rem}.equipo-investigacion{flex-direction:column;gap:16px;display:flex}.equipo-investigacion-etiqueta{color:var(--color-muted-foreground);text-transform:uppercase;letter-spacing:.03em;margin:0 0 4px;font-size:.75rem;font-weight:600}.equipo-investigacion-nombre{color:var(--color-foreground);margin:0;font-size:.875rem;font-weight:500}.equipo-investigacion-lista{color:var(--color-foreground);flex-direction:column;gap:4px;margin:0;padding:0;font-size:.875rem;list-style:none;display:flex}.financiamiento{flex-direction:column;gap:20px;display:flex}.financiamiento-vacio{color:var(--color-muted-foreground);font-size:.875rem}.financiamiento-vacio p{margin:0}.financiamiento-resumen{border-bottom:1px solid var(--color-border);flex-direction:column;gap:8px;padding-bottom:16px;display:flex}.financiamiento-resumen-fila{justify-content:space-between;align-items:baseline;gap:12px;font-size:.875rem;display:flex}.financiamiento-resumen-fila span{color:var(--color-muted-foreground)}.financiamiento-resumen-fila strong{color:var(--color-foreground);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.financiamiento-resumen-detalle{color:var(--color-muted-foreground);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;font-size:.75rem;display:flex}.financiamiento-aportes{flex-direction:column;gap:16px;display:flex}.financiamiento-aportes-titulo{color:var(--color-foreground);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:600}.financiamiento-aporte{flex-direction:column;gap:8px;display:flex}.financiamiento-aporte-encabezado{justify-content:space-between;align-items:flex-start;gap:12px;font-size:.875rem;display:flex}.financiamiento-aporte-nombre{color:var(--color-foreground);word-break:break-word;flex:1;font-weight:500}.financiamiento-aporte-monto{color:var(--color-muted-foreground);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;font-weight:500}.financiamiento-barra-fondo{background:var(--color-background);border-radius:999px;width:100%;height:8px;overflow:hidden}.financiamiento-barra-relleno{background:var(--color-primary,#2563eb);border-radius:999px;height:100%;transition:width .3s}.financiamiento-aporte-detalle{color:var(--color-muted-foreground);justify-content:space-between;align-items:baseline;gap:12px;font-size:.8125rem;display:flex}.financiamiento-aporte-detalle span:first-child{white-space:nowrap;font-weight:500}.financiamiento-aporte-detalle span:last-child{text-align:right;text-overflow:ellipsis;overflow:hidden}.financiamiento-total{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;padding-top:12px;font-size:.875rem;display:flex}.financiamiento-total strong{color:var(--color-foreground);font-size:1rem}.caja{border:1px solid #ddd;border-radius:12px;flex-direction:column;gap:20px;padding:20px;display:flex}.caja-titulo{box-sizing:border-box;border-bottom:1px solid #ddd;justify-content:space-between;align-items:center;gap:12px;width:100%;margin:0;padding-bottom:12px;font-size:20px;font-weight:700;display:flex}.caja-titulo h2{margin:0}.caja-accion{align-items:center;gap:10px;font-size:.85rem;font-weight:500;display:flex}.caja-contador{color:#475569;white-space:nowrap;background:#f1f5f9;border-radius:9999px;padding:3px 10px;font-size:.75rem;font-weight:600}.caja-accion-boton{background:var(--color-primary,#2563eb);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:6px;padding:7px 12px;font-family:inherit;font-size:.82rem;font-weight:600;transition:background-color .2s,box-shadow .2s,transform .2s;display:inline-flex}.caja-accion-boton:hover{background:var(--color-primary-hover,#1d4ed8);box-shadow:0 2px 6px #0000001f}.caja-accion-boton:active{transform:scale(.98)}.caja-accion-boton:focus-visible{outline:2px solid var(--color-primary,#2563eb);outline-offset:3px}.caja-accion-icono{font-size:1.05rem;line-height:1}:root{--color-success:#10b981;--color-warning:#f59e0b;--color-destructive:#ef4444;--color-muted-foreground:#64748b;--color-border:#e2e8f0;--color-card:#fff;--color-background:#f8fafc;--color-foreground:#0f172a}.ficha-caja .caja{background:var(--color-card,#fff);border-color:var(--color-border,#e2e8f0)}.ficha-caja .caja-titulo{border-bottom-color:var(--color-border,#e2e8f0)}.ficha-caja .caja-titulo h2{color:var(--color-foreground,#111827);margin:0}*{box-sizing:border-box}.hito-page{justify-content:center;align-items:center;width:100%;min-height:100vh;padding:24px;display:flex}.hito-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;width:100%;max-width:560px;padding:40px;box-shadow:0 4px 12px #0000000a}.hito-card-amplio{max-width:980px}.hito-step{color:#059669;text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:.75rem;font-weight:700}.hito-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.hito-paso-dos{flex-direction:column;gap:20px;display:flex}.hito-form-group-ancho{grid-column:1/-1}.hito-form-group small,.hito-info,.hito-ayuda{color:#6b7280;margin:0;font-size:.78rem;line-height:1.45}.nivel-campo{vertical-align:middle;border-radius:4px;margin-left:6px;padding:2px 6px;font-size:.68rem;font-weight:600;display:inline-block}.nivel-crear{color:#166534;background:#dcfce7}.nivel-completar{color:#92400e;background:#fef3c7}.nivel-opcional{color:#475569;background:#f1f5f9}.nivel-no_aplica{color:#991b1b;background:#fee2e2}.patser-section{background:#f0fdf4;border:1px solid #d1fae5;border-radius:8px;padding:20px}.hito-participante-controles{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.hito-participante-controles>select,.hito-participante-controles>input,.hito-participante-controles>.usuario-buscador{flex:200px;min-width:0}.hito-participante-controles>button{flex:none}.hito-participante-controles input,.hito-participante-controles select{color:#374151;min-width:0;font:inherit;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:9px 10px;font-size:.8rem}.usuario-buscador{min-width:0;position:relative}.usuario-buscador input{width:100%}.usuario-resultados{z-index:2;background:#fff;border:1px solid #d1d5db;border-radius:6px;flex-direction:column;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden;box-shadow:0 6px 14px #0f172a1f}.usuario-resultados button{color:#374151;cursor:pointer;text-align:left;background:#fff;border:0;border-bottom:1px solid #f1f5f9;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 10px;display:flex}.usuario-resultados button:hover{background:#f0fdf4}.usuario-resultados small{color:#6b7280;font-size:.72rem}.participantes-lista{flex-direction:column;gap:6px;margin:14px 0 0;padding:0;list-style:none;display:flex}.participantes-lista li{color:#4b5563;background:#fff;border-radius:5px;justify-content:space-between;align-items:center;padding:8px 10px;font-size:.8rem;display:flex}.participantes-lista button{color:#991b1b;cursor:pointer;background:0 0;border:0;display:inline-flex}.participantes-lista svg{width:15px;height:15px}.patser-section-header{border-bottom:1px solid #bbf7d0;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:20px;display:flex}.patser-section-header h2{color:#14532d;margin:0 0 10px;font-size:1.1rem}.patser-section-header span{color:#166534;font-size:.8rem}.patser-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.patser-grid fieldset{border:0;flex-direction:column;gap:9px;min-width:0;margin:0;padding:0;display:flex}.patser-grid legend{color:#374151;margin-bottom:5px;font-size:.875rem;font-weight:700}.patser-grid label{color:#4b5563;font-size:.875rem}.patser-opcion{flex-direction:column;gap:6px;min-width:0;display:flex}.patser-opcion-fila{align-items:flex-start;gap:10px;display:flex}.patser-opcion-check{cursor:pointer;flex:1;align-items:flex-start;gap:7px;min-width:0;line-height:1.45;display:flex}.patser-opcion-check input[type=checkbox]{flex-shrink:0;margin-top:2px}.patser-opcion-etiqueta{color:#334155;flex-shrink:0;font-weight:700}.patser-opcion-texto{color:#64748b;min-width:0;font-size:.82rem;line-height:1.45}.patser-opcion-clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.patser-opcion-toggle{color:#0284c7;font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:.76rem;font-weight:600}.patser-opcion-toggle:hover{text-decoration:underline}.hito-archivo-actual{color:#374151;background:#f9fafb;border:1px dashed #d1d5db;border-radius:8px;align-items:center;gap:10px;margin:0;padding:10px 12px;font-size:.82rem;display:flex}.hito-archivo-actual a{color:#0284c7;font-weight:600}.hito-archivo-quitar{margin-left:auto;padding:6px 10px;font-size:.78rem}.proyectos-section .hito-buscador{color:#374151;width:100%;font:inherit;background:#fff;border:1px solid #d1d5db;border-radius:6px;margin-bottom:12px;padding:9px 10px;font-size:.85rem}.proyectos-asociados-lista{border-radius:6px;flex-direction:column;gap:4px;max-height:220px;padding:4px;display:flex;overflow-y:auto}.proyecto-asociado{color:#4b5563;cursor:pointer;border-radius:5px;align-items:center;gap:8px;padding:6px 8px;font-size:.85rem;display:flex}.proyecto-asociado:hover{background:#fff}.proyecto-asociado input{width:auto}.patser-opcion textarea{resize:vertical;width:100%;min-height:58px;font:inherit;border:1px solid #d1d5db;border-radius:6px;margin-top:6px;padding:8px}.hito-actions{justify-content:space-between;gap:12px;margin-top:8px;display:flex}.hito-button-inline,.hito-secondary{justify-content:center;align-items:center;gap:8px;width:auto;display:inline-flex}.hito-secondary{color:#4b5563;cursor:pointer;font:inherit;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:11px 16px;font-size:.875rem;font-weight:600}.hito-secondary svg,.hito-button-inline svg{width:16px;height:16px}.hito-header{text-align:center;margin-bottom:32px}.hito-logo{color:#fff;background-color:#10b981;border-radius:8px;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 16px;font-size:16px;font-weight:700;display:flex}.hito-title{color:#111827;margin:0 0 8px;font-size:1.5rem;font-weight:600}.hito-description{color:#6b7280;margin:0;font-size:.875rem;line-height:1.5}.hito-form{flex-direction:column;gap:20px;display:flex}.hito-form-group{flex-direction:column;gap:8px;min-width:0;display:flex}.hito-form-group label{color:#374151;font-size:.875rem;font-weight:600}.hito-form-group input,.hito-form-group select,.hito-form-group textarea{color:#374151;background-color:#fff;border:1px solid #d1d5db;border-radius:6px;outline:none;width:100%;padding:11px 12px;font-family:inherit;font-size:.875rem;transition:border-color .2s,box-shadow .2s}.hito-form-group textarea{resize:vertical;min-height:100px}.hito-form-group input::placeholder,.hito-form-group textarea::placeholder{color:#9ca3af}.hito-form-group input:focus,.hito-form-group select:focus,.hito-form-group textarea:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b9811f}.hito-date-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.hito-button{color:#fff;cursor:pointer;background-color:#10b981;border:1px solid #10b981;border-radius:6px;width:100%;padding:11px 16px;font-family:inherit;font-size:.875rem;font-weight:600;transition:background-color .2s,border-color .2s}.hito-button:hover:not(:disabled){background-color:#059669;border-color:#059669}.hito-button:disabled{opacity:.6;cursor:not-allowed}.hito-success{color:#166534;background-color:#dcfce7;border:1px solid #86efac;border-radius:8px;margin:12px 0;padding:12px 16px;font-weight:500}.hito-error{color:#991b1b;overflow-wrap:anywhere;background-color:#fee2e2;border:1px solid #fca5a5;border-radius:8px;margin:12px 0;padding:12px 16px}@media (width<=480px){.hito-card{padding:24px}.hito-date-grid{grid-template-columns:1fr}}@media (width<=700px){.hito-form-grid,.patser-grid{grid-template-columns:1fr}.hito-form-group-ancho{grid-column:auto}.patser-section-header{display:block}.hito-participante-controles>select,.hito-participante-controles>input,.hito-participante-controles>.usuario-buscador{flex:100%}}.semaforo{align-items:center;gap:8px;display:inline-flex}.semaforo-punto{border-radius:50%;flex-shrink:0;width:10px;height:10px}.semaforo-atrasado{background-color:#ef4444}.semaforo-proximo{background-color:#f59e0b}.semaforo-a_tiempo{background-color:#10b981}.semaforo-completado{background-color:#2563eb}.semaforo-etiqueta{color:#374151;font-size:.875rem;font-weight:500}.hitos-pagina{width:100%;margin:0 auto}.hitos-subtitulo{color:#4b5563;margin:-1.5rem 0 1.5rem;font-size:.875rem}.hitos-filtros{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.hitos-filtro{flex-direction:column;gap:6px;display:flex}.hitos-filtro label{color:#374151;font-size:.875rem;font-weight:600}.hitos-filtro input,.hitos-filtro select{color:#374151;background-color:#fff;border:1px solid #d1d5db;border-radius:6px;padding:8px 12px;font-size:.875rem}.hitos-filtros button{color:#374151;cursor:pointer;background-color:#f9fafb;border:1px solid #d1d5db;border-radius:6px;padding:8px 16px;font-family:inherit;font-size:.875rem;transition:background-color .2s}.hitos-filtros button:hover{background-color:#f3f4f6}.hitos-tablero{grid-template-columns:repeat(4,1fr);align-items:start;gap:20px;display:grid}@media (width<=1280px){.hitos-tablero{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.hitos-tablero{grid-template-columns:1fr}}.hitos-columna{border:1px solid;border-radius:12px;padding:16px}.columna-atrasado{background-color:#ef44440d;border-color:#ef444433}.columna-proximo{background-color:#f59e0b0d;border-color:#f59e0b33}.columna-a_tiempo{background-color:#10b9810d;border-color:#10b98133}.columna-completado{background-color:#2563eb0d;border-color:#2563eb33}.hitos-columna-encabezado{border-bottom:1px solid #0000000f;align-items:center;gap:8px;margin-bottom:14px;padding-bottom:10px;display:flex}.hitos-columna-encabezado h2{margin:0;font-size:.9375rem;font-weight:600}.hitos-columna-icono{width:18px;height:18px}.columna-atrasado .hitos-columna-encabezado h2,.columna-atrasado .hitos-columna-icono{color:#dc2626}.columna-proximo .hitos-columna-encabezado h2,.columna-proximo .hitos-columna-icono{color:#b45309}.columna-a_tiempo .hitos-columna-encabezado h2,.columna-a_tiempo .hitos-columna-icono{color:#059669}.columna-completado .hitos-columna-encabezado h2,.columna-completado .hitos-columna-icono{color:#2563eb}.hitos-contador{color:#fff;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:.75rem;font-weight:700}.columna-atrasado .hitos-contador{background-color:#ef4444}.columna-proximo .hitos-contador{background-color:#f59e0b}.columna-a_tiempo .hitos-contador{background-color:#10b981}.columna-completado .hitos-contador{background-color:#2563eb}.hitos-columna-tarjetas{flex-direction:column;gap:12px;display:flex}.hito-tarjeta{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:14px 16px;box-shadow:0 1px 3px #0000000d}.hito-tarjeta-encabezado{justify-content:space-between;align-items:flex-start;margin-bottom:8px;display:flex}.hito-proyecto{color:#4b5563;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.hito-nombre{color:#111827;margin:0 0 4px;font-size:.875rem;font-weight:600}.hito-responsable{color:#4b5563;margin:0 0 10px;font-size:.75rem}.hito-estado-linea{margin:0;font-size:.75rem;font-weight:700}.linea-atrasado{color:#dc2626}.linea-proximo{color:#b45309}.linea-a_tiempo{color:#4b5563;font-weight:500}.linea-completado{color:#2563eb;font-weight:500}.hitos-vacio{color:#9ca3af;text-align:center;margin:8px 0;font-size:.8125rem}.admin-page-container{box-sizing:border-box;max-width:900px;margin:0 auto;padding:10px 0 40px}.admin-header{margin-bottom:24px}.admin-title{color:#0f172a;letter-spacing:-.5px;margin:0 0 6px;font-size:28px;font-weight:700}.admin-subtitle{color:#64748b;margin:0;font-size:15px}.admin-card{box-sizing:border-box;background-color:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:28px;box-shadow:0 1px 3px #0000000a,0 1px 2px #00000005}.admin-card-header{border-bottom:1px solid #f1f5f9;align-items:center;gap:10px;margin-bottom:22px;padding-bottom:18px;display:flex}.admin-card-header-icon{color:#64748b}.admin-card-title{color:#1e293b;margin:0;font-size:18px;font-weight:700}.admin-item{border-bottom:1px solid #f1f5f9;margin-bottom:24px;padding-bottom:24px}.admin-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.admin-item-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.admin-item-info{flex:1}.admin-item-title-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.admin-item-icon{color:#1e293b;flex-shrink:0}.admin-item-name{color:#1e293b;margin:0;font-size:16px;font-weight:600}.admin-item-description{color:#64748b;margin:0 0 10px;font-size:14px;line-height:1.45}.admin-status-line{color:#64748b;align-items:center;gap:8px;font-size:13px;display:flex}.admin-status-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.admin-status-dot.active{background-color:#10b981}.admin-status-dot.pending{background-color:#f59e0b}.admin-status-text{font-weight:500}.admin-square-btn{color:#475569;cursor:pointer;background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;transition:all .2s;display:flex}.admin-square-btn:hover:not(:disabled){color:#0f172a;background-color:#f8fafc;border-color:#cbd5e1}.admin-square-btn:disabled{opacity:.6;cursor:not-allowed}.admin-spin{animation:1s linear infinite admin-spin-kf}@keyframes admin-spin-kf{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.admin-input-row{align-items:center;gap:12px;margin-top:14px;display:flex}.admin-input-wrapper{flex:1;align-items:center;display:flex;position:relative}.admin-input-icon{color:#94a3b8;pointer-events:none;position:absolute;left:12px}.admin-input{color:#1e293b;box-sizing:border-box;background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;width:100%;height:42px;padding:0 14px 0 38px;font-size:14px;transition:border-color .2s,box-shadow .2s}.admin-input:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f61a}.admin-select{color:#1e293b;box-sizing:border-box;cursor:pointer;background-color:#fff;border:1px solid #e2e8f0;border-radius:8px;max-width:220px;height:42px;padding:0 12px;font-size:13.5px;transition:border-color .2s,box-shadow .2s}.admin-select:focus{border-color:#3b82f6;outline:none;box-shadow:0 0 0 3px #3b82f61a}.admin-sync-btn{color:#fff;cursor:pointer;white-space:nowrap;background-color:#64748b;border:none;border-radius:8px;justify-content:center;align-items:center;min-width:120px;height:42px;padding:0 22px;font-size:14px;font-weight:600;transition:background-color .2s,opacity .2s;display:flex}.admin-sync-btn:hover:not(:disabled),.admin-sync-btn.synced{background-color:#475569}.admin-sync-btn:disabled{opacity:.6;cursor:not-allowed}.admin-banner{box-sizing:border-box;border-radius:8px;align-items:center;gap:8px;margin-top:12px;padding:10px 14px;font-size:13.5px;font-weight:500;display:flex}.admin-banner.success{color:#047857;background-color:#ecfdf5;border:1px solid #a7f3d0}.admin-banner.warning{color:#b45309;background-color:#fffbeb;border:1px solid #fde68a}.admin-banner.error{color:#b91c1c;background-color:#fef2f2;border:1px solid #fecaca}.dashboard{--d-fondo:#f8fafc;--d-card:#fff;--d-borde:#e2e8f0;--d-texto:#0f172a;--d-texto-suave:#64748b;--d-muted:#f1f5f9;--d-ok:#10b981;--d-alerta:#f59e0b;--d-error:#ef4444;max-width:80rem;color:var(--d-texto);flex-direction:column;gap:16px;margin:0 auto;display:flex}.dashboard-encabezado{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 24px;display:flex}.dashboard-titulo .page-title{margin-bottom:.25rem;font-size:1.65rem}.dashboard-titulo .hitos-subtitulo{margin:0;font-size:.8125rem}.dashboard-filtros{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 12px;display:flex}.dashboard-filtros .filtro{flex-direction:row;align-items:center;gap:6px}.dashboard-filtros .filtro label{white-space:nowrap;font-size:.75rem}.dashboard-filtros .filtro select{min-width:135px;max-width:190px;padding:6px 8px;font-size:.8125rem}.dashboard-filtros-acciones{align-items:center;gap:6px;display:flex}.dashboard-filtros-acciones button{color:#374151;cursor:pointer;box-sizing:border-box;background-color:#fff;border:1px solid #d1d5db;border-radius:6px;padding:6px 10px;font-family:inherit;font-size:.75rem;transition:background-color .2s}.dashboard-filtros-acciones button:hover{background-color:#f3f4f6}.dashboard-filtros-acciones button:disabled{cursor:not-allowed;opacity:.65}.dashboard-kpis{grid-template-columns:repeat(6,1fr);gap:12px;display:grid}.dash-kpi-grande{grid-column:span 2;display:flex}.dash-kpi-grande .dash-kpi-card{flex:1}.dash-kpi-card{background:var(--d-card);border:1px solid var(--d-borde);border-radius:12px;padding:14px 16px;box-shadow:0 1px 2px #0000000d}.dash-kpi-card-link{color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:block}.dash-kpi-card-link:hover{border-color:#94a3b8;transform:translateY(-1px);box-shadow:0 4px 12px #0f172a1a}.dash-kpi-card-link:focus-visible{outline:2px solid var(--d-texto);outline-offset:2px}.dash-kpi-titulo{text-transform:uppercase;letter-spacing:.05em;color:var(--d-texto-suave);align-items:center;gap:6px;margin-bottom:8px;font-size:.75rem;font-weight:500;display:flex}.dash-kpi-fila{align-items:flex-end;gap:12px;display:flex}.dash-kpi-valor{font-size:1.5rem;font-weight:700;line-height:1.8rem}.dash-kpi-detalle{color:var(--d-texto-suave);margin:4px 0 0;font-size:.7rem}.dash-kpi-estado{align-items:center;gap:6px;margin-bottom:4px;font-size:.75rem;font-weight:500;display:inline-flex}.dash-kpi-estado-punto{border-radius:50%;flex-shrink:0;width:10px;height:10px}.dash-kpi-estado-ok .dash-kpi-estado-punto{background:var(--d-ok)}.dash-kpi-estado-alerta .dash-kpi-estado-punto{background:var(--d-alerta)}.dash-kpi-estado-error .dash-kpi-estado-punto{background:var(--d-error)}.dash-kpi-barra-fondo{background:var(--d-muted);border-radius:999px;width:100%;height:6px;margin-top:8px;overflow:hidden}.dash-kpi-barra-relleno{background:var(--d-texto);border-radius:999px;height:100%}.dash-cartera-barra{background:var(--d-muted);border-radius:999px;width:100%;height:8px;margin-top:8px;display:flex;overflow:hidden}.dash-cartera-segmento{height:100%;transition:width .2s}.dash-cartera-leyenda{color:var(--d-texto-suave);flex-wrap:wrap;gap:4px 12px;margin-top:6px;font-size:.7rem;font-weight:500;display:flex}.dash-cartera-item{align-items:center;gap:6px;display:inline-flex}.dash-cartera-punto{border-radius:2px;flex-shrink:0;width:10px;height:10px}.dashboard-graficos{grid-template-columns:minmax(0,2fr) minmax(300px,1fr);grid-template-areas:"presupuesto publicaciones""presupuesto hitos";align-items:stretch;gap:16px;display:grid}.dash-grafico-card{background:var(--d-card);border:1px solid var(--d-borde);border-radius:12px;flex-direction:column;min-width:0;padding:16px;display:flex;box-shadow:0 1px 2px #0000000d}.dash-grafico-card-presupuesto{grid-area:presupuesto}.dash-grafico-card-publicaciones{grid-area:publicaciones}.dash-grafico-card-hitos{grid-area:hitos}.dash-grafico-titulo{margin:0;font-size:.9375rem;font-weight:600}.dash-grafico-encabezado{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.dash-grafico-enlace{color:var(--d-texto-suave);flex-shrink:0;font-size:.75rem;font-weight:600;text-decoration:none}.dash-grafico-enlace:hover{color:var(--d-texto);text-decoration:underline}.dash-grafico-enlace:focus-visible{outline:2px solid var(--d-texto);outline-offset:3px;border-radius:3px}.dash-barra-clickable{cursor:pointer}.dash-grafico-subtitulo{color:var(--d-texto-suave);margin:-6px 0 8px;font-size:.7rem}.dash-grafico-cuerpo{height:190px}.dash-grafico-cuerpo-scroll{scrollbar-gutter:stable;flex:auto;min-height:220px;max-height:340px;padding-right:6px;overflow:hidden auto}.dash-grafico-vacio{text-align:center;height:100%;color:var(--d-texto-suave);justify-content:center;align-items:center;margin:0;padding:0 16px;font-size:.875rem;display:flex}.dash-presupuesto-leyenda{color:var(--d-texto-suave);flex-wrap:wrap;gap:4px 16px;margin-bottom:8px;font-size:.7rem;font-weight:500;display:flex}.dash-presupuesto-leyenda-item{align-items:center;gap:6px;display:inline-flex}.dash-presupuesto-leyenda-color{border-radius:2px;flex-shrink:0;width:10px;height:10px}.dash-presupuesto-leyenda-color-presupuesto{background:#cbd5e1}.dash-presupuesto-leyenda-color-ejecutado{background:#0f172a}.dash-presupuesto-detalle{background:var(--d-muted);border:1px solid var(--d-borde);border-radius:8px;min-height:48px;margin-top:8px;padding:9px 12px}.dash-presupuesto-detalle-vacio{visibility:hidden}.dash-presupuesto-detalle-titulo{margin:0 0 4px;font-size:.75rem;font-weight:600}.dash-presupuesto-detalle-datos{color:var(--d-texto-suave);flex-wrap:wrap;gap:4px 16px;font-size:.7rem;display:flex}.dash-presupuesto-detalle-datos strong{color:var(--d-texto);font-variant-numeric:tabular-nums;font-weight:600}.dash-leyenda{flex-wrap:wrap;justify-content:center;gap:16px;margin-top:8px;display:flex}.dash-leyenda-item{align-items:center;gap:6px;font-size:.75rem;font-weight:500;display:flex}.dash-leyenda-punto{border-radius:2px;width:12px;height:12px}@media (width<=1279px){.dashboard-kpis{grid-template-columns:repeat(3,1fr)}}@media (width<=1024px){.dashboard-kpis{grid-template-columns:repeat(2,1fr)}.dash-kpi-grande{grid-column:span 1}.dashboard-graficos{grid-template-columns:1fr;grid-template-areas:"presupuesto""publicaciones""hitos"}.dashboard-filtros{justify-content:flex-start}}@media (width<=640px){.dashboard-kpis{grid-template-columns:1fr}.dashboard-encabezado{align-items:flex-start}.dashboard-filtros{width:100%}.dashboard-filtros .filtro{flex-direction:column;flex:100%;align-items:flex-start}.dashboard-filtros .filtro select{width:100%;max-width:none}.dashboard-filtros-acciones{width:100%}.dashboard-filtros-acciones button{flex:1}}.sidebar{background-color:#f9fafb;border-right:1px solid #e5e7eb;flex-direction:column;flex-shrink:0;width:250px;height:100vh;font-family:system-ui,-apple-system,sans-serif;display:flex}.sidebar-header{border-bottom:1px solid #e5e7eb;align-items:center;height:64px;padding:0 24px;display:flex}.sidebar-title{letter-spacing:-.025em;color:#111827;font-size:1.125rem;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:4px;padding:24px 16px;display:flex;overflow-y:auto}.sidebar-link{color:#4b5563;border-radius:6px;align-items:center;gap:12px;padding:8px 12px;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.sidebar-link:hover{color:#111827;background-color:#f3f4f6}.sidebar-link.active{color:#fff;background-color:#2563eb}.sidebar-icon{width:16px;height:16px}.sidebar-logout{cursor:pointer;text-align:left;background:0 0;border:none;width:100%;font-family:inherit}.sidebar-logout:hover{color:#111827;background-color:#f3f4f6}.sidebar-footer{border-top:1px solid #e5e7eb;padding:16px}.sidebar-user{border-bottom:1px solid #e5e7eb;align-items:center;gap:12px;padding:16px;display:flex}.sidebar-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:42px;height:42px}.sidebar-avatar-placeholder{color:#374151;background-color:#e5e7eb;justify-content:center;align-items:center;font-weight:600;display:flex}.sidebar-user-info{flex-direction:column;gap:2px;min-width:0;display:flex}.sidebar-user-name{color:#111827;white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:600;overflow:hidden}.sidebar-user-email{color:#6b7280;white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.sidebar-user-role{color:#2563eb;font-size:.7rem;font-weight:500}.app-error-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a8c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.app-error-card{background:#fff;border-radius:18px;width:100%;max-width:560px;max-height:90vh;padding:24px;overflow-y:auto;box-shadow:0 24px 60px #0f172a47}.app-error-header{align-items:flex-start;gap:14px;display:flex}.app-error-icon{color:#b91c1c;background:#fee2e2;border-radius:12px;flex:none;place-items:center;width:44px;height:44px;display:grid}.app-error-icon svg{width:24px;height:24px}.app-error-heading{flex:1;min-width:0}.app-error-kicker{letter-spacing:.08em;text-transform:uppercase;color:#b91c1c;margin:0 0 2px;font-size:.75rem;font-weight:700}.app-error-title{color:#0f172a;margin:0;font-size:1.25rem;line-height:1.3}.app-error-count{color:#64748b;margin:6px 0 0;font-size:.82rem}.app-error-close{color:#475569;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;width:34px;height:34px;display:grid}.app-error-close:hover{color:#0f172a;background:#f1f5f9}.app-error-close svg{width:20px;height:20px}.app-error-message{color:#334155;margin:18px 0 0;line-height:1.55}.app-error-details,.app-error-stack{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin-top:16px;padding:12px 14px}.app-error-details summary,.app-error-stack summary{cursor:pointer;color:#1e293b;font-weight:600}.app-error-details ul{color:#475569;margin:10px 0 0;padding-left:18px;font-size:.9rem;line-height:1.6}.app-error-details li+li{margin-top:6px}.app-error-stack pre{white-space:pre-wrap;word-break:break-word;color:#334155;max-height:220px;margin:10px 0 0;font-size:.78rem;overflow:auto}.app-error-meta{color:#64748b;margin:16px 0 0;font-size:.78rem}.app-error-meta code{background:#f1f5f9;border-radius:4px;padding:1px 5px;font-size:.78rem}.app-error-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.app-error-actions button{font:inherit;cursor:pointer;border-radius:9px;align-items:center;gap:7px;padding:10px 16px;font-weight:600;display:inline-flex}.app-error-actions button svg{width:16px;height:16px}.app-error-secondary{color:#334155;background:#fff;border:1px solid #cbd5e1}.app-error-secondary:hover{background:#f8fafc}.app-error-primary{color:#fff;background:#1d4ed8;border:1px solid #1d4ed8}.app-error-primary:hover{background:#1e40af}@media (width<=560px){.app-error-overlay{padding:12px}.app-error-card{padding:18px}.app-error-actions{flex-direction:column-reverse}.app-error-actions button{justify-content:center;width:100%}}.app-crash{background:#f8fafc;place-items:center;min-height:100vh;padding:24px;display:grid}.app-crash-card{text-align:center;background:#fff;border-radius:18px;width:100%;max-width:520px;padding:40px 28px;box-shadow:0 18px 48px #0f172a1f}.app-crash-icon{color:#b91c1c;background:#fee2e2;border-radius:16px;place-items:center;width:56px;height:56px;margin:0 auto 18px;display:grid}.app-crash-icon svg{width:30px;height:30px}.app-crash-card h1{color:#0f172a;margin:0;font-size:1.4rem}.app-crash-card p{color:#475569;margin:12px 0 24px;line-height:1.6}.app-crash-card button{color:#fff;font:inherit;cursor:pointer;background:#1d4ed8;border:1px solid #1d4ed8;border-radius:9px;justify-content:center;align-items:center;gap:8px;padding:11px 18px;font-weight:600;display:inline-flex}.app-crash-card button:hover{background:#1e40af}.app-crash-card button svg{width:17px;height:17px}
