:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#0f172a;background-color:#f4f6fb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background-color:#f4f6fb;color:#0f172a}a{color:#2563eb;text-decoration:none}a:hover{text-decoration:underline}button{font:inherit}.app-shell{min-height:80vh;max-height:80vh;background:linear-gradient(180deg,#4b5d88 0% 40%,#f4f6fb 40% 100%);background:linear-gradient(180deg,#495164 0% 40%,#f4f6fb 40% 100%);background:linear-gradient(180deg,#0f306e 0% 40%,#f4f6fb 40% 100%);background:linear-gradient(180deg,#291d89,#20147a 40%,#f4f6fb 40% 100%)}.landing-page{min-height:100vh;background:linear-gradient(180deg,#030711,#0a1240 45%,#f6f7fb 45% 100%);display:flex;flex-direction:column;gap:3rem;padding:3rem 1rem 4rem}.landing-hero,.landing-features,.landing-process,.landing-cta{width:min(1200px,100%);margin:0 auto}.landing-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.9fr);gap:2.5rem;background:radial-gradient(circle at top left,rgba(59,130,246,.45),transparent 55%) #0b1229;border-radius:2rem;padding:3rem;color:#fff;box-shadow:0 35px 80px #040814b3}.hero-logo{width:56px;height:auto;margin-bottom:.5rem}.hero-copy h1{margin:.25rem 0 .5rem;font-size:clamp(2.5rem,4vw,3.5rem);line-height:1.2}.hero-copy p{margin:0;color:#ffffffd9;max-width:480px}.hero-cta-group{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.5rem 0 1rem}.hero-cta{padding:.85rem 1.5rem;border-radius:.85rem;font-weight:600;cursor:pointer;border:none}.hero-stats{margin-top:1.5rem;display:flex;gap:1.5rem;flex-wrap:wrap}.hero-stats div{min-width:140px}.hero-stats strong{display:block;font-size:1.75rem}.hero-stats span{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:#ffffffa6}.hero-aside{align-self:center}.auth-panel{background:#fff;border-radius:1.5rem;padding:1.5rem;box-shadow:0 20px 45px #0f172a40;display:flex;flex-direction:column;gap:1rem}.section-heading{display:flex;flex-direction:column;gap:.35rem;max-width:560px}.section-heading h2{margin:0;font-size:clamp(1.25rem,1vw,1.9rem)}.section-heading p{margin:0;color:#475569}.landing-features{background:#fff;border-radius:1.75rem;padding:2.5rem;box-shadow:0 20px 60px #0f172a1f}.feature-grid{margin-top:1.5rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem}.feature-card{padding:1.5rem;border-radius:1.1rem;border:1px solid #e2e8f0;background:#f8fafc}.feature-card h3{margin:0 0 .5rem}.landing-process{background:#fff;border-radius:1.75rem;padding:2.5rem;box-shadow:0 20px 60px #0f172a14}.process-grid{margin-top:1.5rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.process-step{border-radius:1rem;padding:1.5rem;border:1px solid rgba(15,23,42,.08);background:#f8fafc}.process-step h3{margin:.6rem 0}.process-step p{margin:0;color:#475569;font-size:.95rem}.step-index{width:42px;height:42px;border-radius:999px;background:#1d4ed8;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700}.landing-cta{padding:0 1rem}.cta-panel{background:#0f172a;color:#fff;border-radius:1.5rem;padding:2.5rem;box-shadow:0 20px 55px #0f172a99;display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center;justify-content:space-between}.validator-json-toggle{background:#0f172a;border:1px solid rgba(255,255,255,.35);color:#fff;font-weight:600;cursor:pointer;padding:.35rem .75rem;border-radius:.65rem;transition:background .2s ease,border-color .2s ease}.validator-json-toggle:hover{background:#fff;color:#0f172a;border-color:#0f172a}.validator-json{margin-top:.75rem;background:#0f172a;color:#f8fafc;padding:1rem;border-radius:.85rem;max-height:340px;overflow:auto;font-size:.8rem;line-height:1.4}.cta-actions{display:flex;gap:.75rem;flex-wrap:wrap}button.ghost{border:1px solid currentColor;background:transparent;color:inherit;border-radius:.85rem;padding:.75rem 1.5rem;font-weight:600;cursor:pointer;transition:background .2s ease,color .2s ease}button.ghost:hover{background:#ffffff26}@media(max-width:1100px){.landing-hero{grid-template-columns:1fr}.hero-aside{order:-1}}@media(max-width:640px){.landing-hero,.landing-features,.landing-process{padding:2rem}.cta-panel{flex-direction:column;align-items:flex-start}}.auth-tabs{display:inline-flex;border:1px solid rgba(255,255,255,.2);border-radius:999px;overflow:hidden}.auth-tabs button{border:none;background:transparent;color:#e2e8f0;padding:.5rem 1rem;cursor:pointer;font-weight:600}.auth-tabs button.active{background:#fff;color:#0f172a}.auth-switchers{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.auth-switchers button{border:none;background:none;color:#94a3b8;cursor:pointer}.login-form{background:#fff;border-radius:1.25rem;padding:2rem;width:100%;max-width:400px;box-shadow:0 20px 45px #0f172a59;display:flex;flex-direction:column;gap:1rem}.login-header h1{margin:.25rem 0;font-size:1.75rem}.login-header p{margin:0;color:#64748b}.login-header{position:relative;padding-left:90px}.login-header:before{content:"";position:absolute;left:0;top:.35rem;width:72px;height:72px;background-color:transparent;background-position:center;background-size:contain;background-repeat:no-repeat}.page-header{padding:3rem 1.5rem 6rem;color:#fff;max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;position:relative}.page-header-title{display:flex;align-items:center;gap:.85rem;margin-bottom:.35rem}.page-header-logo{width:82px;height:auto;display:block}.page-header h1{margin:.2rem 0;font-size:1.85rem}.page-header p{margin:.2rem 0;font-size:.85rem}.user-meta{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.user-meta strong{display:block}.user-meta span{font-size:.9rem;color:#cbd5f5}.user-meta-actions{display:flex;gap:.5rem}.user-meta-actions .ghost{border-color:#fca5a5;color:#fca5a5}.eyebrow{font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8;margin:0}.page-header:before{content:"";position:absolute;left:1.5rem;top:1rem;width:96px;height:96px;background-color:transparent;background-position:center;background-size:contain;background-repeat:no-repeat}.layout-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem;max-width:1200px;margin:-4rem auto 3rem;padding:0 1.5rem;align-items:start}.layout-grid.single-column{grid-template-columns:minmax(0,1fr)}.documents-panel{grid-column:1 / -1}.panel{background:#fff;border-radius:.75rem;border:1px solid #333333;padding:1.5rem;box-shadow:0 12px 30px #0f172a38;position:relative;display:flex;flex-direction:column;gap:1rem}.consent-modal-backdrop{position:fixed;inset:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:50}.consent-modal{background:#fff;border-radius:1rem;padding:1.5rem;max-width:460px;width:min(90%,460px);box-shadow:0 25px 40px #0f172a59;display:flex;flex-direction:column;gap:1rem;position:relative}.consent-modal h3{margin:0;font-size:1.25rem;color:#0f172a}.consent-text{font-size:.9rem;line-height:1.4}.consent-actions{display:flex;gap:.5rem;flex-wrap:wrap}.consent-actions button{border:none;border-radius:999px;padding:.5rem 1.25rem;cursor:pointer;font-weight:600;background:#0f172a;color:#fff;transition:background .2s ease}.consent-actions button:last-child{background:transparent;border:1px solid #0f172a;color:#0f172a}.consent-actions button.secondary:hover{background:#0f172a0d}.consent-close{position:absolute;top:.5rem;right:.5rem;border:none;background:transparent;cursor:pointer;padding:.2rem;display:flex;align-items:center;justify-content:center}.consent-close-icon{font-size:1rem;color:#475569}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.consent-actions button.secondary{background:transparent;border:1px solid #94a3b8;color:#475569}.consent-actions button:hover{background:#1d4ed8;color:#fff}.consent-modal small{color:#475569;font-size:.8rem}.audit-list{max-height:240px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:.75rem;padding:1rem;background:#f8fafc;display:flex;flex-direction:column;gap:.75rem}.audit-item{border-bottom:1px dashed #cbd5f5;padding-bottom:.5rem}.audit-item:last-child{border-bottom:none}.audit-item header{display:flex;justify-content:space-between;gap:.5rem;font-size:.9rem}.audit-item p{margin:.25rem 0;font-size:.8rem;color:#475569}.panel-header{display:flex;justify-content:space-between;gap:1rem}.panel-header h2,.panel-header h3{margin:.25rem 0 0}.panel-actions{display:flex;gap:.5rem;align-items:center}.panel-heading-block{display:flex;flex-direction:column;gap:.35rem}.panel-heading-top{display:flex;align-items:center;gap:.5rem}.status-filter-inline{border:1px solid #cbd5f5;border-radius:.65rem;padding:.15rem .75rem;background:#fff}.status-filter-inline select{border:none;background:transparent;font-size:.75rem;font-weight:600;color:#0f172a;cursor:pointer;letter-spacing:.05em;position:relative;z-index:2}.status-filter-inline select:focus{outline:none}.form{display:flex;flex-direction:column;gap:1rem}.signature-section{margin-top:1rem}.signature-section .signature-label{margin:0 0 .5rem;font-weight:600}.signature-hint{margin:.25rem 0 0;font-size:.85rem;color:#0f172a}.form-field{display:flex;flex-direction:column;gap:.4rem}.form-field span{font-size:.9rem;color:#475569}.upload-dropzone{position:relative;border:2px dashed #cbd5f5;border-radius:1rem;padding:1.5rem 1rem;background:#f8fafc;text-align:center;cursor:pointer;transition:border-color .2s ease,background .2s ease;overflow:hidden}.upload-dropzone input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-dropzone p{margin:0;color:#475569}.upload-dropzone small{color:#94a3b8}.upload-dropzone.has-file{border-color:#2563eb;background:#fff;box-shadow:inset 0 0 0 1px #2563eb26}.form-field input,.form-field select,.signer-card input{width:100%;padding:.75rem .85rem;border-radius:.65rem;border:1px solid #cbd5f5;background:#f8fafc;font-size:1rem}.form-field input:focus,.signer-card input:focus{outline:2px solid #2563eb;background:#fff}.mode-selector{display:inline-flex;gap:.5rem;background:#f1f5f9;border-radius:999px;padding:.4rem}.mode-selector button{border:none;padding:.4rem .9rem;border-radius:999px;background:transparent;background:#d8dbdf;color:#475569;cursor:pointer}.mode-selector .selected{background:#23029c;background:#034eb8;box-shadow:0 2px 10px #2563eb40;color:#0f172a;color:#f5f5f5;font-weight:600}.signers-section{border:1px solid #e2e8f0;border-radius:1rem;padding:1rem}.signers-section.witnesses{margin-top:1rem;border-style:dashed;background:#fff}.signers-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.signer-card{border:1px solid #dbeafe;border-radius:.9rem;padding:1rem;margin-bottom:1rem;background:#f8fafc;background:#e1eefc}.signer-card:last-child{margin-bottom:0}.signer-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.signer-title{display:flex;align-items:center;gap:.5rem}.order-field{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;color:#475569}.order-field span{font-size:.85rem}.signer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.order-input{max-width:70px;min-width:50px}.signer-grid label.wide{grid-column:span 2}.form-actions{display:flex;justify-content:flex-end}.form-actions button,button.primary{background:#2563eb;border:none;color:#fff;padding:.85rem 1.5rem;border-radius:.75rem;cursor:pointer;font-weight:600;transition:background .2s ease}.form-actions button:disabled,button.primary:disabled,button.primary-outline:disabled{opacity:.6;cursor:not-allowed}.form-actions button:not(:disabled):hover,button.primary:not(:disabled):hover{background:#1e50c4}button.primary-outline{border:1px solid #2563eb;color:#2563eb;background:transparent;padding:.65rem 1.25rem;border-radius:.65rem;cursor:pointer}.actions-stack .primary-outline:hover{background:#2563eb1f;border-color:#1d4ed8}button.link.compact{display:inline-flex;align-items:center;gap:.25rem}.form-error,.form-success{padding:.75rem 1rem;border-radius:.75rem;font-size:.95rem}.form-error{background:#fee2e2;color:#991b1b}.form-success{background:#dcfce7;color:#166534}.link{border:none;background:none;color:#2563eb;cursor:pointer;font-weight:600;font-size:1em;padding:0}.link.danger{color:#dc2626}.refresh-button{border:1px solid rgba(37,99,235,.45);background:transparent;color:#2563eb;cursor:pointer;font-weight:600;font-size:.95rem;padding:.55rem 1rem;border-radius:.75rem;display:inline-flex;align-items:center;gap:.45rem;box-shadow:0 6px 16px #2563eb2e;transition:background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease;min-width:160px;justify-content:center}.refresh-button:hover:not(:disabled){background:#03287714;background:#a6c0f8;border-color:#719cf9;color:#090494;box-shadow:0 8px 20px #2563eb40;transform:scale(1.02)}.refresh-button:disabled{opacity:.6;cursor:not-allowed}.refresh-icon{font-size:1rem}.new-document-button{background:#0073e6;color:#fff;border-color:transparent}.new-document-button:hover:not(:disabled){background:#0044ad;border-color:#152762;box-shadow:0 8px 20px #2563eb52;color:#fff;transform:scale(1.02)}.status-summary-row{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.5rem}.status-overview{display:flex;flex-wrap:wrap;gap:.35rem;margin:.25rem 0 .75rem}.status-card{border-radius:999px;padding:.25rem .75rem;border:1px solid transparent;background:#fff;font-size:.7rem;font-weight:600;display:inline-flex;align-items:center;gap:.25rem;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;min-width:130px;justify-content:space-between}.status-card strong{font-size:.8rem}.status-card.active{border-color:currentColor;box-shadow:0 4px 12px #0f172a26}.status-card-all{color:#0f172a;background:#b7babe}.status-card-draft{color:#92400e;background:#fef3c7}.status-card-pending{color:#3730a3;background:#d1daf7}.status-card-signed{color:#166534;background:#c2decb}.status-card-viewed{color:#0ea5e9;background:#c5e2f6}.status-card-rejected{color:#b91c1c;background:#fecaca}@media(max-width:900px){.status-card{flex:0 0 48%}}@media(max-width:576px){.status-card{flex:0 0 100%;justify-content:space-between}}.status-summary-pill{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .6rem;border-radius:.65rem;border:1px solid rgba(15,23,42,.12);background:#fff;font-size:.65rem;font-weight:600;color:#475569;box-shadow:0 3px 6px #0f172a14}.documents-table .badge{font-size:.65rem;padding:.15rem .5rem;letter-spacing:.04em;white-space:nowrap}.status-summary-pill span{letter-spacing:.02em}.status-summary-pill-draft{border-color:#fde047}.status-summary-pill-pending{border-color:#c7d2fe}.status-summary-pill-signed{border-color:#16a34a;background:#dcfce7}.status-summary-pill-viewed{border-color:#0ea5e9;background:#e0f2fe}.status-summary-pill-rejected{border-color:#dc2626;background:#fee2e2}.status-summary-pill--empty{opacity:.55;border-style:dashed}.table-wrapper{width:100%;overflow-x:auto;border:1px solid #e2e8f0;border-radius:.75rem;padding:.5rem;background:#fff;box-shadow:0 20px 35px #0f172a1a}.documents-table{width:100%;border-collapse:collapse;font-size:.95rem;border-radius:.75rem;overflow:hidden;border:1px solid #e2e8f0}.documents-table th{text-align:left;font-size:.85rem;text-transform:uppercase;text-transform:none;letter-spacing:0em;color:#0f172a;padding:.9rem .75rem;background:linear-gradient(180deg,#84aff5,#8bb2fa);border-bottom:1px solid #93addc}.documents-table td{padding:.85rem .5rem;vertical-align:middle}.documents-table td:nth-child(2),.documents-table td:nth-child(3),.documents-table td:nth-child(4),.documents-table td:nth-child(5){text-align:center}.documents-table td:nth-child(6){font-size:.75rem;white-space:nowrap;line-height:1.2}.document-cards{display:none;margin-top:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.document-card{background:#fff;border:1px solid #e2e8f0;border-radius:1rem;padding:1rem;display:flex;flex-direction:column;gap:.75rem;box-shadow:0 16px 30px #0f172a1f}.document-card-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.document-card-header strong{display:block;font-size:1rem}.document-card-header p{margin:0;font-size:.85rem;color:#94a3b8}.document-card-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem}.document-card-meta span{font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8}.document-card-meta p{margin:.15rem 0 0;font-weight:600}.document-card-actions{display:flex;flex-wrap:wrap;gap:.5rem}@media(max-width:900px){.table-wrapper{display:none}.document-cards{display:grid}}.sign-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,#f9fafd,#e2ecff 60%);padding:2rem 1rem}.sign-card{width:100%;max-width:720px;border-radius:.9rem;padding:2rem;background:#fff;box-shadow:0 35px 60px #0f172a40;display:flex;flex-direction:column;gap:1rem}.sign-card header h2{margin:0;font-size:1.5rem}.sign-subtitle{margin:0;color:#475569;font-size:.95rem}.sign-pdf{border-radius:.75rem;overflow:hidden;border:1px solid #e2e8f0;min-height:320px}.sign-pdf iframe{width:100%;height:460px;border:none}.sign-actions{display:flex;flex-direction:column;gap:.5rem}.sign-confirmation{margin:0;color:#16a34a;font-weight:600}.sign-mobile-hint{margin:0;font-size:.85rem;color:#475569}.otp-ui{padding:1rem;border-radius:.85rem;background:#f8fafc;border:1px solid #e2e8f0;margin:1rem 0}.otp-label{margin:0 0 .5rem;font-size:.9rem;text-transform:uppercase;letter-spacing:.05em;color:#475569}.otp-field{display:flex;gap:.5rem}.otp-field input{flex:1;padding:.5rem .75rem;border-radius:.65rem;border:1px solid #cbd5f5;font-size:1rem}.otp-field button{border-radius:.65rem;border:none;background:#2563eb;color:#fff;padding:.5rem 1rem;font-weight:600;cursor:pointer}.otp-error{margin:.5rem 0 0;color:#dc2626;font-size:.85rem}.otp-resend-button{border:none;border-radius:.65rem;padding:.45rem .9rem;background:#2563eb;color:#fff;font-weight:600;cursor:pointer;margin-top:.5rem}.otp-resend-button:disabled{opacity:.6;cursor:not-allowed}.otp-resend-message{margin:.35rem 0 0;font-size:.85rem;color:#16a34a}.documents-table tbody tr{transition:background .25s ease;border-left:0px solid #93addc;border-right:0px solid #93addc}.documents-table tbody tr.row-even td{background:#f4f7ff}.documents-table tbody tr.row-odd td{background:#e8eef9;background:#e2e7f2}.documents-table tbody tr:hover td{background:#eaf1ff;background:#adc6fa;background:#daf1d1;background:#bbc6d8;background:#d8e0ef}.documents-table tbody tr+tr td{border-top:1px solid #cbd5f5;border-top:1px solid #abbcf6}.documents-table td{position:relative}.doc-title{display:flex;flex-direction:column;gap:.1rem}.doc-title strong{font-size:.95rem;font-weight:600}.doc-title span{font-size:.75rem;color:#94a3b8}.doc-link{font-size:.8rem;display:inline-flex;align-items:center;gap:.35rem}.doc-link-icon{font-size:.95rem}.doc-links{display:inline-flex;gap:.5rem;flex-wrap:wrap;margin-top:.25rem}.doc-link--signed{font-weight:600}.actions-stack{display:flex;flex-direction:row;gap:.5rem;align-items:center;flex-wrap:nowrap}.action-button{font-size:.85rem;border-radius:.75rem;border:1px solid rgba(15,23,42,.15);padding:.5rem .55rem;cursor:pointer;min-width:90px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;font-weight:600;transition:background .2s ease,color .2s ease,border .2s ease,transform .2s ease,box-shadow .2s ease;background:#fff;color:#0f172a;box-shadow:0 6px 16px #0f172a2e}.action-button:disabled{cursor:not-allowed;opacity:.6}.actions-stack--single{justify-content:flex-end}.action-button--icon{min-width:40px;width:40px;padding:.45rem}.action-button--icon .action-icon{font-size:1rem}.action-icon{color:currentColor}@media(max-width:900px){.actions-stack{gap:.35rem}}@media(max-width:576px){.actions-stack{flex-wrap:nowrap}.action-button--icon{width:40px;min-width:40px;flex:0 0 auto}.actions-stack--single .action-button--icon{flex:0 0 auto}}@media(max-width:420px){.actions-stack{flex-wrap:nowrap}}.action-button--ghost{border-color:#0f172a40}.action-button--ghost:hover{border-color:#0f172a40;background:#0f172a0d}.action-button--secondary{border-color:#2563eb59;color:#1d4ed8}.action-button--secondary:hover{border-color:#2563eb;background:#2563eb1f}.action-button--primary{border-color:transparent;border-color:#8eb7a5;background:#2563eb;background:transparent;color:#fff;color:#2563eb;color:#398739}.action-button--primary:hover{background:#afbeef}.action-button--danger{border-color:#dc262659;color:#b91c1c}.action-button--danger:hover{border-color:#dc2626;background:#dc26261f}.action-button--primary:disabled{background:#94a3b8}.actions-stack .primary-outline{padding:.35rem .75rem;font-size:.85rem}.icon-button{display:inline-flex;align-items:center;gap:.25rem}.icon-button .icon{width:.85rem;height:.85rem}.signer-summary{font-weight:600;color:#0f172a}.empty-state{padding:1rem;border:1px dashed #cbd5f5;border-radius:.75rem;background:#f8fafc;color:#475569}.badge{display:inline-flex;align-items:center;justify-content:center;padding:.2rem .65rem;border-radius:999px;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.badge.compact{padding:.2rem .5rem;font-size:.7rem}.badge.muted{background:#e2e8f0;color:#475569}.badge.status-draft{background:#fef3c7;color:#92400e}.badge.status-pending,.badge.status-viewed{background:#e0e7ff;color:#3730a3}.badge.status-signed{background:#dcfce7;color:#166534}.badge.status-rejected{background:#fee2e2;color:#b91c1c}.modal-backdrop{position:fixed;inset:0;background:#0f172abf;display:flex;justify-content:center;align-items:flex-start;padding:2rem 1rem;z-index:100;overflow-y:auto}.modal{background:#fff;border-radius:1.25rem;padding:1.5rem;max-width:720px;width:100%;box-shadow:0 35px 45px #0f172a59}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.modal-header button{border:none;background:transparent;font-size:1.5rem;cursor:pointer;color:#475569}.document-form{background:#f8fafc;border-radius:1rem;padding:1rem}.document-form .signers-section{background:#fff}.document-form .form-actions{justify-content:flex-end}.document-form .signers-header .link{border:1px solid #dbeafe;background:#eff6ff;color:#1d4ed8;padding:.25rem .65rem;border-radius:.65rem;display:inline-flex;align-items:center;gap:.25rem;transition:background .2s,border-color .2s,color .2s;font-weight:600;font-size:.85rem}.document-form .signers-header .link:before{content:"✚";font-size:.95rem}.document-form .signers-header .link:hover{background:#dbeafe;border-color:#c3ddfd;color:#1e3a8a}.document-form .signer-card-header .link{border:1px solid #fecaca;background:#fef2f2;color:#b91c1c;padding:.2rem .55rem;border-radius:.65rem;display:inline-flex;align-items:center;gap:.25rem;transition:background .2s,border-color .2s,color .2s;font-weight:600;font-size:.8rem}.document-form .signer-card-header .link:before{content:"−";font-size:.9rem}.document-form .signer-card-header .link:hover{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.signer-card-0,.signer-card-1,.signer-card-2,.signer-card-3{background:linear-gradient(135deg,#6366f12e,#6366f10a)}.witness-card-0,.witness-card-1,.witness-card-2,.witness-card-3{background:linear-gradient(135deg,#ec48992e,#ec48990a)}.signer-role-hint{margin:.4rem 0 0;font-size:.85rem;color:#475569}.toast{position:fixed;top:1.5rem;right:1.5rem;min-width:260px;padding:1rem 1.25rem;border-radius:.9rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-weight:600;box-shadow:0 12px 35px #0f172a40;z-index:20}.toast button{border:none;background:transparent;color:inherit;font-size:1.25rem;cursor:pointer}.toast.success{background:#16a34a;color:#f0fdf4}.toast.error{background:#fee2e2;color:#991b1b}@media(max-width:640px){.layout-grid{margin-top:-3rem}.panel{padding:1.25rem}.panel-header{flex-direction:column;align-items:flex-start}.panel-actions{width:100%;justify-content:flex-start}.modal{padding:1rem}.document-form{padding:.5rem}}.document-validator{padding:3rem 1rem 4rem;background:linear-gradient(180deg,#e8f0ff,#d0ddff 45%,#f4f7fc);display:flex;justify-content:center}.document-validator .container{background:#fffffff2;border-radius:1.75rem;padding:clamp(2rem,3vw,2.75rem);box-shadow:0 25px 65px #0f172a2e;border:1px solid rgba(99,102,241,.2);width:min(760px,100%)}.document-validator h2{margin:0;color:#0f172a;font-size:clamp(1.9rem,3vw,2.4rem)}.document-validator p{color:#475569;margin:0 0 1.25rem;line-height:1.6}.document-validator label{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1.25rem}.document-validator input[type=text],.document-validator input[type=file]{padding:.9rem 1rem;border-radius:.75rem;border:1px solid rgba(15,23,42,.15);font-size:1rem;background:#f9fafb}.document-validator .validator-file-label span{font-weight:600;color:#0f172a}.document-validator .file-input-wrapper{position:relative;display:flex;align-items:center;border-radius:.85rem;border:1px solid rgba(37,99,235,.4);background:#eff2ff;overflow:hidden}.document-validator .file-input-wrapper input[type=file]{opacity:0;position:absolute;inset:0;cursor:pointer}.document-validator .file-input-text{flex:1;padding:.9rem 1rem;color:#0f172a;font-weight:600}.document-validator button{padding:.85rem 1.8rem;border-radius:999px;border:none;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.document-validator button.primary{background:linear-gradient(135deg,#38bdf8,#2563eb);color:#0b1220;box-shadow:0 15px 40px #2563eb59}.document-validator button.primary:disabled{background:#9bb8ff}.document-validator button:not(.primary){border:1px solid rgba(15,23,42,.2);background:transparent;color:#0f172a}.document-validator button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.document-validator .validator-error{color:#dc2626}.document-validator .validator-header{display:flex;gap:1rem;align-items:center;margin-bottom:1.25rem}.document-validator .validator-header img{width:102px;height:102px;object-fit:contain}.document-validator .validator-strapline{margin:0;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:#6366f1}.validator-result{margin-top:1.5rem;padding:1.25rem;border-radius:1rem;border:1px solid rgba(15,23,42,.2);background:#1b2a4d;background:#cad6f3;color:#bbbdc3;color:#f5f5f5;word-wrap:break-word}.validator-result.valid{border-color:#3b73eb99;color:#fff}.validator-result.invalid{border-color:#dc2626cc;background:#dc26261f;color:#0f172a}.validator-result a{color:#04719fd5;text-decoration:underline}.validator-result p{color:#1e272c;text-decoration:underline}.validator-warning{margin-top:1rem;padding:.8rem;border-radius:.9rem;background:#fef3c7;color:#92400e;font-weight:600}.validator-details{margin-top:1.25rem;padding:1.25rem;border-radius:1rem;background:#ffffff1f;border:1px solid rgba(255,255,255,.3)}.validator-details h3{margin:0 0 .75rem;font-size:1rem;color:inherit;color:green}.validator-details dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin:0}.validator-details dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#e1dedee8;color:green}.validator-details dd{margin:.15rem 0 0;font-weight:600;color:#f8fbff;color:green}.validator-json-area{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem;border-top:1px solid rgba(15,23,42,.12);padding-top:.75rem}.validator-json-area button{align-self:flex-start;background:#3b82f633;background:#3b82f6cc;border:3px solid rgba(59,130,246,.8);border-radius:.75rem;padding:.4rem .9rem;color:#e0e7ff;color:red;font-weight:600}.validator-json-area-duplicado{margin-top:1.25rem;border-top:1px solid rgba(15,23,42,.12);padding-top:.75rem}.validator-json{max-height:320px;overflow:auto;background:#edf6f6;border-radius:.75rem;padding:.9rem;color:#01011b;font-size:.85rem;line-height:1.4}.signature-pad{border:0px solid #cbd5f5;border-radius:.75rem;padding:0rem;background:#f8fafc;display:flex;flex-direction:column;gap:.35rem;width:min(100%,720px);margin:0 auto 0 0%;cursor:pointer}.signature-pad .link.compact{align-self:flex-start}.signature-canvas{width:100%;height:160px;border-radius:.5rem;background:#fff;cursor:default;position:relative;border:1px solid #cbd5f5;box-shadow:inset 0 0 0 1px #0f172a14;touch-action:none}
