body { font-family: system-ui, sans-serif; max-width: 900px; margin: 0 auto; padding: 1rem; color: #222; }
header { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid #ddd; padding-bottom: .5rem; }
h1 { font-size: 1.25rem; margin: 0; }
nav a { margin-left: .5rem; }
main { padding-top: 1rem; }
section + section { margin-top: 2rem; }
label { display: block; margin: .5rem 0; }
input, textarea { font: inherit; padding: .4rem; border: 1px solid #bbb; border-radius: 4px; width: 100%; box-sizing: border-box; }
textarea { min-height: 6rem; }
button { padding: .5rem 1rem; border: 1px solid #444; background: #fff; cursor: pointer; border-radius: 4px; }
button:hover:not(:disabled) { background: #f5f5f5; }
button:disabled { opacity: .5; cursor: not-allowed; }
.error { color: #a00; }
.badge { display: inline-block; padding: 2px 8px; border-radius: 10px; background: #eee; font-size: .8rem; margin-left: .5rem; }
.status-failed .badge { background: #fdd; }
.status-ready .badge { background: #dfd; }
.status-approved .badge { background: #def; }
#timer { font-variant-numeric: tabular-nums; font-size: 1.2rem; margin: 0 1rem; }
.session-item { padding: .3rem 0; list-style: none; border-bottom: 1px solid #eee; }
.soap-field { margin-bottom: 1rem; }
.soap-field label { font-weight: 600; }
.consent-gate { background: #fff8e1; border: 1px solid #f0c674; border-radius: 6px; padding: 1rem; margin-bottom: 1rem; }
.consent-gate h3 { margin: 0 0 .4rem; font-size: 1rem; color: #6b4c00; }
.consent-help { margin: .2rem 0 .8rem; font-size: .9rem; color: #555; }
.consent-gate input[type="checkbox"] { width: auto; margin-right: .4rem; }
.consent-gate .checkbox-label { display: flex; align-items: flex-start; gap: .4rem; }
.consent-gate .checkbox-label input { margin-top: .25rem; flex-shrink: 0; }
.consent-info { font-size: .85rem; color: #666; margin: .5rem 0; padding: .4rem .6rem; background: #f5f5f5; border-radius: 4px; }
.consent-form-actions { margin: .4rem 0 .8rem; }
.consent-form-link { display: inline-block; padding: .35rem .7rem; background: #fff; border: 1px solid #c9a83d; color: #6b4c00; text-decoration: none; border-radius: 4px; font-size: .9rem; font-weight: 500; }
.consent-form-link:hover { background: #fff5d6; }

/* Consent form generator (separate page) */
.consent-form fieldset { border: 1px solid #ddd; border-radius: 6px; padding: 1rem 1rem .5rem; margin: 1rem 0; }
.consent-form legend { padding: 0 .4rem; font-weight: 600; color: #444; font-size: .95rem; }
.consent-form .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
@media (max-width: 600px) { .consent-form .form-row { grid-template-columns: 1fr; } }
.consent-form input { font-size: .95rem; }
.form-actions { display: flex; gap: .8rem; margin-top: 1rem; align-items: center; }
.btn-primary { background: #1a4d7a; color: #fff; border: 1px solid #1a4d7a; padding: .6rem 1.2rem; font-size: 1rem; cursor: pointer; border-radius: 4px; }
.btn-primary:hover { background: #155178; }
.btn-secondary { color: #555; text-decoration: none; padding: .6rem 1.2rem; }
.btn-secondary:hover { text-decoration: underline; }
