.contract-page { margin:0; background:var(--surface-elevated); color:var(--text-primary); font:16px/1.6 system-ui,-apple-system,"Segoe UI",sans-serif; letter-spacing:0; }
html[data-design="v2"][data-theme="light"] body.contract-page { --color-primary:var(--accent-emerald-hover); --color-primary-hover:var(--accent-emerald); --text-muted:var(--text-secondary); background:var(--surface-elevated) !important; }
html[data-design="v2"] body.contract-page::before, html[data-design="v2"] body.contract-page::after { display:none !important; }
html[data-design="v2"] body.contract-page a { color:var(--color-primary) !important; }
html[data-design="v2"] body.contract-page .contract-main button { background:var(--color-primary) !important; color:var(--surface-elevated) !important; border-radius:6px !important; box-shadow:none !important; }
html[data-design="v2"] body.contract-page .contract-main button:hover { background:var(--color-primary-hover) !important; }
.contract-page *, .contract-page *::before, .contract-page *::after { box-sizing:border-box; letter-spacing:0; }
.contract-page [hidden] { display:none !important; }
.contract-header { display:flex; align-items:center; justify-content:space-between; gap:16px; max-width:960px; margin:auto; padding:24px; border-bottom:1px solid var(--border); }
.contract-brand { display:flex; align-items:center; gap:10px; font-size:20px; font-weight:750; color:var(--text-primary); text-decoration:none; }
.contract-brand img { flex:none; }
.contract-header > span { color:var(--text-muted); font-size:13px; }
.contract-main { max-width:640px; padding:32px 24px 48px; margin:auto; }
.contract-main h1 { font-size:28px; line-height:1.3; margin:0 0 24px; }
.contract-main h2 { font-size:22px; line-height:1.4; }
.contract-choices { display:flex; flex-wrap:wrap; gap:12px 24px; margin-bottom:20px; }
.contract-page a { color:var(--color-primary); text-underline-offset:4px; overflow-wrap:anywhere; }
.contract-choices a { min-height:44px; display:inline-flex; align-items:center; font-weight:650; }
.contract-choices a[aria-current="page"] { text-decoration-thickness:3px; }
.contract-choices a[aria-disabled="true"] { pointer-events:none; opacity:.7; }
.contract-main p { overflow-wrap:anywhere; }
.contract-main fieldset { border:0; padding:0; margin:24px 0; min-width:0; }
.contract-main legend { font-size:18px; font-weight:650; margin-bottom:16px; }
.contract-main label { display:block; margin:18px 0 6px; font-size:14px; font-weight:650; }
.contract-main input, .contract-main select, .contract-main textarea { display:block; width:100%; min-height:48px; border:1px solid var(--border-strong); border-radius:6px; background:var(--surface-elevated); color:var(--text-primary); padding:10px 12px; font:inherit; }
.contract-main textarea { resize:vertical; }
.contract-hint { margin:6px 0 14px; color:var(--text-muted); font-size:13px; }
.contract-main button { min-height:48px; max-width:100%; padding:12px 20px; border:0; border-radius:6px; background:var(--color-primary); color:white; font:600 16px/1.4 system-ui,sans-serif; cursor:pointer; overflow-wrap:anywhere; }
.contract-main button:hover { background:var(--color-primary-hover); }
.contract-main button:disabled { opacity:.65; cursor:wait; }
.contract-page :focus-visible { outline:3px solid var(--color-primary); outline-offset:3px; }
.contract-declaration-text { border-top:1px solid var(--border); padding-top:20px; font-weight:550; }
#contract-turnstile { margin:20px 0; min-height:65px; }
#contract-status { min-height:24px; color:var(--text-secondary); }
#contract-status[data-error="true"] { color:var(--color-danger); }
#contract-receipt { border-top:1px solid var(--border); padding-top:20px; }
#receipt-text { white-space:pre-wrap; overflow-wrap:anywhere; font:13px/1.7 system-ui,sans-serif; padding:20px 0; margin:16px 0 0; }
.contract-footer { max-width:960px; margin:auto; border-top:1px solid var(--border); display:flex; flex-wrap:wrap; gap:24px; padding:24px; font-size:13px; }
@media (max-width:480px) { .contract-header { padding:16px; flex-wrap:wrap; } .contract-main { padding:24px 16px 32px; } .contract-main h1 { font-size:24px; } .contract-header > span { font-size:12px; } }
