*{box-sizing:border-box}body{margin:0;background:#f3f6f8;color:#172e40;font:15px/1.55 system-ui,sans-serif}header{height:82px;background:#102a3b;color:white;display:flex;align-items:center;padding:0 5%;gap:32px}a{color:#007d77}header a{color:white;text-decoration:none}.brand{font-size:25px;font-weight:750;letter-spacing:-1px}.brand span{display:block;font-size:9px;letter-spacing:3px;color:#8ccbc8}.module{border-left:1px solid #456070;padding-left:28px;color:#bdd1da}header button{margin-left:auto}main{max-width:1200px;margin:40px auto;padding:0 24px}h1{font-size:30px;line-height:1.2;letter-spacing:-.8px;margin:0 0 10px}h2{font-size:19px;margin:0 0 20px}p{color:#576d7a}button,.button{border:0;border-radius:8px;background:#007d77;color:white;font:600 14px system-ui;padding:12px 18px;cursor:pointer;text-decoration:none;display:inline-block}button:hover,.button:hover{background:#006660}button:disabled{opacity:.45;cursor:wait}.secondary{background:#e7eef2;color:#214355}.secondary:hover{background:#d6e3e9}.danger{color:#9c263c;background:#fce8ed}input,select{width:100%;padding:12px;border:1px solid #cad6de;border-radius:7px;font:inherit;background:white;color:#172e40}label{display:block;font-size:13px;font-weight:600;margin:16px 0 6px}input[type=checkbox]{width:auto;margin-right:9px}label.check{font-weight:400;display:flex;align-items:flex-start;gap:8px}label.check input{margin-top:6px}.card{background:white;border:1px solid #e1e8ed;border-radius:14px;padding:26px;box-shadow:0 4px 16px #17334804}.login{max-width:430px;margin:70px auto}.login button{width:100%;margin-top:24px}.top{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:28px}.grid{display:grid;grid-template-columns:330px 1fr;gap:24px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:20px 0}.toolbar input{flex:1;min-width:180px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#6e8491}td,th{padding:18px 10px;border-bottom:1px solid #e7edf0}td small{display:block;color:#71838e}.badge{font-size:12px;padding:5px 9px;border-radius:20px;background:#edf2f6}.firmado{background:#dbf4ea;color:#126348}.pendiente{background:#fff1d7;color:#8b601d}.revocado{background:#fbe5e9;color:#a0384d}.empty{padding:55px 16px;text-align:center}.muted{color:#6b818e;font-size:13px}.viewer{max-width:760px;margin:auto}.page{position:relative;line-height:0;border:1px solid #d4dfe5;background:white;touch-action:none;user-select:none}.page img{width:100%;display:block;pointer-events:none}.selection{position:absolute;border:2px dashed #008980;background:#13b8a02b;pointer-events:none;display:flex;align-items:center;justify-content:center;font-size:12px;line-height:1;color:#006660}.signature{width:100%;height:180px;border:1px dashed #96abb7;border-radius:8px;touch-action:none;background:white}.stack>*+*{margin-top:14px}.success{background:#e2f5ec;padding:18px;border-radius:10px;color:#135f42}.linkbox{overflow-wrap:anywhere;background:#edf7f5;padding:16px;border-radius:8px;margin-top:16px}#notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#102a3b;color:white;padding:15px 24px;border-radius:10px;max-width:90%;z-index:20}.sign-layout{display:grid;grid-template-columns:1fr 360px;gap:24px}.page-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin:18px}.page-nav button{padding:8px 14px}.instructions{border-left:3px solid #00a595;padding-left:14px}.full{width:100%}@media(max-width:850px){.grid,.sign-layout{grid-template-columns:1fr}.top{align-items:flex-start}.module{font-size:12px;padding-left:12px}header{gap:15px}main{margin-top:25px;padding:0 16px}.card{padding:20px}h1{font-size:26px}td,th{padding:13px 6px}.sign-layout .card{order:2}}
[hidden]{display:none!important}
/* Responsive layout and touch controls */
html{scroll-padding-top:20px}body{min-width:0}main{padding-bottom:max(28px,env(safe-area-inset-bottom))}
header{height:auto;min-height:82px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}
header .brand,header button{flex-shrink:0}.top>div,.grid>*,.sign-layout>*,.card,.toolbar>*{min-width:0}
h1,h2,p,td,a,.linkbox{overflow-wrap:anywhere}input,select{font-size:16px;min-width:0;max-width:100%}
button,.button{min-height:44px;touch-action:manipulation;text-align:center}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #30b5ae;outline-offset:3px}
input[type=checkbox]{width:22px;height:22px;flex:0 0 22px;accent-color:#007d77}.check{padding:8px 0}
.viewer{width:100%;align-self:start}.page{touch-action:pan-x pan-y pinch-zoom}.page.placing{touch-action:none;cursor:crosshair}
.page-nav{margin:14px 0;gap:12px}.page-nav span{font-size:14px;text-align:center}.page-nav button{min-width:46px}
.placement-tools{background:#e3f2ef;border-radius:10px;padding:14px;margin-bottom:14px}.placement-tools p{margin:8px 0 0}.placement-tools button{width:100%}
.signature{display:block;height:auto;aspect-ratio:5/2}#clear{margin-top:10px}#pageimg{height:auto}.selection{overflow:hidden}
@media(max-width:850px){
 .grid,.sign-layout{gap:20px}.login{margin:32px auto}.toolbar{align-items:stretch}.empty{padding:30px 12px}
 .grid .viewer{order:0}.grid aside{order:1}.grid .viewer:has(.placement-tools){padding-top:0}
 .sign-layout .viewer{order:0}.sign-layout .card{order:1}
}
@media(max-width:600px){
 header{padding:12px 16px;gap:8px 14px;min-height:74px}.brand{font-size:23px}.brand span{font-size:8px}
 .module{order:3;flex-basis:100%;border:0;padding:0;font-size:12px}header button{padding:10px 16px}
 main{margin:22px auto 0;padding-left:14px;padding-right:14px}.card{padding:18px;border-radius:12px}
 h1{font-size:26px}.top{flex-direction:column;gap:12px;margin-bottom:20px}.top>button{width:100%}.top p{margin:8px 0}
 .toolbar{flex-direction:column;gap:10px;margin:10px 0 18px}.toolbar input{min-width:0;flex:auto}.toolbar select{width:100%!important}
 .toolbar .button,#upload>button{width:100%}.login{margin:24px auto}.login h1{font-size:28px}
 .table-wrap{overflow:visible}table,tbody{display:block}thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 tbody{display:grid;gap:12px}tr{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:14px;border:1px solid #dfe8ed;border-radius:10px;gap:10px}
 td{display:block;padding:0;border:0;min-width:0}td:first-child,td:last-child{grid-column:1/-1}td:first-child strong{font-size:16px}td small{margin-top:5px}
 td:nth-child(2){font-size:13px;align-self:center}td:nth-child(2)::before{content:'Creado: ';color:#6b818e}td:last-child button{width:100%}
 .badge{display:inline-block}input[type=file]{padding:10px 8px;font-size:14px}.signature{border-width:2px}
 #notice{width:calc(100% - 28px);max-width:440px;bottom:max(14px,env(safe-area-inset-bottom));padding:13px 16px}
}
@media(max-width:360px){main{padding-left:10px;padding-right:10px}.card{padding:14px}h1{font-size:24px}.page-nav{gap:8px}}
