/* Contract-only content. Shells, controls and navigation live in the ops design system. */
[hidden] { display: none !important; }

.issue-count { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; background: #fff; color: var(--ops-color-primary); font-size: .7rem; }

/* Fixed A4 contract document recipe. */
.paper { position: relative; width: 210mm; min-height: 297mm; padding: 18mm 17mm 17mm; background: var(--ops-color-paper); color: var(--ops-color-ink); font-family: var(--ops-font-sans); box-shadow: 0 28px 65px rgba(0, 31, 48, .16); }
.paper-head { display: flex; align-items: flex-start; justify-content: space-between; padding-bottom: 8mm; border-bottom: 1px solid #d9e5e8; }
.paper-logo { width: 31mm; }
.paper-ref { color: #67777c; font-size: 7.4pt; line-height: 1.45; text-align: right; }
.paper-ref strong { display: block; color: var(--ops-color-primary); font-size: 9pt; }
.doc-kicker { margin-top: 10mm; color: var(--ops-color-green); font-size: 7.5pt; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.paper h1 { margin: 3mm 0 8mm; font-size: 25pt; line-height: 1.05; letter-spacing: -.04em; }
.paper h2 { margin: 6mm 0 3mm; padding-bottom: 2mm; border-bottom: 1px solid #d9e5e8; color: #111; font-size: 12.5pt; letter-spacing: -.02em; }
.paper h3 { margin: 3.2mm 0 1.4mm; color: var(--ops-color-primary); font-size: 9pt; }
.paper p,
.paper li { margin: 0 0 2.3mm; font-size: 8.15pt; line-height: 1.52; }
.paper ol,
.paper ul { margin: 0; padding-left: 5mm; }
.paper .summary-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 5mm; margin: 8mm 0; padding: 6mm; border-left: 1.2mm solid var(--ops-color-teal); background: #f6fafb; }
.summary-grid span { display: block; color: #6b777b; font-size: 7pt; }
.summary-grid strong { display: block; margin-top: 1mm; color: var(--ops-color-primary); font-size: 9pt; }
.cover { display: flex; flex-direction: column; }
.cover .cover-main { display: grid; flex: 1; align-content: center; padding: 10mm 0 25mm; }
.cover h1 { max-width: 145mm; font-size: 34pt; }
.cover-client { margin-top: 8mm; padding: 7mm 0; border-top: 1px solid #d9e5e8; border-bottom: 1px solid #d9e5e8; }
.cover-client span { display: block; color: #6b777b; font-size: 8pt; }
.cover-client strong { display: block; margin-top: 2mm; color: var(--ops-color-primary); font-size: 18pt; }
.cover > p { position: absolute !important; right: 17mm; bottom: 27mm; left: 17mm; margin: 0 !important; }
.paper-footer { position: absolute; right: 17mm; bottom: 10mm; left: 17mm; display: grid; min-height: 12mm; grid-template-columns: 1fr auto auto; align-items: center; gap: 4mm; padding-top: 4mm; border-top: 1px solid #d9e5e8; background: #fff; color: #6b777b; font-size: 7pt; }
.paper-footer > span { display: flex; min-height: 9mm; flex-direction: column; justify-content: center; gap: .7mm; line-height: 1.15; }
.paper-footer strong { color: var(--ops-color-primary); }
.footer-brand > span,
.footer-contact > span { display: block; }
.footer-contact { text-align: right; }
.page-number { display: grid; min-width: 8mm; min-height: 9mm; place-items: center; border-left: 1px solid #9db7bf; padding-left: 4mm; color: var(--ops-color-primary); font-size: 9pt; line-height: 1; }
.signature-box { margin: 8mm 0 0; padding: 6mm; border-left: 1.2mm solid var(--ops-color-teal); background: #f6fafb; }
.signature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10mm; }
.signature-line { margin-top: 12mm; border-top: 1px solid #9db7bf; padding-top: 2mm; font-size: 7pt; }
.commercial-table { width: 100%; margin-top: 5mm; border-collapse: collapse; table-layout: fixed; }
.commercial-table th,
.commercial-table td { overflow-wrap: anywhere; padding: 3mm; border-bottom: 1px solid #d9e5e8; font-size: 8pt; text-align: left; }
.commercial-table th { color: #68777c; font-size: 7pt; text-transform: uppercase; }
.commercial-table th:first-child,
.commercial-table td:first-child { width: 38%; }
.draft-watermark { position: absolute; top: 50%; left: 50%; z-index: 0; color: rgba(0, 95, 129, .045); font-size: 72pt; font-weight: 900; letter-spacing: .15em; pointer-events: none; transform: translate(-50%, -50%) rotate(-28deg); }
.paper > *:not(.draft-watermark) { position: relative; z-index: 1; }
.paper:nth-child(2) > h1 { font-size: 23pt; white-space: nowrap; }
.paper:nth-child(2) > h1 br { display: none; }
.paper:last-child h1 { margin-bottom: 4mm; font-size: 22pt; }
.paper:last-child h2 { margin-top: 4mm; }
.paper:last-child .signature-box { margin-top: 4mm; padding: 4mm; }
.paper:last-child .signature-line { margin-top: 7mm; }

/* Contract review, history and archive-link surfaces. */
.review-drawer { position: fixed; inset: 0 0 0 auto; z-index: var(--ops-z-context-drawer); width: min(470px, 94vw); padding: 32px; background: #fff; box-shadow: -22px 0 70px rgba(0, 31, 48, .18); visibility: hidden; transform: translateX(103%); transition: .35s; }
.review-drawer.open { visibility: visible; transform: none; }
.review-head { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--ops-color-line); }
.review-head h2 { margin: 5px 0 0; }
.review-head button { border: 0; background: transparent; color: var(--ops-color-primary); font-size: 1.8rem; }
.review-intro { color: var(--ops-color-muted); font-size: .82rem; line-height: 1.5; }
.review-drawer ol { display: grid; gap: 12px; padding: 0; list-style: none; counter-reset: issues; }
.review-drawer li { padding: 16px; border-left: 3px solid #d8a719; background: #fffaf0; counter-increment: issues; }
.review-drawer li::before { display: block; margin-bottom: 6px; color: #987108; content: counter(issues, decimal-leading-zero); font-size: .67rem; font-weight: 850; }
.review-drawer li strong,
.review-drawer li span { display: block; }
.review-drawer li span { margin-top: 5px; color: #5f6c71; font-size: .78rem; line-height: 1.45; }
.toast { position: fixed; right: 28px; bottom: 28px; z-index: var(--ops-z-toast); padding: 13px 17px; border-radius: var(--ops-radius-sm); background: var(--ops-color-navy); color: #fff; font-size: .8rem; opacity: 0; pointer-events: none; transform: translateY(12px); transition: .2s; }
.toast.show { opacity: 1; transform: none; }
.history-list { display: grid; gap: 12px; margin-top: 22px; }
.history-list article { padding: 16px; border: 1px solid var(--ops-color-line); border-radius: var(--ops-radius-md); background: #f8fbfc; }
.history-list article > div { display: flex; align-items: center; justify-content: space-between; }
.history-list p { color: var(--ops-color-muted); font-size: .78rem; line-height: 1.5; }
.history-list button { border: 0; background: transparent; padding: 0; color: var(--ops-color-primary); font-size: .75rem; font-weight: 800; }
