.contract-dialog{width:min(1050px,94vw);max-height:90vh;border:1px solid #d8d3cb;border-radius:14px;padding:24px;color:#242624;background:#faf9f6;box-sizing:border-box}.contract-dialog::backdrop{background:#17251d80}.contract-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:12px 0}.contract-dialog button,.contract-sign-page button{min-height:44px;padding:8px 14px;cursor:pointer;border:1px solid #c6ccc4;border-radius:6px;background:#eef2ea;color:#1c3228}.contract-dialog button:disabled{opacity:.55;cursor:wait}.contract-dialog label{display:block;margin:12px 0}.contract-dialog input:not([type=checkbox]),.contract-dialog select,.contract-dialog textarea{box-sizing:border-box;width:100%;padding:10px;border:1px solid #bac3b9;border-radius:5px;background:#fff;color:#202a23;font:inherit}.contract-dialog textarea{min-height:100px}.contract-block{padding:12px;border:1px solid #d6ddd4;margin:10px 0;border-radius:8px}.contract-block .contract-toolbar select{width:auto}.contract-card{border:1px solid #d3d9d0;border-radius:8px;padding:16px;margin:12px 0;background:white}.contract-card h3{margin-top:0}.contract-message{white-space:pre-wrap;color:#784320;min-height:24px}.contract-signers{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.contract-pdf{width:100%;height:55vh;border:1px solid #bfc6be}.contract-sign-page{font:16px/1.6 system-ui,sans-serif;background:#f4f3ef;color:#24382b;margin:0}.contract-sign-page main{max-width:960px;margin:auto;padding:28px}.contract-brand{width:130px;height:auto}.contract-sign-page iframe{display:block;width:100%;height:60vh;border:1px solid #c3cbc0;margin:20px 0}.contract-sign-page label{display:block;margin:18px 0}.contract-sign-page input:not([type=checkbox]){display:block;padding:12px;width:min(90%,420px);font:inherit}.contract-consent{display:flex!important;gap:12px;align-items:flex-start}.contract-consent input{min-width:20px;min-height:20px;margin-top:4px}.contract-sign-page button{background:#243d2c;color:white}.contract-dialog [hidden],.contract-sign-page [hidden]{display:none!important}@media(max-width:640px){.contract-dialog{padding:14px}.contract-toolbar>*{flex-grow:1}.contract-sign-page main{padding:16px}.contract-signers{grid-template-columns:1fr}}
.contract-pdf{overflow:auto;box-sizing:border-box;background:#e4e5df;padding:12px;margin:16px 0;min-height:300px}.contract-pdf-page{background:white;margin:0 auto 14px;min-height:360px;max-width:900px;box-shadow:0 1px 5px #0002}.contract-pdf-page canvas{display:block;width:100%;height:auto}.contract-sign-page .contract-pdf{height:60vh}

/* Keep feedback visible while editing long agreements. */
.contract-header{position:sticky;top:-24px;z-index:2;background:#faf9f6;padding:12px 0;border-bottom:1px solid #d8d3cb;margin-bottom:18px}
.contract-header .contract-toolbar{margin:0;flex-wrap:nowrap;justify-content:space-between;gap:16px}
.contract-header h2{margin:0;font-size:1.5rem;line-height:1.3;overflow-wrap:anywhere}
.contract-header [data-close]{flex:0 0 auto}
.contract-message{min-height:0;margin:10px 0 0;font-size:.9rem;line-height:1.45;overflow-wrap:anywhere}
.contract-message:empty{display:none}
.contract-hint{font-size:.9rem;line-height:1.5;color:#53604f;margin:12px 0}
.contract-dialog fieldset{min-width:0;border:1px solid #d6ddd4;border-radius:8px;padding:12px;background:#fff}
.contract-dialog legend{padding:0 6px;font-weight:600}
.contract-dialog button:disabled{cursor:not-allowed}
.contract-dialog[aria-busy=true] button:disabled{cursor:wait}
.contract-dialog button:focus-visible,.contract-dialog summary:focus-visible{outline:2px solid #668c4a;outline-offset:3px}
.contract-card{overflow-wrap:anywhere}
.contract-history{margin-top:20px;border-top:1px solid #d8d3cb;padding-top:16px}
.contract-history>summary{cursor:pointer;font-weight:600}
.contract-dialog [data-preview-mount]{scroll-margin-top:115px}
.contract-dialog .contract-pdf-page{min-height:0}
@media(max-width:640px){
 .contract-header{top:-14px;padding:10px 0;margin-bottom:14px}
 .contract-header h2{font-size:1.2rem}
 .contract-header .contract-toolbar>*{flex-grow:0}
 .contract-block{padding:10px}
 .contract-block .contract-toolbar{gap:8px}
 .contract-block .contract-toolbar select{max-width:100%;min-width:0}
 .contract-dialog .contract-pdf{padding:6px;min-height:220px}
}

.contract-missing-fields { padding: 12px; margin: 12px 0; border: 1px solid #9b2525; border-radius: 6px; background: #fff0f0; color: #762020; }
.contract-block-missing { border-left: 3px solid #9b2525; padding-left: 12px; }
.contract-block [data-placeholder-highlights] { margin: 8px 0; padding: 10px; background: #fff8df; border-radius: 6px; overflow-wrap: anywhere; }
.contract-block [data-placeholder-highlights] p { margin: 4px 0 8px; font-size: 12px; }
.contract-placeholder-text { white-space: pre-wrap; }
.contract-placeholder-text button { display: inline; padding: 2px; border: 1px solid #966800; border-radius: 3px; background: #ffe49a; font: inherit; color: #332500; }
.contract-placeholder-text mark { background: transparent; color: inherit; }
.contract-placeholder-text button:focus-visible { outline: 2px solid #332500; outline-offset: 2px; }

.contract-divider { border: 0; border-top: 1px solid #a6a6a6; margin: 12px 0; }

@font-face{font-family:FormaSignature;src:url('./assets/vendor/fonts/Caveat.ttf') format('truetype');font-weight:400;font-display:swap}
.contract-signature-row{padding:18px;margin:16px 0;border:1px solid #aab6a6;border-radius:8px;background:#fff;overflow-wrap:anywhere;box-shadow:0 1px 2px #00000008}
.contract-signature-label{font-size:1rem;color:#24382b;margin:0 0 8px;font-weight:700;line-height:1.5}
.contract-signature-status{font-size:.85rem;color:#535a52;margin:4px 0}
.contract-signature-badge{display:inline-block;border:1px solid #d8d3cb;border-radius:5px;padding:3px 9px;margin-bottom:12px;font-size:.8rem;font-weight:600;background:#f4f3ef;color:#535a52}
.contract-signature-badge[data-signed=true]{background:#eaf2e4;border-color:#92ac80;color:#304b22}
.contract-signature-name{font-family:FormaSignature,Poppins,sans-serif;font-size:1.8rem;line-height:1.2;min-height:38px;border-bottom:1px solid #687165;padding:8px 0 5px;margin:0 0 8px;white-space:pre-wrap}
.contract-review-choice,.contract-review-banner{padding:14px;margin:14px 0;background:#f4f2ee;border:1px solid #dedbd2;border-radius:6px}
.contract-review-choice h4{margin:0 0 8px}.contract-review-banner{color:#35482c}

@font-face{font-family:Poppins;src:url("assets/vendor/fonts/Poppins-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
.contract-font-selectors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media(max-width:640px){.contract-font-selectors{grid-template-columns:1fr;gap:0}}
@font-face{font-family:FormaContract-poppins;src:url("assets/vendor/fonts/Poppins-Regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:FormaContract-inter;src:url("assets/vendor/fonts/contracts/inter-regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:FormaContract-lato;src:url("assets/vendor/fonts/contracts/lato-regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:FormaContract-roboto;src:url("assets/vendor/fonts/contracts/roboto-regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:FormaContract-opensans;src:url("assets/vendor/fonts/contracts/opensans-regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:FormaContract-montserrat;src:url("assets/vendor/fonts/contracts/montserrat-regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:FormaContract-lora;src:url("assets/vendor/fonts/contracts/lora-regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:FormaContract-merriweather;src:url("assets/vendor/fonts/contracts/merriweather-regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:FormaContract-poppins;src:url("assets/vendor/fonts/Poppins-Bold.ttf") format("truetype");font-weight:700;font-display:swap}
@font-face{font-family:FormaContract-inter;src:url("assets/vendor/fonts/contracts/inter-bold.ttf") format("truetype");font-weight:700;font-display:swap}
@font-face{font-family:FormaContract-lato;src:url("assets/vendor/fonts/contracts/lato-bold.ttf") format("truetype");font-weight:700;font-display:swap}
@font-face{font-family:FormaContract-roboto;src:url("assets/vendor/fonts/contracts/roboto-bold.ttf") format("truetype");font-weight:700;font-display:swap}
@font-face{font-family:FormaContract-opensans;src:url("assets/vendor/fonts/contracts/opensans-bold.ttf") format("truetype");font-weight:700;font-display:swap}
@font-face{font-family:FormaContract-montserrat;src:url("assets/vendor/fonts/contracts/montserrat-bold.ttf") format("truetype");font-weight:700;font-display:swap}
@font-face{font-family:FormaContract-lora;src:url("assets/vendor/fonts/contracts/lora-bold.ttf") format("truetype");font-weight:700;font-display:swap}
@font-face{font-family:FormaContract-merriweather;src:url("assets/vendor/fonts/contracts/merriweather-bold.ttf") format("truetype");font-weight:700;font-display:swap}

/* Fixed logical coordinates preserve ink across responsive layout changes. */
.contract-sign-page #signatureMethods{border:1px solid #aab6a6;border-radius:8px;padding:12px;margin:18px 0}
.contract-sign-page #signatureMethods label{display:inline-flex;align-items:center;gap:8px;margin:8px 18px 8px 0}
.contract-sign-page #signatureMethods input{display:inline-block;width:auto;min-width:20px;min-height:20px}
.contract-drawing-pad{display:block;box-sizing:border-box;width:100%;max-width:700px;aspect-ratio:10/3;background:#fff;border:2px solid #687165;border-radius:6px;touch-action:none;user-select:none;cursor:crosshair;margin:12px 0}
.contract-saved-drawing{display:block;width:100%;max-width:492px;height:auto;border-bottom:1px solid #687165}
.contract-sign-page button:disabled{opacity:.55;cursor:wait}
.contract-sign-page input:focus-visible,.contract-sign-page button:focus-visible{outline:2px solid #668c4a;outline-offset:3px}
