.role-grid { width: min(1020px,100%); grid-template-columns:repeat(3,minmax(0,1fr)); }
.role-card strong { font-size:clamp(23px,2.5vw,30px); }
.contractor-role { border-top:4px solid var(--accent); }
.contractor-shell { max-width:800px; }
.contractor-shell [hidden] { display:none !important; }
.contractor-shell h1 { font-size:clamp(26px,5vw,36px); margin:8px 0; }
.contractor-shell h2 { font-size:23px; margin:8px 0 18px; }
.contractor-shell h3 { font-size:18px; }
.contractor-shell .intro { color:var(--muted); line-height:1.7; }
.contractor-shell .back-link { display:inline-block; padding:12px 0; color:var(--accent); font-weight:700; }
.contractor-shell .preview-actions { margin:18px 0 0; }
.contractor-shell .preview-actions button { width:100%; max-width:280px; }
.contractor-progress { background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:16px; margin:20px 0 14px; }
.contractor-progress progress { display:block; width:100%; height:10px; margin-top:12px; accent-color:var(--accent); }
.contractor-shell .form-panel { padding:24px; }
.contractor-shell label { display:grid; gap:8px; margin:14px 0; font-weight:650; }
.contractor-shell input:not([type=checkbox]):not([type=radio]),.contractor-shell textarea,.contractor-shell select { width:100%; min-width:0; min-height:50px; border:1px solid #aabbb2; border-radius:6px; padding:12px; background:white; color:var(--ink); font-size:16px; }
.contractor-shell textarea { min-height:128px; resize:vertical; line-height:1.6; }
.contractor-shell .field-grid { gap:0 20px; }
.contractor-shell .required { color:var(--danger); font-size:13px; }
.contractor-shell small,.contractor-shell .help { color:var(--muted); line-height:1.6; font-size:14px; }
.contractor-shell .entry { padding:12px 16px; border:1px solid var(--line); border-radius:6px; margin:14px 0; background:var(--paper); }
.contractor-shell .entry-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.contractor-shell button { min-height:48px; cursor:pointer; }
.contractor-shell button:disabled { cursor:wait; opacity:.55; }
.contractor-shell .nav { display:flex; gap:12px; margin:20px 0; }
.contractor-shell .nav button { flex:1; }
.contractor-shell .error { padding:16px; border:1px solid var(--danger); background:#fff1ef; color:#8b2218; border-radius:6px; line-height:1.6; }
.contractor-shell .agreement { font-size:17px; line-height:1.9; }
.contractor-shell .agreement li { margin:16px 0; }
.contractor-shell .form-preview { border-color:#739a86; }
.contractor-shell .form-preview h3 { margin:22px 0 10px; }
.contractor-shell .form-preview ul,.contractor-shell .form-preview ol { padding-left:22px; line-height:1.8; }
.contractor-shell .form-preview li { margin:8px 0; }
.contractor-shell .field-sample { color:var(--muted); font-size:14px; }
.contractor-shell .consent-check { display:flex; align-items:flex-start; line-height:1.6; background:var(--soft); padding:16px; border-radius:6px; }
.contractor-shell input[type=checkbox] { flex:0 0 24px; width:24px; height:24px; accent-color:var(--accent); }
.contractor-shell canvas { display:block; width:100%; height:220px; touch-action:none; background:white; border:2px dashed #739a86; border-radius:6px; }
.contractor-shell dl { margin:0; }
.contractor-shell dt { font-weight:700; margin-top:16px; color:var(--muted); }
.contractor-shell dd { margin:5px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.6; }
.contractor-shell .review-signature { width:100%; max-width:500px; height:auto; border:1px solid var(--line); }
.contractor-shell .receipt { padding:30px 24px; text-align:center; line-height:1.8; }
.contractor-shell .receipt-code { overflow-wrap:anywhere; font-weight:800; }
.contractor-shell input[type=radio] { flex:0 0 24px; width:24px; height:24px; margin:0; accent-color:var(--accent); }
.contractor-shell .risk-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.contractor-shell .risk-option { display:flex; align-items:center; gap:10px; margin:0; padding:14px 12px; min-height:58px; border:1px solid var(--line); border-radius:6px; background:var(--paper); font-size:15px; cursor:pointer; }
.contractor-shell .risk-option:has(input:checked) { border-color:var(--accent); background:var(--soft); }
.contractor-shell .risk-option input { margin:0; }
.contractor-shell .guidance-card { margin:12px 0; padding:14px; border-left:3px solid var(--accent); background:var(--soft); line-height:1.6; }
.contractor-shell .guidance-card p { margin:6px 0 0; }
.contractor-shell .risk-table-head,.contractor-shell .risk-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.contractor-shell .risk-table-head { padding:12px 16px 0; font-weight:700; }
.contractor-shell .risk-row label { margin:0; min-width:0; }
.contractor-shell .risk-row textarea { min-height:110px; }
.contractor-shell .risk-row .remove { grid-column:3; }
.contractor-shell .confirmation { font-size:16px; line-height:1.8; }
.contractor-shell .error-link { border:0; background:transparent; color:inherit; text-align:left; text-decoration:underline; padding:6px 0; font:inherit; }
.contractor-shell :focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
@media(max-width:600px) { .contractor-shell .risk-row { grid-template-columns:1fr; } .contractor-shell .risk-row .remove { grid-column:1; } .contractor-shell .risk-table-head { display:none; } .contractor-shell .risk-row textarea { min-height:84px; } }
@media(max-width:380px) { .contractor-shell .risk-options { grid-template-columns:1fr; } }
@media(max-width:760px) { .role-grid { grid-template-columns:1fr; } .contractor-shell .form-panel { padding:16px; } .contractor-shell .field-grid { grid-template-columns:1fr; } .contractor-shell .entry { padding:10px; } }
