:root{--navy:#0d174f;--blue:#55c7f1;--ink:#172033;--muted:#65708a;--line:#dfe4ee;--bg:#f4f6fa;--danger:#9e2430;--warn:#7a5300;--ok:#246b45;--soft-blue:#edf9fe;}
*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:14px}.app-header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:var(--navy);color:#fff;box-shadow:0 2px 12px #0002}.brand-wrap{display:flex;align-items:center;gap:15px}.brand-logo{width:190px;max-height:64px;object-fit:contain}.brand-wrap h1{margin:0;font-size:20px}.brand-wrap p{margin:2px 0 0;color:#cfeeff;font-size:12px}.version-pill{display:inline-flex;vertical-align:2px;background:#ffffff20;border:1px solid #ffffff40;border-radius:20px;padding:2px 7px;font-size:10px;margin-left:4px}.header-actions{display:flex;gap:8px;flex-wrap:wrap}.btn{border:0;border-radius:8px;padding:9px 13px;font-weight:700;cursor:pointer;transition:.15s transform,.15s opacity}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-primary{background:var(--blue);color:var(--navy)}.btn-secondary{background:#fff;color:var(--navy);border:1px solid #d9e1ef}.btn-ghost{background:#ffffff14;color:#fff;border:1px solid #ffffff55}.btn-small{padding:7px 10px;background:var(--navy);color:#fff}.btn-danger-small{padding:7px 10px;background:#fff0f2;color:var(--danger);border:1px solid #f1bec5}.btn-danger-outline{background:#fff;color:var(--danger);border:1px solid #e5b0b8}.layout{display:grid;grid-template-columns:minmax(470px,590px) 1fr;gap:16px;padding:16px;align-items:start}.editor-panel{min-width:0}.compact-banner{margin-bottom:12px}.quick-card,.output-card{background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:12px;padding:18px;box-shadow:0 4px 18px #18203b0b}.quick-card{border-top:4px solid var(--blue)}.quick-card-head{display:flex;justify-content:space-between;gap:18px;align-items:center}.quick-card h2,.output-card h2{margin:4px 0 4px;color:var(--navy);font-size:22px}.quick-card p,.output-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.eyebrow{color:#2b87aa;font-size:10px;font-weight:900;letter-spacing:1.5px}.completion-ring{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--blue) 0%,#e7ebf2 0);position:relative;flex:0 0 auto}.completion-ring:after{content:"";position:absolute;inset:6px;background:#fff;border-radius:50%}.completion-ring span{position:relative;z-index:1;font-weight:900;color:var(--navy);font-size:12px}.quick-grid{margin-top:16px}.quick-actions,.record-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.form-card{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:12px;overflow:hidden}.form-card summary{cursor:pointer;font-weight:800;font-size:15px;padding:15px 17px;background:#fbfcff;border-bottom:1px solid transparent}.form-card[open] summary{border-color:var(--line)}.form-card> :not(summary){margin-left:17px;margin-right:17px}.form-card> :last-child{margin-bottom:17px}.grid{display:grid;gap:12px;margin-top:15px}.grid.two{grid-template-columns:1fr 1fr}.span2{grid-column:1/-1}label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#3e485f}input,select,textarea{width:100%;border:1px solid #cfd6e3;border-radius:7px;padding:9px 10px;font:inherit;color:var(--ink);background:#fff}input:focus,select:focus,textarea:focus{outline:2px solid #55c7f140;border-color:var(--blue)}textarea{resize:vertical}.input-action{display:grid;grid-template-columns:1fr auto}.input-action input{border-radius:7px 0 0 7px}.mini-action{border:1px solid #cfd6e3;border-left:0;border-radius:0 7px 7px 0;background:var(--soft-blue);color:var(--navy);font-weight:800;padding:0 10px;cursor:pointer;font-size:11px}.field-help{font-size:10.5px;color:var(--muted);font-weight:500}.section-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.toolbar-wrap{align-items:flex-start}.section-toolbar p{margin:0;color:var(--muted);font-size:12px}.inline-actions{display:flex;gap:6px;flex:0 0 auto}.tenant-card{border:1px solid var(--line);border-radius:10px;padding:12px;margin:12px 0;background:#fafbfe}.tenant-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.tenant-head strong{color:var(--navy)}.remove-link{border:0;background:none;color:var(--danger);font-weight:700;cursor:pointer}.toggle-row{margin:15px 0}.toggle-row label,.toggle-grid label{flex-direction:row;align-items:center;gap:8px}.toggle-row input,.toggle-grid input{width:auto}.toggle-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.conditional{margin:12px 17px!important;padding:12px;border-left:3px solid var(--blue);background:#f7fcff}.hidden{display:none!important}.notice{padding:11px 13px;border-radius:9px;margin-bottom:12px;line-height:1.45}.notice-info{background:#eaf8ff;border:1px solid #b6e8fb}.notice-warning{background:#fff7df;border:1px solid #f0d990;color:#5e470e}.notice-error{background:#fff0f2;border:1px solid #f2b5bd;color:#7a1421}.validation-box{font-size:12px;margin-top:12px}.validation-box .warn{color:var(--warn);margin:4px 0}.validation-box .ok{color:var(--ok);margin:4px 0}.muted{color:var(--muted);font-size:12px}.template-status{padding:9px 11px;border-radius:8px;background:#f5f7fb;border:1px solid var(--line);font-size:12px;margin-top:13px}.template-status.ok{background:#eef9f3;border-color:#bfe3cf;color:var(--ok)}.merge-tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 14px;font-size:11px;align-items:center}.merge-tags strong{width:100%;color:var(--muted)}.merge-tags code{background:#eef2f8;padding:4px 6px;border-radius:5px;color:#34405a}.output-card{border-left:4px solid var(--navy)}.output-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.output-button{border:1px solid #d9dfeb;border-radius:10px;background:#fff;padding:12px;text-align:left;cursor:pointer;color:var(--navy)}.output-button:hover{border-color:var(--blue);background:#f8fdff}.output-button:disabled{opacity:.5;cursor:not-allowed}.output-button span{display:block;font-weight:900;margin-bottom:3px}.output-button small{color:var(--muted)}.primary-output{background:var(--navy);color:#fff;border-color:var(--navy)}.primary-output small{color:#d5eefa}.preview-panel{position:sticky;top:92px;min-width:0}.preview-top{display:flex;justify-content:space-between;align-items:center;color:#fff;background:#252f4f;padding:9px 12px;border-radius:10px 10px 0 0;font-size:12px}.preview-top span{color:#cdd5e6}.paper-shell{height:calc(100vh - 146px);overflow:auto;background:#cbd1dc;padding:16px;border-radius:0 0 10px 10px}.agreement-paper{width:210mm;min-height:297mm;margin:0 auto;background:#fff;padding:15mm 15mm 18mm;box-shadow:0 2px 12px #0003;font-family:Arial,sans-serif;color:#111;font-size:10.2pt;line-height:1.35}.doc-masthead{background:var(--navy);padding:10mm 12mm;margin:-15mm -15mm 8mm;display:flex;align-items:center;justify-content:space-between;min-height:36mm}.doc-masthead img{width:78mm;max-height:28mm;object-fit:contain}.doc-masthead .doc-tag{color:#d8f2ff;text-align:right;font-size:9pt;line-height:1.4}.doc-title{text-align:center;margin:0 0 2mm;font-size:19pt;letter-spacing:.2px;color:var(--navy)}.doc-subtitle{text-align:center;margin:0 0 6mm;font-size:10.5pt}.doc-warning{border:1px solid #bfc8d7;background:#f7f9fc;padding:4mm;margin:0 0 5mm;font-weight:700}.key-terms{display:grid;grid-template-columns:1fr 1fr;border:1px solid #cfd8e6;border-radius:2mm;overflow:hidden;margin:0 0 6mm;break-inside:avoid}.key-term{padding:3mm 4mm;border-bottom:1px solid #e0e5ee}.key-term:nth-child(odd){border-right:1px solid #e0e5ee}.key-term:nth-last-child(-n+2){border-bottom:0}.key-term small{display:block;color:#667087;font-size:7.8pt;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5mm}.key-term strong{color:var(--navy)}.doc-date{margin:4mm 0 6mm;font-weight:700}.section-title{font-size:14pt;color:var(--navy);border-bottom:1.5px solid var(--blue);padding-bottom:1.5mm;margin:7mm 0 3mm}.subsection-title{font-size:11.5pt;color:var(--navy);margin:5mm 0 2mm}.clause{margin:0 0 2.1mm}.clause-num{font-weight:700;color:#1b2750;margin-right:2mm}.info-block{border:1px solid #d4dae5;border-radius:2mm;padding:3mm 4mm;margin:2.5mm 0 4mm;background:#fbfcfe;break-inside:avoid}.info-grid{display:grid;grid-template-columns:34mm 1fr;gap:1.5mm 3mm}.info-grid .k{font-weight:700;color:#4b556b}.party-block{margin:2mm 0 3mm;break-inside:avoid}.party-block h4{margin:0 0 2mm;color:var(--navy);font-size:10.5pt}.doc-note{font-size:9.2pt;color:#39435b}.signature-section{margin-top:7mm}.signature-block{border:1px solid #cbd2df;border-radius:2mm;padding:4mm;margin:4mm 0;break-inside:avoid}.signature-line{height:13mm;border-bottom:1px solid #5c6679;margin-bottom:2mm}.sig-grid{display:grid;grid-template-columns:1fr 1fr;gap:5mm}.pdf-footer-space{height:2mm}.page-break-before{break-before:page;page-break-before:always}.pack-cover{min-height:255mm;display:flex;flex-direction:column;justify-content:center;text-align:center}.pack-cover img{width:115mm;max-height:50mm;object-fit:contain;margin:0 auto 12mm}.pack-cover h1{font-size:27pt;color:var(--navy);margin:0 0 5mm}.pack-cover .address{font-size:15pt;margin:0 0 10mm}.pack-meta{max-width:140mm;margin:0 auto;text-align:left;border:1px solid #d8deea;border-radius:3mm;overflow:hidden}.pack-meta div{display:grid;grid-template-columns:45mm 1fr;border-bottom:1px solid #e4e8f0;padding:3mm 4mm}.pack-meta div:last-child{border-bottom:0}.pack-meta b{color:var(--navy)}.pack-note{max-width:140mm;margin:8mm auto 0;color:#606b82;font-size:9pt;line-height:1.5}.dps-details{display:grid;grid-template-columns:1fr 1fr;gap:3mm;margin:4mm 0 6mm}.dps-details .info-block{margin:0}.approved-text{white-space:pre-wrap;line-height:1.55;font-size:10.2pt}.approved-text p{margin:0 0 3mm}.export-paper{position:relative;left:auto;top:auto;box-shadow:none;z-index:auto}.toast{position:fixed;right:18px;bottom:18px;background:#1d2948;color:#fff;padding:11px 14px;border-radius:9px;box-shadow:0 6px 22px #0003;z-index:50;font-size:12px}@media(max-width:1200px){.layout{grid-template-columns:1fr}.preview-panel{position:relative;top:auto}.paper-shell{height:800px}}@media(max-width:700px){.app-header{align-items:flex-start;gap:10px;flex-direction:column}.brand-logo{width:150px}.layout{padding:9px}.grid.two,.toggle-grid,.output-grid{grid-template-columns:1fr}.span2{grid-column:auto}.paper-shell{display:none}.preview-panel{display:none}.header-actions{width:100%}.header-actions .btn{flex:1}.agreement-paper{width:auto}.editor-panel{min-width:0}.quick-card-head{align-items:flex-start}.completion-ring{display:none}.section-toolbar{align-items:flex-start;flex-direction:column}.inline-actions{width:100%}.inline-actions button{flex:1}}@media print{body{background:#fff}.app-header,.editor-panel,.preview-top{display:none!important}.layout{display:block;padding:0}.preview-panel{position:static}.paper-shell{height:auto;overflow:visible;background:#fff;padding:0}.agreement-paper{box-shadow:none;margin:0;width:auto;min-height:0;padding:0}}
.deed-bullet{margin:0 0 1.8mm 8mm;line-height:1.4}.deed-parties{padding:2mm 4mm}.deed-party-row{display:grid;grid-template-columns:9mm 1fr;gap:3mm;padding:2.2mm 0;border-bottom:1px solid #e4e8ef}.deed-party-row:last-child{border-bottom:0}.deed-party-no{font-weight:800;color:var(--navy)}

/* v4 optional-clause controls */
.option-heading{margin:18px 0 8px;color:var(--navy);font-size:13px}.clause-option-list{display:grid;gap:8px;margin:8px 0 16px}.clause-option{display:flex;flex-direction:row;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:9px;padding:10px 11px;background:#fbfcff;cursor:pointer}.clause-option input{width:auto;margin-top:2px}.clause-option span{display:block}.clause-option strong{display:block;color:var(--navy);font-size:12px}.clause-option small{display:block;color:var(--muted);font-size:10.5px;font-weight:500;line-height:1.4;margin-top:2px}.utility-option-box{border:1px solid var(--line);border-radius:9px;padding:11px;background:#fbfcff;margin:10px 0 0}

/* v4 PDF export staging: keep the capture in the renderable viewport. */
.export-stage{position:absolute;left:0;top:0;width:210mm;z-index:99990;background:#fff;pointer-events:none}.export-stage .agreement-paper{margin:0;box-shadow:none}.export-overlay{position:fixed;inset:0;z-index:100000;background:rgba(10,20,50,.72);display:grid;place-items:center}.export-overlay-card{background:#fff;border-radius:12px;padding:20px 24px;min-width:260px;box-shadow:0 12px 40px #0005;text-align:center;color:var(--navy)}.export-overlay-card strong,.export-overlay-card span{display:block}.export-overlay-card span{margin-top:5px;color:var(--muted);font-size:12px}
