:root{--bg:#f3f3f1;--bg-elevated:#ffffff;--ink:#1a1a1a;--muted:#6a6a6a;--accent:#2a2a2a;--accent-ink:#f7f7f5;--pass:#2f6b4f;--fail:#a33d2f;--line:rgba(26,26,26,0.12);--radius:10px;--font-display:"Source Serif 4","Iowan Old Style",Georgia,serif;--font-body:"IBM Plex Sans","Avenir Next","Segoe UI",sans-serif}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:linear-gradient(180deg,#efefed 0,var(--bg) 40%,#ecece8 100%);font-family:var(--font-body)}a,body,html{color:var(--ink)}a{text-decoration-thickness:1px;text-underline-offset:.15em}main{max-width:920px;margin:0 auto;padding:2.5rem 1.25rem 4rem}.site-header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:2rem}.brand{font-family:var(--font-display);font-size:1.85rem;font-weight:600;letter-spacing:-.02em;margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;margin:0 0 .35rem}.eyebrow,.muted{color:var(--muted)}.panel{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem 1.35rem;margin:1rem 0}.btn,a.btn,button.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;background:var(--accent);color:var(--accent-ink);border:none;border-radius:8px;padding:.7rem 1.1rem;font-weight:600;text-decoration:none;cursor:pointer}.btn.secondary,a.btn.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn.disabled,.btn:disabled{opacity:.55;pointer-events:none}.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.audio-variant{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border,#e5e5e5)}.audio-variant h3{margin:0 0 .5rem;font-size:1.05rem}.field{display:flex;flex-direction:column;gap:.35rem;margin:.85rem 0}.field input{background:#fafafa;border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:.65rem .75rem}.error{color:var(--fail)}.success{color:var(--pass)}.job-table{width:100%;border-collapse:collapse}.job-table td,.job-table th{text-align:left;padding:.75rem .5rem;border-bottom:1px solid var(--line)}.error-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--fail);margin-left:.4rem}.stepper{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:0 0 1.5rem}.stepper li{font-size:.8rem;padding:.35rem .65rem;border-radius:999px;border:1px solid var(--line);color:var(--muted)}.stepper li.active{border-color:var(--ink);color:var(--ink);background:#fff}.stepper li.done{color:var(--pass);border-color:rgba(47,107,79,.35)}.stage-loader{display:flex;gap:1rem;align-items:flex-start;padding:1.25rem;border-radius:var(--radius);border:1px solid var(--line);background:#fff;margin:1rem 0}.stage-loader-body{flex:1;min-width:0}.progress-track{height:8px;border-radius:999px;background:rgba(26,26,26,.08);overflow:hidden;margin:.75rem 0 .35rem}.progress-fill{height:100%;border-radius:999px;background:var(--ink);transition:width .35s ease}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid rgba(26,26,26,.12);border-top:3px solid var(--ink);animation:spin .9s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(1turn)}}.loader-title{margin:0;font-weight:600}.loader-eta,.loader-hint{margin:.35rem 0 0;color:var(--muted);font-size:.92rem}.pass-fail{border-radius:var(--radius);padding:1.1rem 1.2rem;margin:1rem 0;border:1px solid var(--line);background:#fff}.pass-fail.pass{border-color:rgba(47,107,79,.4);background:rgba(47,107,79,.06)}.pass-fail.fail{border-color:rgba(163,61,47,.4);background:rgba(163,61,47,.06)}.pass-fail-kicker{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;margin:0 0 .4rem}.pass-fail h2{margin:0 0 .5rem;font-family:var(--font-display)}.qa-notes{white-space:pre-wrap;background:rgba(26,26,26,.04);padding:.75rem;border-radius:8px;overflow:auto;font-size:.85rem}.audio-player,.video-player{width:100%;margin:1rem 0;border-radius:8px;background:#111}.login-card{max-width:420px;margin:14vh auto;text-align:center}.login-card h1{font-family:var(--font-display);font-size:2.1rem;font-weight:600;letter-spacing:-.02em;margin:0 0 .75rem}.login-card .btn{margin-top:.5rem}