:root{--bg: #f6f7f9;--surface: #ffffff;--surface-2: #fafbfc;--border: #e1e4e8;--border-strong: #cfd4da;--ink: #16191d;--ink-2: #4a5158;--ink-3: #767e87;--brand: #1f6feb;--brand-ink: #ffffff;--brand-soft: #e8f0fe;--ok: #1a7f37;--ok-soft: #e6f4ea;--warn: #9a6700;--warn-soft: #fff8e1;--danger: #cf222e;--danger-soft: #ffebe9;--shadow: 0 1px 2px rgba(16, 22, 26, .06), 0 4px 12px rgba(16, 22, 26, .05);--radius: 10px;--radius-sm: 6px}@media(prefers-color-scheme:dark){:root{--bg: #0d1117;--surface: #161b22;--surface-2: #1b2129;--border: #2a313a;--border-strong: #3b434e;--ink: #e6edf3;--ink-2: #b3bcc6;--ink-3: #8b949e;--brand: #4493f8;--brand-ink: #06121f;--brand-soft: #132a45;--ok: #3fb950;--ok-soft: #10281a;--warn: #d29922;--warn-soft: #2b2413;--danger: #f85149;--danger-soft: #2d1615;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 6px 18px rgba(0, 0, 0, .3)}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14.5px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0 0 .5em;line-height:1.25;font-weight:650}h1{font-size:1.5rem}h2{font-size:1.2rem}h3{font-size:1.02rem}p{margin:0 0 .85em}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}code,.mono{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:.86em}.solo-lectores{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.app{display:flex;flex-direction:column;min-height:100%}.topbar{display:flex;align-items:center;gap:20px;padding:0 22px;height:56px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.topbar .logo{display:flex;align-items:center;gap:9px;font-weight:680;color:var(--ink);white-space:nowrap}.topbar .logo-image{height:26px;max-width:130px;object-fit:contain;display:block}.logo-mark{width:26px;height:26px;border-radius:7px;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;font-size:14px;font-weight:700}.topbar nav{display:flex;gap:4px;flex:1}.topbar nav a{padding:6px 11px;border-radius:var(--radius-sm);color:var(--ink-2);font-weight:520}.topbar nav a:hover{background:var(--surface-2);text-decoration:none;color:var(--ink)}.topbar nav a.active{background:var(--brand-soft);color:var(--brand)}.topbar .who{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-3)}main.page{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:26px 22px 64px}main.page.wide{max-width:1500px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px;flex-wrap:wrap}.page-head .sub{color:var(--ink-3);margin:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card>header{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.card>header h3{margin:0}.card-body{padding:18px}.card-body.tight{padding:12px 18px}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid.three{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row.between{justify-content:space-between}.spacer{flex:1}label.field{display:block;margin-bottom:14px}label.field>span{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:5px}label.field .hint{font-weight:400;color:var(--ink-3)}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=tel],select,textarea{width:100%;padding:8px 11px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit;font-size:14px}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:var(--brand)}textarea{resize:vertical;min-height:76px}input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand)}.inline-check{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink-2)}button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 15px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);font:inherit;font-size:14px;font-weight:560;cursor:pointer;white-space:nowrap}button:hover:not(:disabled),.btn:hover{background:var(--surface-2);text-decoration:none}button:disabled{opacity:.5;cursor:not-allowed}button.primary,.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}button.primary:hover:not(:disabled){filter:brightness(1.08)}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.ghost{background:transparent;border-color:transparent;color:var(--ink-2)}button.ghost:hover:not(:disabled){background:var(--surface-2)}button.small{padding:4px 10px;font-size:12.5px}button.big{padding:11px 22px;font-size:15px}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--border)}.badge.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}.badge.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}.badge.danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.badge.info{background:var(--brand-soft);color:var(--brand);border-color:transparent}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13.5px}th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-weight:650;padding:9px 14px;border-bottom:1px solid var(--border);white-space:nowrap}td{padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr.clickable:hover{background:var(--surface-2);cursor:pointer}.notice{padding:11px 14px;border-radius:var(--radius-sm);border-left:3px solid var(--brand);background:var(--brand-soft);color:var(--ink);font-size:13.5px}.notice.error{border-left-color:var(--danger);background:var(--danger-soft)}.notice.warn{border-left-color:var(--warn);background:var(--warn-soft)}.notice.ok{border-left-color:var(--ok);background:var(--ok-soft)}.notice ul{margin:6px 0 0;padding-left:20px}.empty{padding:46px 20px;text-align:center;color:var(--ink-3)}.kv{display:grid;grid-template-columns:minmax(140px,auto) 1fr;gap:7px 18px;font-size:13.5px}.kv dt{color:var(--ink-3);font-weight:550}.kv dd{margin:0;overflow-wrap:anywhere}.auth-screen{min-height:100%;display:grid;place-items:center;padding:28px}.auth-card{width:100%;max-width:410px}.auth-card .brandline{display:flex;align-items:center;gap:10px;justify-content:center;margin-bottom:22px;font-size:17px;font-weight:660}.auth-screen-full{min-height:100%;display:grid}.auth-panel{background:var(--surface);display:grid;grid-template-rows:1fr auto;padding:26px 30px;min-width:0}.auth-brand{display:flex;justify-content:center;margin-bottom:34px}.auth-logo{display:block;width:340px;max-width:100%;height:auto}.auth-body{display:grid;place-items:center;padding:26px 0}.auth-body-inner{width:100%;max-width:380px}.auth-form{display:grid;gap:22px}.auth-field{position:relative}.auth-field-label{position:absolute;top:-7px;left:10px;z-index:1;padding:0 5px;background:var(--surface);font-size:11.5px;font-weight:500;color:var(--ink-3);pointer-events:none}.auth-field:focus-within .auth-field-label{color:var(--brand)}.auth-field-control{position:relative;display:flex;align-items:center}.auth-field-control input{height:50px;padding:0 44px 0 15px;border-radius:8px;font-size:14.5px}.auth-field-control input::placeholder{color:var(--ink-3);opacity:.75}.auth-field:focus-within .auth-field-control input{border-color:var(--brand)}.auth-field-adorno,.auth-field-boton{position:absolute;right:12px;display:flex;align-items:center;color:var(--ink-3)}.auth-field-adorno{pointer-events:none}.auth-field-boton{padding:4px;border:none;border-radius:var(--radius-sm);background:none;cursor:pointer}.auth-field-boton:hover{color:var(--ink-2)}.auth-submit{width:100%;margin-top:8px;height:50px;border-radius:8px}.auth-foot{font-size:13px;color:var(--ink-3);text-align:center}.linklike{padding:0;border:none;background:none;color:var(--brand);font:inherit;font-weight:600;cursor:pointer}.linklike:hover:not(:disabled){background:none;text-decoration:underline}.selector-idioma{display:flex;flex-direction:column;gap:6px}.selector-idioma select{font:inherit}.selector-idioma.compacto{margin-top:14px;align-items:center}.selector-idioma.compacto select{padding:4px 22px 4px 8px;border:1px solid transparent;border-radius:var(--radius-sm);background-color:transparent;color:var(--ink-3);font-size:13px;cursor:pointer}.selector-idioma.compacto select:hover,.selector-idioma.compacto select:focus-visible{border-color:var(--border);color:var(--ink-2)}.pdf-shell{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:18px;overflow:auto;max-height:calc(100vh - 210px)}.pdf-page{position:relative;margin:0 auto 20px;background:#fff;box-shadow:0 1px 3px #0000002e,0 8px 24px #0000001a}.pdf-page canvas{display:block;width:100%;height:auto}.pdf-page .overlay{position:absolute;top:0;right:0;bottom:0;left:0}.pdf-page-label{text-align:center;font-size:11.5px;color:var(--ink-3);margin:-12px 0 16px}.tab-box{position:absolute;border:1.5px dashed var(--brand);background:#1f6feb1a;border-radius:3px;font-size:11px;color:#14315e;display:flex;align-items:center;padding:0 3px;cursor:pointer;-webkit-user-select:none;user-select:none}.tab-box.other{border-color:var(--border-strong);border-style:dotted;background:#7880881f;color:var(--ink-3);cursor:default}.tab-box.required:after{content:"*";color:var(--danger);margin-left:2px;font-weight:700}.tab-box.filled{border-style:solid;border-color:var(--ok);background:#1a7f3717}.tab-box.selected{outline:2px solid var(--brand);outline-offset:1px}.tab-box.pending-signature{border-color:var(--warn);background:#d2992229;color:#6b4c00;justify-content:center;font-weight:620}.tab-box img{width:100%;height:100%;object-fit:contain}.tab-box input,.tab-box select{width:100%;height:100%;border:none;background:transparent;padding:0 2px;font:inherit;font-size:inherit;color:#14315e}.tab-box input:focus,.tab-box select:focus{outline:none}.tab-box.movable{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.tab-box.movable:active,.tab-box.dragging{cursor:grabbing}.tab-box.dragging{opacity:.85;box-shadow:0 2px 10px #00000040}.tab-box .tab-label{pointer-events:none;white-space:nowrap;overflow:hidden}.tab-box .tab-delete{position:absolute;right:-8px;top:-8px;width:16px;height:16px;border-radius:50%;background:var(--danger);color:#fff;font-size:10px;display:grid;place-items:center;line-height:1;cursor:pointer}.tab-box .tab-resize{position:absolute;right:-5px;bottom:-5px;width:11px;height:11px;border-radius:2px;background:var(--brand);border:1.5px solid var(--surface);cursor:nwse-resize;touch-action:none}.align-guide{position:absolute;background:#ff3b8d;pointer-events:none;z-index:5}.align-guide.x{top:0;bottom:0;width:1px}.align-guide.y{left:0;right:0;height:1px}.editor-layout{display:grid;grid-template-columns:260px 1fr;gap:18px;align-items:start}@media(max-width:940px){.editor-layout{grid-template-columns:1fr}}.palette{position:sticky;top:74px}.palette-item{display:flex;align-items:center;gap:9px;width:100%;padding:8px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);margin-bottom:7px;font-size:13.5px;cursor:grab;text-align:left}.palette-item:hover{border-color:var(--brand);background:var(--brand-soft)}.palette-item.active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.palette-item .icon{width:20px;text-align:center}.recipient-chip{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);margin-bottom:6px;cursor:pointer;font-size:13px}.recipient-chip.active{border-color:var(--brand);background:var(--brand-soft)}.recipient-chip .dot{width:9px;height:9px;border-radius:50%;flex:none}.sign-shell{min-height:100%;display:flex;flex-direction:column}.sign-bar{display:flex;align-items:center;gap:16px;padding:11px 20px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30;flex-wrap:wrap}.sign-bar .title{font-weight:640}.sign-bar .from{font-size:12.5px;color:var(--ink-3)}.sign-body{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:20px}.sign-footer{position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--border);padding:12px 20px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;z-index:30}.progress-pill{font-size:12.5px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--border);padding:3px 11px;border-radius:999px}.consent-box{max-height:320px;overflow-y:auto;padding:16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);font-size:13.5px;white-space:pre-wrap;line-height:1.6}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0e148c;display:grid;place-items:center;padding:20px;z-index:100}.modal{width:100%;max-width:560px;background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:0 12px 40px #0000004d;max-height:90vh;overflow-y:auto}.modal>header{padding:15px 18px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-body{padding:18px}.modal-footer{padding:14px 18px;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end}.tabs-strip{display:flex;gap:3px;border-bottom:1px solid var(--border);margin-bottom:16px}.tabs-strip button{border:none;background:none;border-bottom:2px solid transparent;border-radius:0;padding:8px 13px;color:var(--ink-3)}.tabs-strip button.active{color:var(--brand);border-bottom-color:var(--brand)}.logo-preview{display:inline-flex;align-items:center;justify-content:center;padding:12px 16px;margin-bottom:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:linear-gradient(45deg,#e9ecef 25%,transparent 25%,transparent 75%,#e9ecef 75%),linear-gradient(45deg,#e9ecef 25%,#fff 25%,#fff 75%,#e9ecef 75%);background-size:14px 14px;background-position:0 0,7px 7px}.logo-preview img{max-height:60px;max-width:260px;object-fit:contain;display:block}.signature-canvas{width:100%;height:170px;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:#fff;touch-action:none;display:block}.signature-preview{height:170px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;display:grid;place-items:center;padding:10px}.signature-preview span{font-size:44px;color:#0c2054;white-space:nowrap;overflow:hidden}.timeline{position:relative;padding-left:24px}.timeline:before{content:"";position:absolute;left:6px;top:6px;bottom:6px;width:2px;background:var(--border)}.timeline-item{position:relative;padding-bottom:16px}.timeline-item:before{content:"";position:absolute;left:-22px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--brand);border:2px solid var(--surface)}.timeline-item .when{font-size:12px;color:var(--ink-3)}.timeline-item .what{font-weight:560}.timeline-item .who{font-size:12.5px;color:var(--ink-2)}.hash{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--ink-3);overflow-wrap:anywhere}.spinner{width:17px;height:17px;border:2px solid var(--border-strong);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen{min-height:60vh;display:grid;place-items:center;gap:12px;color:var(--ink-3)}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--radius);padding:30px;text-align:center;color:var(--ink-3);background:var(--surface-2);cursor:pointer}.dropzone.over{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.file-row{display:flex;align-items:center;gap:11px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:7px;font-size:13.5px}
