.consent-page,.consent-steps,.signature-screen{--consent-green:#2f5d3a;--consent-green-deep:#244a2e;--consent-tint:#eaf1ea;--consent-bg:#f5f7f4;--consent-paper:#fff;--consent-ink:#1b241d;--consent-muted:#5c675f;--consent-line:#d7ded8;--consent-stop:#9b3a2a;--consent-error:#a31919;--consent-error-bg:#fdf1ef}body:has(.consent-page){--consent-green:#2f5d3a;--consent-green-deep:#244a2e;--consent-tint:#eaf1ea;--consent-bg:#f5f7f4;--consent-paper:#fff;--consent-ink:#1b241d;--consent-muted:#5c675f;--consent-line:#d7ded8;--consent-stop:#9b3a2a;--consent-error:#a31919;--consent-error-bg:#fdf1ef}body:has(.consent-page){background:var(--consent-bg)}.consent-page{width:min(100% - 2rem,40rem);color:var(--consent-ink);margin:0 auto;padding:1.25rem 0 4rem;line-height:1.8}.consent-page .join-home{color:var(--consent-muted);letter-spacing:.04em;gap:.5rem;font-size:.95rem;font-weight:700}.consent-page .brand-mark{background:var(--consent-green);color:#fff;width:1.6rem;height:1.6rem;font-size:.85rem;transform:none}.consent-page .join-intro{max-width:none;margin:1.5rem 0 1.25rem}.consent-page h1{letter-spacing:0;font-family:inherit;font-size:1.5rem;font-weight:700;line-height:1.4}.consent-page .join-intro p{color:var(--consent-muted);margin:.5rem 0 0;font-size:.95rem}.consent-page .join-form,.consent-page .consent-done{background:var(--consent-paper);border:1px solid var(--consent-line);border-radius:4px;gap:0;padding:0 1.25rem;display:grid}.consent-page .join-step{border-top:1px solid var(--consent-line);gap:.9rem;padding:1.25rem 0}.consent-page .join-step:first-child{border-top:0}.consent-page .join-step h2,.consent-steps .join-step h2{letter-spacing:0;gap:.6rem;font-family:inherit;font-size:1.05rem;font-weight:700;line-height:1.4}.consent-page .join-step h2 span,.consent-steps .join-step h2 span{background:var(--consent-green);color:#fff;border-radius:50%;width:1.5rem;height:1.5rem;font-size:.8rem;font-weight:700;transform:none}.consent-page .join-hint,.consent-steps .join-hint{color:var(--consent-muted);font-size:.875rem}.consent-page .join-hint a,.consent-steps .join-hint a{color:var(--consent-green);text-underline-offset:.2em;text-decoration:underline}.consent-page .contact-notice{background:var(--consent-paper);border:1px solid var(--consent-line);border-radius:4px;margin:0;padding:1.25rem}.consent-page .contact-error,.consent-steps .contact-error{color:var(--consent-error);background:var(--consent-error-bg);border-left:4px solid var(--consent-error);padding:.9rem 1rem}.consent-page .join-form :is(input,select,textarea,summary,button,a):focus-visible,.consent-steps :is(input,button,a,.consent-terms):focus-visible,.signature-screen button:focus-visible{outline:3px solid var(--consent-green);outline-offset:2px}.consent-page .button:hover,.consent-steps .button:hover,.signature-screen .button:hover{transform:none}.consent-steps{display:grid}.consent-terms{border:1px solid var(--consent-line);overscroll-behavior:contain;background:#fff;border-radius:3px;max-height:min(50vh,24rem);padding:1rem 1.1rem;font-size:.92rem;line-height:1.9;overflow:auto}.consent-terms-title{margin:0 0 .6rem;font-size:1rem;font-weight:700}.consent-terms h3{margin:1rem 0 .2rem;font-size:.95rem;font-weight:700}.consent-terms p,.consent-terms ol{margin:0}.consent-terms ol{padding-left:1.3rem}.consent-terms-date{color:var(--consent-muted);font-size:.82rem;margin-top:1rem!important}.consent-choice{border:0;grid-template-columns:1fr 1fr;gap:.5rem;min-width:0;margin:0;padding:0;display:grid}.consent-choice legend{margin-bottom:.4rem;padding:0;font-weight:700}.consent-role{grid-template-columns:1fr}.consent-choice label{border:1px solid var(--consent-line);cursor:pointer;background:#fff;border-radius:3px;align-items:center;gap:.6rem;min-height:2.75rem;padding:.5rem .85rem;font-size:.95rem;font-weight:600;display:flex;position:relative}.consent-choice input{width:1.1rem;height:1.1rem;accent-color:var(--consent-green);flex-shrink:0;margin:0}.consent-choice label:has(input:checked){background:var(--consent-tint);border-color:var(--consent-green)}.consent-choice label:has(input[value=disagree]:checked){border-color:var(--consent-stop);background:#fff}.consent-choice label:has(:focus-visible){outline:3px solid var(--consent-green);outline-offset:3px}.consent-stop{border-left:4px solid var(--consent-stop);background:#fff;margin:0;padding:.8rem 1rem;font-weight:600}.consent-page .button-primary{background:var(--consent-green);color:#fff;border-radius:3px;min-height:3rem;font-size:.95rem;font-weight:700}.consent-page .join-intro-note{color:var(--consent-muted);margin:1rem 0 .25rem;font-size:.95rem}.consent-page .button-primary:hover:not(:disabled){background:var(--consent-green-deep)}.consent-page .button-primary:disabled{opacity:.45}.signature-tool{border:1px solid var(--consent-green);min-height:2.75rem;color:var(--consent-green);font:inherit;cursor:pointer;background:#fff;border-radius:3px;font-size:.95rem;font-weight:700}.signature-tool:hover:not(:disabled){background:var(--consent-tint)}.signature-tool:disabled{opacity:.4;cursor:not-allowed}.signature{justify-items:center;gap:.6rem;display:grid}.signature-open{width:100%;min-height:3rem}.signature-box{aspect-ratio:3/2;border:1px solid var(--consent-line);background:#fff;border-radius:3px;width:min(100%,24rem);position:relative}.signature-box canvas{cursor:crosshair;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:100%;height:100%;display:block;position:absolute;inset:0}.signature-box[data-readonly] canvas{cursor:default;pointer-events:none}.signature-guide{color:#9aa59c;text-align:center;pointer-events:none;place-items:center;padding:1rem;font-weight:600;display:grid;position:absolute;inset:0}.signature-line{pointer-events:none;border-bottom:1.5px dashed #c9d1ca;position:absolute;bottom:22%;left:6%;right:6%}.signature-tools{gap:.5rem;width:min(100%,24rem);display:grid}.signature-screen{z-index:1000;color:var(--consent-ink);touch-action:none;overscroll-behavior:none;background:#fff;position:fixed;inset:0;overflow:hidden}.signature-screen:focus{outline:none}.signature-stage{grid-template-rows:auto minmax(0,1fr) auto;gap:.6rem;padding:.75rem 1rem;display:grid;position:absolute;inset:0}.signature-screen[data-rotated] .signature-stage{width:100dvh;height:100dvw;inset:50% auto auto 50%;transform:translate(-50%,-50%)rotate(90deg)}.signature-screen-hint{color:var(--consent-muted);text-align:center;white-space:nowrap;text-overflow:ellipsis;margin:0;font-weight:600;line-height:1.5;overflow:hidden}.signature-screen-hint[data-notice]{color:var(--consent-stop)}.signature-stage-cell{place-items:center;min-height:0;display:grid;container-type:size}.signature-stage-cell .signature-box{border-color:#b9c3bb;width:min(100%,150cqh)}.signature-screen-tools{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.signature-decide{background:var(--consent-green);color:#fff}.signature-decide:hover:not(:disabled){background:var(--consent-green-deep)}.consent-done{border-top:4px solid var(--consent-green);gap:1rem;padding:1.5rem 1.25rem}.consent-page .consent-done{padding:1.5rem 1.25rem}.consent-done h2{letter-spacing:0;font-family:inherit;font-size:1.25rem;font-weight:700;line-height:1.4}.consent-done p{margin:0}.consent-return{background:var(--consent-tint);border-left:4px solid var(--consent-green);padding:1rem 1.1rem;font-size:1.05rem;font-weight:700}.consent-receipt{color:var(--consent-muted);font-size:.875rem}.consent-receipt strong{color:var(--consent-ink);letter-spacing:.08em;font-variant-numeric:tabular-nums;font-size:1.3rem;display:block}.consent-signed{background:var(--consent-tint);border-left:4px solid var(--consent-green);padding:1rem 1.1rem}.consent-signed p{margin:0}.review-actions{gap:.5rem;margin-top:1rem;display:grid}.review-footnote{color:var(--consent-muted);text-align:center;margin:2rem 0 0;font-size:.8rem}.review-switch{color:var(--consent-muted);border:0;flex-wrap:wrap;justify-content:center;gap:.25rem 1rem;margin:.75rem 0 0;padding:0;font-size:.8rem;display:flex}.review-switch legend{float:left;margin-right:.25rem;padding:0}.review-switch label{cursor:pointer;align-items:center;gap:.3rem;display:inline-flex}.review-switch input{accent-color:var(--consent-green);margin:0}
