:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17324d;background:#eef5fa;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}.shell{min-height:100vh;display:grid;place-items:center;padding:24px}.card{width:min(100%,560px);padding:36px;border:1px solid #d5e3ee;border-radius:20px;background:#fff;box-shadow:0 18px 48px #183f621a}.eyebrow{margin:0 0 12px;color:#2d6fa3;font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}h1{margin:0 0 16px;color:#143b66;font-size:clamp(2rem,8vw,3.2rem);line-height:1.05}p{margin:0;font-size:1.05rem;line-height:1.65}.harness-shell{min-height:100vh;padding:24px}.harness-card{width:min(100%,880px);margin:0 auto;padding:clamp(24px,5vw,44px);border:1px solid #c8dbea;border-radius:20px;background:#fff;box-shadow:0 18px 48px #183f621a}.harness-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.harness-header h1{margin-bottom:0;font-size:clamp(2rem,6vw,3rem)}.staff-badge{flex:0 0 auto;padding:7px 11px;border:1px solid #9bbbd3;border-radius:999px;color:#174c73;background:#eaf4fb;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.safety-note,.error-panel,.recovery-panel,.script-step{border-radius:12px;padding:14px 16px}.safety-note{border:1px solid #e5c979;color:#5e470a;background:#fff9e8;line-height:1.55}.harness-controls{display:grid;gap:16px;margin:28px 0}.harness-controls label{display:grid;gap:7px;color:#143b66;font-weight:700}.harness-controls input,.harness-controls select{width:100%;min-height:48px;border:1px solid #9fb8ca;border-radius:10px;padding:10px 12px;color:#17324d;background:#fff;font:inherit}.harness-controls input:focus-visible,.harness-controls select:focus-visible,.button-row button:focus-visible{outline:3px solid #77b8e7;outline-offset:2px}.harness-controls small{margin-top:-10px;color:#587086;line-height:1.45}.button-row{display:flex;flex-wrap:wrap;gap:12px}.button-row button{min-height:48px;border-radius:10px;padding:11px 18px;font:inherit;font-weight:800;cursor:pointer}.button-row button:disabled{cursor:not-allowed;opacity:.5}.primary-button{border:1px solid #155f92;color:#fff;background:#155f92}.secondary-button{border:1px solid #9fb8ca;color:#17324d;background:#f4f8fb}.status-section{margin-top:28px}.status-section h2,.recovery-panel h2{margin:0 0 12px;color:#143b66;font-size:1.15rem}.status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}.status-item{min-width:0;border:1px solid #d5e3ee;border-radius:12px;padding:13px;background:#f8fbfd}.status-item dt{margin-bottom:5px;color:#587086;font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.status-item dd{margin:0;overflow-wrap:anywhere;color:#17324d;font-weight:750;text-transform:capitalize}.recovery-panel{margin-top:16px;border:1px solid #c8dbea;background:#f4f9fc}.recovery-reconnecting{border-color:#e5c979;background:#fff9e8}.recovery-failed,.error-panel{border:1px solid #dfa7a7;color:#7d2020;background:#fff1f1}.recovery-recovered{border-color:#a9d1b0;background:#effaf1}.script-step{margin-top:16px;border:1px solid #d5e3ee;background:#f8fbfd}.error-panel{margin-top:16px;font-weight:700}@media(max-width:680px){.harness-shell{padding:12px}.harness-card{padding:22px;border-radius:16px}.harness-header{align-items:flex-start;flex-direction:column-reverse}.status-grid{grid-template-columns:1fr 1fr}.button-row,.button-row button{width:100%}}@media(max-width:420px){.status-grid{grid-template-columns:1fr}}.candidate-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.candidate-card{width:min(100%,620px);padding:40px;border:1px solid #d5e3ee;border-radius:20px;background:#fff;box-shadow:0 18px 48px #183f621a;font-size:1.05rem;line-height:1.6}.candidate-card h1{margin:0 0 16px}.consent-points{margin:0 0 28px;padding-left:22px}.consent-points li{margin-bottom:12px}.candidate-card .button-row{flex-wrap:wrap}.candidate-card .primary-button,.candidate-card .secondary-button{min-height:52px;font-size:1rem}.talking-indicator{margin:24px 0 8px;font-size:1.25rem;font-weight:600;color:#2d6fa3}.muted{color:#5d7793;font-size:.95rem}
