:root{color-scheme:dark;--bg: #0e0f12;--fg: #e7e9ee;--muted: #9aa0aa;--accent: #7aa2f7;--line: #262a33;--researcher: #f7a072;--participant: #8fd694;font-family:system-ui,-apple-system,Segoe UI,Malgun Gothic,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);line-height:1.55}.app{min-height:100vh}.page{max-width:780px;margin:0 auto;padding:2.5rem 1.25rem 4rem}.page__header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:.75rem;margin-bottom:1.25rem}.page__title{font-size:1.5rem;margin:0}.lead{color:var(--fg)}.notice,.placeholder{color:var(--muted);background:#15171c;border:1px solid var(--line);border-radius:8px;padding:.85rem 1rem}.badge{font-size:.75rem;padding:.15rem .5rem;border-radius:999px;border:1px solid var(--researcher);color:var(--researcher)}.route-list{list-style:none;padding:0;display:grid;gap:.5rem}.route-list__item{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;border:1px solid var(--line);border-radius:8px;padding:.6rem .85rem}.route-list__item a{color:var(--accent);text-decoration:none;font-weight:600}.route-list__path{color:var(--muted);font-size:.85rem}.tag{margin-left:auto;font-size:.72rem;padding:.1rem .5rem;border-radius:999px;border:1px solid var(--line)}.tag--researcher{color:var(--researcher);border-color:var(--researcher)}.tag--participant{color:var(--participant);border-color:var(--participant)}.lang-toggle-row{display:flex;justify-content:flex-end;margin:-.5rem 0 1rem}.lang-toggle{font:inherit;font-size:.85rem;background:transparent;color:var(--accent);border:1px solid var(--line);border-radius:999px;padding:.3rem .85rem;cursor:pointer}.lang-toggle:hover{border-color:var(--accent)}.consent__intro{color:var(--muted);font-size:1.05rem;margin:0 0 1.5rem}.consent__sections{display:flex;flex-direction:column;gap:.75rem}.consent__section{border:1px solid var(--line);background:#15171c;border-radius:12px;padding:.9rem 1.15rem}.consent__section h2{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin:0 0 .35rem;font-weight:600}.consent__section p{margin:0;color:var(--fg)}.consent__agree{display:flex;gap:.7rem;align-items:flex-start;background:#12211a;border:1px solid var(--participant);border-radius:12px;padding:1rem 1.15rem;margin:1.5rem 0 1.1rem;cursor:pointer}.consent__agree input{margin-top:.15rem;width:1.2rem;height:1.2rem;accent-color:var(--participant);flex:0 0 auto;cursor:pointer}.consent__agree span{font-weight:500}.consent__actions{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.consent__start{font:inherit;font-weight:600;background:var(--participant);color:#08130b;border:none;border-radius:10px;padding:.7rem 1.6rem;cursor:pointer}.consent__start:disabled{background:#2a2f38;color:var(--muted);cursor:not-allowed}.consent__decline{color:var(--muted);font-size:.9rem;margin:0}.screenout__reasons{list-style:none;padding:0;margin:1.25rem 0;display:flex;flex-direction:column;gap:.6rem}.screenout__reasons li{border:1px solid var(--line);background:#15171c;border-radius:10px;padding:.8rem 1rem;color:var(--fg)}.preview{margin-top:1.5rem;border-top:1px solid var(--line);padding-top:1rem}.preview__banner{font-weight:700;color:var(--researcher);border:1px solid var(--researcher);border-radius:8px;padding:.55rem .85rem}.preview__note{color:var(--muted);font-size:.9rem}.preview__controls{display:flex;flex-wrap:wrap;gap:1rem;margin:1rem 0}.preview__controls label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--muted)}.preview__controls.preview__checkbox,.preview__checkbox{flex-direction:row;align-items:center;gap:.4rem}.preview__controls input,.preview__controls select{background:#15171c;color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:.35rem .5rem}.preview__kv{display:grid;grid-template-columns:max-content 1fr;gap:.25rem 1rem;margin:.5rem 0 1rem}.preview__kv dt{color:var(--muted)}.preview__kv dd{margin:0}.badge--ok{color:var(--participant);border-color:var(--participant)}.badge--warn{color:var(--researcher);border-color:var(--researcher)}.preview__warnings,.preview__issues{margin:.25rem 0 1rem;padding-left:1.1rem;font-size:.88rem}.preview__issues{color:#ff9a9a}.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:8px;margin-bottom:1.25rem}.data-table{border-collapse:collapse;width:100%;font-size:.85rem}.data-table th,.data-table td{border-bottom:1px solid var(--line);padding:.35rem .6rem;text-align:left;white-space:nowrap}.data-table th{color:var(--muted);position:sticky;top:0;background:#15171c}.preview__sim{margin-bottom:1.5rem}.calib-layout{display:flex;gap:1.25rem;flex-wrap:wrap;align-items:flex-start}.calib-canvas{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#000}.calib-controls{flex:1;min-width:280px;display:flex;flex-direction:column;gap:.75rem}.calib-controls fieldset{border:1px solid var(--line);border-radius:8px;padding:.5rem .75rem}.calib-controls legend{color:var(--muted);font-size:.85rem}.calib-controls label{display:flex;flex-direction:column;gap:.2rem;font-size:.82rem;color:var(--muted);margin:.25rem 0}.calib-controls input,.calib-controls select{background:#15171c;color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:.3rem .45rem}.calib-levels{display:flex;gap:.35rem;flex-wrap:wrap}.calib-levels button{padding:.3rem .6rem;border:1px solid var(--line);border-radius:6px;background:#15171c;color:var(--fg)}.calib-levels button.active{border-color:var(--accent);color:var(--accent)}.calib-yaw{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.calib-compare-toggle{margin:1rem 0}.compare-controls{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;margin-bottom:.75rem}.compare-grid{display:flex;flex-wrap:wrap;gap:.75rem}.compare-cell{border:1px solid #2a2f3a;border-radius:6px;overflow:hidden;background:#000}.compare-cell__caption{font-size:.72rem;padding:.25rem .4rem;color:#cfe0ff}.compare-cell__meta{font-size:.68rem;color:#8aa0c0;max-width:190px}.compare-rubric{width:100%;border-collapse:collapse;font-size:.78rem}.compare-rubric th,.compare-rubric td{border:1px solid #2a2f3a;padding:.3rem;text-align:left}.compare-fps{font-size:.75rem;color:#9fb6d8;align-self:center}.hybrid-yaw-row{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.hybrid-yaw-row__label{min-width:12rem;font-size:.78rem;color:#cfe0ff;padding-top:.4rem}.hybrid-params{display:flex;flex-wrap:wrap;gap:1.5rem}.hybrid-params dl{min-width:16rem}
