@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg-primary:#f8fafc;--bg-secondary:#f1f5f9;--bg-card:#fff;--bg-card-hover:#f8fafc;--border:#e2e8f0;--border-light:#cbd5e1;--accent:#2563eb;--accent-light:#3b82f6;--accent-dark:#1d4ed8;--accent-glow:#2563eb12;--green:#16a34a;--green-bg:#16a34a14;--yellow:#b45309;--yellow-bg:#b4530914;--red:#dc2626;--red-bg:#dc262614;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--shadow-sm:0 1px 3px #00000012, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000012;--shadow-lg:0 8px 24px #00000014;--shadow-accent:0 4px 14px #2563eb2e}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}#root{flex-direction:column;min-height:100vh;display:flex}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}h1{letter-spacing:-.3px;font-size:clamp(1.4rem,3.5vw,2rem);font-weight:700}h2{font-size:1.25rem;font-weight:600}h3{font-size:1rem;font-weight:600}h4{font-size:.9rem;font-weight:600}.container{max-width:1200px;margin:0 auto;padding:0 24px}.page{flex:1;padding:36px 0 72px}.btn{border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:7px;padding:9px 18px;font-family:Inter,sans-serif;font-size:14px;font-weight:500;line-height:1;text-decoration:none;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-dark);box-shadow:0 6px 20px #2563eb47}.btn-secondary{background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-light)}.btn-ghost{color:var(--text-secondary);background:0 0;border:1px solid #0000}.btn-ghost:hover:not(:disabled){background:var(--bg-secondary);color:var(--text-primary)}.btn-danger{background:var(--red-bg);color:var(--red);border:1px solid #dc262633}.btn-danger:hover:not(:disabled){background:#dc262624}.btn-sm{padding:6px 12px;font-size:13px}.btn-lg{border-radius:var(--radius-lg);padding:11px 24px;font-size:15px}.btn-icon{border-radius:var(--radius-sm);padding:7px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px}.badge{letter-spacing:.2px;border-radius:20px;align-items:center;gap:4px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-flex}.badge-green{background:var(--green-bg);color:var(--green)}.badge-yellow{background:var(--yellow-bg);color:var(--yellow)}.badge-red{background:var(--red-bg);color:var(--red)}.badge-blue{background:var(--accent-glow);color:var(--accent)}.form-group{flex-direction:column;gap:5px;display:flex}.form-label{color:var(--text-secondary);font-size:13px;font-weight:500}.form-label span{color:var(--red);margin-left:2px}.form-input,.form-select,.form-textarea{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);outline:none;width:100%;padding:9px 13px;font-family:Inter,sans-serif;font-size:14px;transition:border-color .15s,box-shadow .15s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1a}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-textarea{resize:vertical;min-height:80px}.form-hint{color:var(--text-muted);font-size:12px}.progress-bar{background:var(--bg-secondary);border-radius:3px;height:5px;overflow:hidden}.progress-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .4s}.divider{background:var(--border);height:1px;margin:24px 0}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=768px){.grid-2,.grid-3{grid-template-columns:1fr}}.alert{border-radius:var(--radius-md);align-items:flex-start;gap:9px;padding:12px 16px;font-size:13.5px;display:flex}.alert-success{background:var(--green-bg);color:#15803d;border:1px solid #16a34a33}.alert-warning{background:var(--yellow-bg);color:var(--yellow);border:1px solid #b4530933}.alert-error{background:var(--red-bg);color:#b91c1c;border:1px solid #dc262633}.alert-info{background:var(--accent-glow);color:var(--accent-dark);border:1px solid #2563eb33}.spinner{border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.75s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-center{justify-content:center;align-items:center;padding:60px;display:flex}.section-header{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:10px;margin-bottom:18px;padding:10px 14px;display:flex}.section-number{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:700;display:flex}.section-title{color:var(--text-primary);font-size:14px;font-weight:600}.table-wrapper{border-radius:var(--radius-md);border:1px solid var(--border);overflow-x:auto}table{border-collapse:collapse;width:100%}thead{background:var(--bg-secondary)}th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--border);padding:9px 13px;font-size:11px;font-weight:600}td{color:var(--text-secondary);border-bottom:1px solid var(--border);vertical-align:middle;padding:11px 13px;font-size:13px}tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--bg-primary)}.tabs{background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border);gap:2px;padding:3px;display:flex}.tab{border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);background:0 0;border:none;flex:1;padding:7px 14px;font-family:Inter,sans-serif;font-size:13px;font-weight:500;transition:all .15s}.tab.active{background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-sm)}.tab:hover:not(.active){color:var(--text-secondary)}.signature-wrapper{border:1.5px dashed var(--border-light);border-radius:var(--radius-lg);background:#fff;transition:border-color .15s;position:relative;overflow:hidden}.signature-wrapper:hover,.signature-wrapper.active{border-color:var(--accent)}.signature-wrapper canvas{touch-action:none;cursor:crosshair;display:block}.signature-hint{color:var(--text-muted);pointer-events:none;text-align:center;font-size:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.empty-state{text-align:center;color:var(--text-muted);padding:56px 20px}.empty-state .icon{opacity:.4;margin-bottom:14px;font-size:40px}.empty-state h3{color:var(--text-secondary);margin-bottom:8px;font-size:1rem}.empty-state p{font-size:14px}.navbar{z-index:100;border-bottom:1px solid var(--border);background:#fff;padding:0 24px;position:sticky;top:0;box-shadow:0 1px 3px #0000000f}.navbar-inner{justify-content:space-between;align-items:center;height:58px;display:flex}.navbar-brand{color:inherit;align-items:center;gap:10px;text-decoration:none;display:flex}.navbar-logo{background:var(--accent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.navbar-logo-text{color:#fff;letter-spacing:-.5px;font-size:13px;font-weight:700}.navbar-title{color:var(--text-primary);font-size:14px;font-weight:600;line-height:1;display:block}.navbar-sub{color:var(--text-muted);margin-top:2px;font-size:11px;display:block}.navbar-links{align-items:center;gap:8px;display:flex}.navbar-link{color:var(--text-secondary);border-radius:var(--radius-sm);padding:6px 11px;font-size:14px;font-weight:500;text-decoration:none;transition:all .15s}.navbar-link:hover,.navbar-link.active{color:var(--text-primary);background:var(--bg-secondary)}.dashboard-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.dashboard-title{color:var(--text-primary);margin-bottom:4px}.dashboard-subtitle{color:var(--text-muted);font-size:14px}.stats-row{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:28px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:18px 22px}.stat-number{color:var(--text-primary);font-size:1.75rem;font-weight:700;line-height:1}.stat-label{color:var(--text-muted);margin-top:4px;font-size:12px}.dashboard-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.filtros-row{flex-wrap:wrap;gap:8px;display:flex}.proyectos-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.proyecto-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);color:inherit;box-shadow:var(--shadow-sm);padding:20px;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:block}.proyecto-card:hover{border-color:var(--accent);box-shadow:var(--shadow-accent);transform:translateY(-1px)}.proyecto-card-top{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.proyecto-card-codigo{color:var(--accent);background:var(--accent-glow);letter-spacing:.3px;border-radius:20px;padding:2px 9px;font-size:11px;font-weight:600}.proyecto-card-nombre{color:var(--text-primary);margin-bottom:10px;font-size:15px;font-weight:600;line-height:1.35}.proyecto-card-meta{color:var(--text-muted);flex-wrap:wrap;gap:16px;margin-bottom:5px;font-size:12px;display:flex}.proyecto-card-firmas{margin-top:16px}.firmas-label{color:var(--text-muted);justify-content:space-between;margin-bottom:6px;font-size:12px;display:flex}.firmas-count{color:var(--text-secondary);font-weight:600}@media (width<=768px){.dashboard-header{flex-direction:column}.stats-row{grid-template-columns:1fr 1fr}.dashboard-controls{flex-direction:column;align-items:stretch}}.ua-wrapper{position:relative}.ua-dropdown{z-index:200;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-height:240px;margin:0;padding:4px 0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.ua-item{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:9px 14px;transition:background .1s;display:flex}.ua-item:hover{background:var(--accent-glow)}.ua-nombre{color:var(--text-primary);white-space:nowrap;font-size:13px;font-weight:500}.ua-email{color:var(--text-muted);white-space:nowrap;font-size:12px}.nuevo-header{align-items:flex-start;gap:16px;margin-bottom:32px;display:flex}.nuevo-header h1{font-size:1.75rem}.nuevo-actions{justify-content:flex-end;gap:12px;padding-top:8px;display:flex}.tabla-dinamica{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.tabla-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;grid-template-columns:1fr 1fr 36px;gap:8px;padding:0 4px;font-size:11px;font-weight:600;display:grid}.tabla-row{grid-template-columns:1fr 1fr 36px;align-items:center;gap:8px;display:grid}.condiciones-group{flex-direction:column;gap:8px;display:flex}.condicion-option{border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;color:var(--text-secondary);align-items:center;gap:12px;padding:14px 16px;font-size:14px;transition:all .2s;display:flex}.condicion-option.selected{border-color:var(--accent);background:var(--accent-glow);color:var(--text-primary)}.condicion-option input{accent-color:var(--accent)}.validacion-list{flex-direction:column;gap:8px;margin-bottom:8px;display:flex}.validacion-row{background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border);align-items:center;gap:12px;padding:10px 12px;display:flex}.validacion-criterio{color:var(--text-secondary);flex:2;font-size:13px}.validacion-checks{gap:6px;display:flex}.check-option{border:1px solid var(--border);cursor:pointer;color:var(--text-muted);white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:600;transition:all .15s;display:flex}.check-option input{display:none}.check-option.active{border-color:var(--accent);background:var(--accent-glow);color:var(--accent-light)}.cumple-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-muted);text-align:center;justify-content:center;align-items:center;padding:8px;font-size:12px;font-weight:600;transition:all .2s;display:flex}.cumple-toggle input{display:none}.cumple-toggle:has(input:checked){border-color:var(--green);background:var(--green-bg);color:var(--green)}.riesgo-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:12px;padding:16px}.riesgo-card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.riesgo-num{color:var(--accent-light);background:var(--accent-glow);border-radius:20px;padding:2px 10px;font-size:12px;font-weight:700}.upload-zone{border:1.5px dashed var(--border-light);border-radius:var(--radius-lg);text-align:center;cursor:pointer;background:var(--bg-card);box-shadow:var(--shadow-sm);flex-direction:column;align-items:center;gap:8px;padding:64px 32px;transition:all .15s;display:flex}.upload-zone:hover,.upload-zone.dragging{border-color:var(--accent);background:var(--accent-glow)}.upload-zone.parsing{cursor:default;border-style:solid}.upload-icon{opacity:.7;margin-bottom:8px;font-size:44px}.upload-title{color:var(--text-primary);font-size:17px;font-weight:600}.upload-sub{color:var(--text-muted);font-size:14px}.upload-hint{color:var(--text-muted);border:1px solid var(--border);border-radius:20px;margin-top:8px;padding:4px 12px;font-size:12px}.upload-spinner{border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;margin-bottom:12px;animation:.75s linear infinite spin}.condicion-extraida{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:10px;margin-top:16px;padding:12px 14px;display:flex}.condicion-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;font-size:12px}.condicion-value{color:var(--text-primary);font-size:13px;font-weight:600}.firmantes-revision{flex-direction:column;gap:10px;display:flex}.firmante-revision-row{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:16px;padding:14px 16px;display:flex}.firmante-info{min-width:220px}.firmante-nombre{color:var(--text-primary);font-size:14px;font-weight:600}.firmante-rol{color:var(--text-muted);margin-top:2px;font-size:12px}.firmante-row{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);align-items:flex-start;gap:12px;margin-bottom:10px;padding:16px;display:flex}.firmante-num{background:var(--accent-glow);width:28px;height:28px;color:var(--accent-light);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:26px;font-size:12px;font-weight:700;display:flex}.proyecto-header{flex-direction:column;gap:12px;margin-bottom:24px;display:flex}.proyecto-header-main{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.proyecto-codigo-badge{color:var(--accent-light);background:var(--accent-glow);border-radius:20px;padding:4px 14px;font-size:12px;font-weight:700;display:inline-block}.proyecto-meta-row{color:var(--text-muted);flex-wrap:wrap;gap:20px;margin-top:8px;font-size:13px;display:flex}.proyecto-actions{flex-shrink:0;gap:10px;display:flex}.progress-overview{justify-content:space-between;align-items:center;display:flex}.progress-label{color:var(--text-muted);margin-bottom:4px;font-size:13px}.progress-counts{color:var(--text-primary);font-size:22px;font-weight:800}.condicion-banner{border-radius:var(--radius-md);border:1px solid;margin-bottom:24px;padding:12px 18px;font-size:14px}.info-grid{flex-direction:column;gap:10px;display:flex}.info-item{justify-content:space-between;align-items:center;display:flex}.info-label{color:var(--text-muted);font-size:12px}.info-value{color:var(--text-primary);font-size:13px;font-weight:500}.resumen-item{border-bottom:1px solid var(--border);align-items:flex-start;gap:14px;padding:14px 0;display:flex}.resumen-item:last-child{border-bottom:none}.resumen-num{background:var(--accent-glow);width:26px;height:26px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:12px;font-weight:700;display:flex}.resumen-body{flex:1}.resumen-objetivo{color:var(--text-primary);margin-bottom:4px;font-size:13px;font-weight:600}.resumen-resultado{color:var(--text-secondary);font-size:13px;line-height:1.5}.agregar-firmante-form{padding:4px 0}.grid-3{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}@media (width<=640px){.grid-3{grid-template-columns:1fr}}.alert-success{background:var(--green-bg);color:var(--green);border-radius:var(--radius-md);border:1px solid #16a34a33;padding:10px 14px;font-size:13px}.firma-preview{object-fit:contain;background:#fff;border-radius:6px;max-width:120px;max-height:50px;margin:0 auto;padding:4px;display:block}.firmar-screen{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.firmar-message-card{text-align:center;background:var(--bg-card);border-radius:var(--radius-xl);border:1px solid var(--border);width:100%;max-width:440px;box-shadow:var(--shadow-md);padding:44px 36px}.firmar-status-icon{border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 20px;font-size:22px;display:flex}.firmar-status-icon.success{background:var(--green-bg)}.firmar-status-icon.error{background:var(--red-bg)}.firmar-status-icon.used{background:var(--yellow-bg)}.firmar-message-card h2{color:var(--text-primary);margin-bottom:10px;font-size:1.3rem}.firmar-message-card p{color:var(--text-secondary);font-size:14px;line-height:1.6}.firmar-badge{background:var(--green-bg);color:var(--green);border:1px solid #16a34a33;border-radius:20px;margin-top:16px;padding:7px 18px;font-size:13px;font-weight:500;display:inline-block}.firmar-page{background:var(--bg-primary);min-height:100vh}.firmar-navbar{border-bottom:1px solid var(--border);z-index:100;background:#fff;justify-content:space-between;align-items:center;height:58px;padding:0 24px;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #0000000f}.firmar-brand{align-items:center;gap:10px;display:flex}.firmar-logo-box{background:var(--accent);color:#fff;letter-spacing:-.5px;border-radius:7px;justify-content:center;align-items:center;width:32px;height:32px;font-size:11px;font-weight:700;display:flex}.firmar-brand-title{color:var(--text-primary);font-size:14px;font-weight:600;line-height:1;display:block}.firmar-brand-sub{color:var(--text-muted);margin-top:2px;font-size:11px;display:block}.firmar-persona{text-align:right}.firmar-persona-nombre{color:var(--text-primary);font-size:13px;font-weight:600}.firmar-persona-rol{color:var(--text-muted);font-size:11px}.firmar-content{max-width:760px;margin:0 auto;padding:32px 24px 64px}.firmar-proyecto-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:20px;padding:24px}.firmar-proyecto-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.firmar-proyecto-codigo{color:var(--accent);background:var(--accent-glow);letter-spacing:.3px;border-radius:20px;margin-bottom:7px;padding:2px 10px;font-size:11px;font-weight:600;display:inline-block}.firmar-proyecto-nombre{color:var(--text-primary);font-size:1.2rem;font-weight:700}.firmar-proyecto-meta{flex-wrap:wrap;gap:20px;display:flex}.firmar-proyecto-meta>div{flex-direction:column;gap:2px;display:flex}.firmar-proyecto-meta span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;font-size:10px}.firmar-proyecto-meta strong{color:var(--text-secondary);font-size:13px;font-weight:600}.firmar-condicion{color:var(--yellow);background:var(--yellow-bg);border-radius:var(--radius-sm);border:1px solid #b4530926;padding:7px 13px;font-size:12.5px;font-weight:500;display:inline-block}.firmar-section{margin-bottom:20px}.firmar-section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;font-size:12px;font-weight:600}.firmar-resumen-list{flex-direction:column;gap:0;display:flex}.firmar-resumen-item{border-bottom:1px solid var(--border);align-items:flex-start;gap:14px;padding:14px 0;display:flex}.firmar-resumen-item:last-child{border-bottom:none}.firmar-resumen-num{background:var(--accent-glow);width:26px;height:26px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:12px;font-weight:700;display:flex}.firmar-resumen-body{flex:1}.firmar-resumen-objetivo{color:var(--text-primary);margin-bottom:4px;font-size:13px;font-weight:600}.firmar-resumen-resultado{color:var(--text-secondary);font-size:13px;line-height:1.5}.firmar-pad-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-top:8px;padding:24px}.firmar-pad-header{justify-content:space-between;align-items:flex-start;margin-bottom:14px;display:flex}.firmar-pad-header h3{color:var(--text-primary);margin-bottom:3px}.firmar-pad-header p{color:var(--text-muted);max-width:440px;font-size:13px}.firmar-confirm-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;display:flex}.firmar-fecha-preview{color:var(--text-muted);font-size:13px}.firmar-fecha-preview strong{color:var(--text-secondary)}.firmar-modo-tabs{gap:8px;margin-bottom:16px;display:flex}.firmar-modo-tab{border-radius:var(--radius-md);cursor:pointer;border:1.5px solid var(--border);background:var(--bg-card);color:var(--text-secondary);flex:1;padding:10px 16px;font-family:Inter,sans-serif;font-size:14px;font-weight:500;transition:all .15s}.firmar-modo-tab.active{border-color:var(--accent);background:var(--accent-glow);color:var(--accent)}.firmar-modo-tab.rechazo.active{border-color:var(--red);background:var(--red-bg);color:var(--red)}.firmar-comentarios{margin-top:16px}.firmar-rechazo-section{border-color:#dc262633}@media (width<=640px){.firmar-confirm-row{flex-direction:column;align-items:stretch}.firmar-confirm-row .btn{justify-content:center;width:100%}.firmar-modo-tabs{flex-direction:column}}.login-scene{--pointer-x:50%;--pointer-y:50%;isolation:isolate;background:#041522;place-items:center;min-height:100vh;padding:24px;display:grid;position:relative;overflow:hidden}.login-scene:before{content:"";z-index:-3;background:radial-gradient(circle at var(--pointer-x) var(--pointer-y), #5ce5df45, transparent 19%), radial-gradient(ellipse at 17% 106%, #174f69 0, transparent 37%), radial-gradient(ellipse at 86% -12%, #152f63 0, transparent 39%), #041522;transition:background .15s ease-out;position:absolute;inset:0}.login-scene:after{content:"";z-index:-2;filter:blur(18px);background:radial-gradient(#34e7d433,#3f7fff14 42%,#0000 69%);border-radius:50%;width:78vw;height:36vw;min-height:320px;animation:8s ease-in-out infinite aurora-breathe;position:absolute;bottom:-24vw;left:50%;transform:translate(-50%)}.particle-field{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.particle-field:before{content:"";opacity:.34;background-image:linear-gradient(#75edef14 1px,#0000 1px),linear-gradient(90deg,#75edef14 1px,#0000 1px);background-size:68px 68px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 50% 48%,#000,#0000 76%);mask-image:radial-gradient(at 50% 48%,#000,#0000 76%)}.particle-field:after{content:"";filter:blur(1px);background:radial-gradient(circle at 12% 23%,#a6fffb2b 0 2px,#0000 19px),radial-gradient(circle at 87% 74%,#84aeff2b 0 3px,#0000 24px),radial-gradient(circle at 73% 17%,#dab2ff21 0 2px,#0000 20px);animation:13s ease-in-out infinite alternate bokeh-drift;position:absolute;inset:0}.particle{left:var(--x);top:var(--y);width:var(--size);height:var(--size);opacity:.7;box-shadow:0 0 calc(var(--size) * 3) calc(var(--size) * .4) #64edf1a6;animation:particle-float var(--duration) ease-in-out var(--delay) infinite alternate;background:#dfffff;border-radius:50%;position:absolute}.particle:nth-of-type(3n){background:#9ac9ff;box-shadow:0 0 11px 2px #7eaeff94}.particle:nth-of-type(5n){background:#b9f0cf;box-shadow:0 0 12px 3px #82ffc575}.particle-glow{aspect-ratio:1;width:44vw;left:var(--pointer-x);top:var(--pointer-y);background:radial-gradient(circle,#64f1f126,#0000 67%);border-radius:50%;transition:left .14s ease-out,top .14s ease-out;position:absolute;transform:translate(-50%,-50%)}.particle-wave{aspect-ratio:1;border:1px solid #75ebef2b;border-radius:48% 52% 45% 55%;width:68vw;animation:12s linear infinite particle-wave;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(15deg)}.wave-two{border-color:#7eb1ff29;width:46vw;animation-duration:15s;animation-direction:reverse;transform:translate(-50%,-50%)rotate(73deg)}.login-card{text-align:center;-webkit-backdrop-filter:blur(22px)saturate(1.2);backdrop-filter:blur(22px)saturate(1.2);background:linear-gradient(145deg,#fffffffa,#e7fbffde);border:1px solid #daffffc4;border-radius:27px;width:min(100%,382px);padding:45px 36px 40px;animation:.7s cubic-bezier(.16,1,.3,1) both card-arrive;position:relative;box-shadow:0 34px 100px #0006,0 0 0 7px #5fe1e70b,inset 0 1px #ffffffe6}.login-card:before{content:"";pointer-events:none;border:1px solid #1a89971a;border-radius:20px;position:absolute;inset:8px}.login-card:after{content:"";background:linear-gradient(90deg,#0000,#8cf5ee,#0000);width:48%;height:1px;position:absolute;top:-1px;left:26%;box-shadow:0 0 13px #6ae5e4}.login-logo{color:#fff;background:linear-gradient(145deg,#5adee0,#1a7890 72%);border-radius:20px;place-items:center;width:60px;height:60px;margin:0 auto 20px;font-size:15px;font-weight:700;animation:3.4s ease-in-out infinite logo-hover;display:grid;position:relative;box-shadow:0 14px 30px #18718461,inset 0 1px #ffffff61}.login-logo:after{content:"";border:1px solid #6ae6e58f;border-radius:25px;animation:3s ease-out infinite logo-pulse;position:absolute;inset:-8px}.login-logo span{z-index:1;position:relative}.login-card h2{color:var(--text-primary);letter-spacing:-.02em;margin-bottom:30px;font-size:1.3rem}.login-form{text-align:left;z-index:1;position:relative}.login-form .btn-primary{background:linear-gradient(100deg,#138e99,#286dbb);box-shadow:0 9px 22px #1b699d47}@keyframes particle-float{to{transform:translate(var(--drift), -32px) scale(1.35);opacity:.16}}@keyframes particle-wave{to{transform:translate(-50%,-50%)rotate(375deg)scale(1.08)}}@keyframes card-arrive{0%{opacity:0;transform:translateY(22px)scale(.97)}to{opacity:1;transform:none}}@keyframes logo-hover{50%{transform:translateY(-5px)}}@keyframes logo-pulse{70%,to{opacity:0;transform:scale(1.35)}}@keyframes aurora-breathe{50%{opacity:.63;transform:translate(-50%)scale(1.11,.94)}}@keyframes bokeh-drift{to{transform:translate(22px,-18px)scale(1.08)}}@media (width<=600px){.login-card{padding:38px 26px 33px}.particle-wave{width:125vw}.wave-two{width:84vw}.particle-field:before{background-size:48px 48px}}@media (prefers-reduced-motion:reduce){.particle,.particle-wave,.login-logo,.login-logo:after,.login-card,.login-scene:after,.particle-field:after{animation:none!important}.login-scene:before,.particle-glow{transition:none}}
