.contract-body{min-height:100vh}.contract-shell{position:relative;z-index:1;width:min(100%,48rem);margin:0 auto;padding:clamp(1.5rem,4vh,2.5rem) var(--pad-x) 4rem}.contract-head{margin-bottom:1.5rem;text-align:center}.contract-brand{margin:0;font-family:var(--font-display);font-size:clamp(1.8rem,4vw,2.4rem);letter-spacing:.18em}.contract-lead{margin:.75rem 0 0;color:var(--ink-muted);letter-spacing:.06em;line-height:1.8}.contract-progress{margin:.65rem 0 0;color:var(--gold-soft);letter-spacing:.18em;font-size:.88rem}.contract-change{margin-bottom:1rem;padding:1rem 1.1rem;border:1px solid rgba(196,92,58,.4);background:#281012b8}.contract-change-title{margin:0 0 .65rem;color:#f0c2b0;font-size:1rem;letter-spacing:.14em}.contract-change-label{margin:.7rem 0 .35rem;color:var(--gold-soft);font-size:.82rem;letter-spacing:.12em}.contract-change-list{margin:0;padding-left:1.1rem;color:var(--ink-muted);font-size:.88rem;line-height:1.7}.contract-change-from{margin:.25rem 0 0;color:#c09090;text-decoration:line-through}.contract-change-to{margin:.15rem 0 0;color:#e8d2a8}.contract-skip-tip{margin:0 0 1rem;padding:.85rem 1rem;border:1px solid rgba(216,180,110,.35);color:var(--gold-soft);letter-spacing:.08em;text-align:center}.contract-item.is-accepted{opacity:.78}.contract-item.is-pending{background:#c45c3a0f}.contract-badge.is-accepted{border-color:#d8b46e59;color:var(--gold-soft)}.contract-badge.is-pending{border-color:#c45c3a80;color:#f0c2b0}.contract-loading{text-align:center;color:var(--ink-faint);letter-spacing:.2em}.contract-form{margin-top:0;padding:0;border:0;background:transparent;display:grid;gap:1rem}.contract-list{margin:0;padding:0;list-style:none;border:1px solid var(--line);background:#0c0609b8;max-height:min(58vh,560px);overflow:auto}.contract-item{border-bottom:1px solid rgba(216,180,110,.12)}.contract-item:last-child{border-bottom:0}.contract-check{display:flex;gap:.85rem;align-items:flex-start;padding:1rem 1.1rem;cursor:pointer}.contract-check input{margin-top:.35rem;width:1.05rem;height:1.05rem;flex:0 0 auto;accent-color:#d8b46e}.contract-check:has(input:checked){background:#d8b46e0f}.contract-body-text{min-width:0;flex:1}.contract-item-head{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin-bottom:.45rem}.contract-no{color:var(--gold);letter-spacing:.12em;font-size:.85rem}.contract-badge{display:inline-block;padding:.15rem .45rem;border:1px solid rgba(196,92,58,.45);color:#f0c2b0;font-size:.72rem;letter-spacing:.08em}.contract-badge.is-dup{border-color:#d8b46e59;color:var(--gold-soft)}.contract-text{margin:0;color:var(--ink-muted);font-size:.92rem;line-height:1.85;letter-spacing:.03em}.contract-note{margin:.45rem 0 0;color:#e0a090;font-size:.8rem;line-height:1.6}.contract-submit{padding:.95rem 1rem;border:0;background:linear-gradient(135deg,#edd198,var(--gold) 52%,#b8904a);color:#1a0c10;font-family:var(--font-body);font-size:.95rem;letter-spacing:.28em;cursor:pointer}.contract-submit:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.25)}.contract-msg{margin:0;padding:.7rem .85rem;border:1px solid rgba(196,80,80,.35);color:#f0c4c4;font-size:.88rem}.contract-form[hidden],.contract-done[hidden],.contract-sign-modal[hidden]{display:none!important}.contract-done{display:grid;gap:1rem}.contract-sign-modal{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:1.25rem;background:#060204c7;backdrop-filter:blur(6px)}.contract-sign-card{width:min(100%,36rem);display:grid;gap:1rem;padding:1.25rem 1.2rem 1.35rem;border:1px solid var(--line);background:#0e070af7}.contract-sign-lead,.contract-done-lead{margin:0;color:var(--ink-muted);letter-spacing:.06em;line-height:1.8;text-align:center}.contract-sign-name{margin:0;text-align:center;color:var(--gold-soft);letter-spacing:.12em}.contract-sign-name strong{color:var(--gold);font-weight:600}.contract-sign-meta{margin:.65rem 0 0;padding:0;list-style:none;text-align:center;color:var(--ink-muted);font-size:.9rem;letter-spacing:.06em;line-height:1.75}.contract-sign-meta li span{color:var(--gold-soft);margin-right:.4em}.contract-sign-meta strong{color:var(--ink);font-weight:500;word-break:break-all}.contract-pad-wrap{border:1px solid var(--line);background:#0c0609b8;padding:.75rem}.contract-pad{display:block;width:100%;height:min(38vh,220px);touch-action:none;-ms-touch-action:none;cursor:crosshair;border:1px solid rgba(216,180,110,.28);background:linear-gradient(160deg,#f7f0e4f5,#e9dcc8fa);border-radius:2px;user-select:none}.contract-pad-hint{margin:.55rem 0 0;color:var(--ink-faint);font-size:.82rem;letter-spacing:.08em;text-align:center}.contract-sign-actions{display:flex;flex-wrap:wrap;gap:.65rem}.contract-sign-actions .contract-submit,.contract-sign-actions .contract-btn-ghost,.contract-sign-actions .contract-download{flex:1 1 8rem;text-align:center;text-decoration:none}.contract-btn-ghost{padding:.95rem 1rem;border:1px solid rgba(216,180,110,.35);background:transparent;color:var(--gold-soft);font-family:var(--font-body);font-size:.9rem;letter-spacing:.2em;cursor:pointer}.contract-btn-ghost:hover{border-color:#d8b46e99;color:var(--gold)}.contract-preview-wrap{border:1px solid var(--line);background:#0c0609b8;max-height:min(62vh,640px);overflow:auto}.contract-preview{display:block;width:100%;height:auto}
