/* Coach recruitment: the apply page, the applicant's desk and the owner's
   dossier. Built from site.css's own tokens so both themes follow. */
.ca-hero { padding-bottom: 0; }
.ca-hero-sm { padding-top: 48px; }
.ca-hero-cta { display: flex; gap: 16px; align-items: center; justify-content: center; flex-wrap: wrap; margin-top: 26px !important; }
.ca-hero-cta .muted { font-size: 13.5px; }
.ca-wrap { max-width: 780px; }
.ca-small { font-size: 13.5px; margin-top: 12px; line-height: 1.7; }
.ca-h4 { margin: 22px 0 10px; font-size: 15px; }

.ca-steps, .ca-terms { margin: 0; padding-left: 0; list-style: none; counter-reset: ca; display: grid; gap: 12px; }
.ca-steps li, .ca-terms li { counter-increment: ca; position: relative; padding-left: 44px; color: var(--muted); line-height: 1.7; }
.ca-steps li b, .ca-terms li b { color: var(--text); }
.ca-steps li::before, .ca-terms li::before {
  content: counter(ca); position: absolute; left: 0; top: 1px; width: 28px; height: 28px; border-radius: 50%;
  display: grid; place-items: center; font: 600 13px var(--font-head); color: var(--green);
  border: 1px solid var(--line-strong);
}
.ca-terms { margin-bottom: 22px; }

/* the four-step track */
.ca-track { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 0 0 22px; padding: 0; }
.ca-track li { font-size: 12.5px; color: var(--muted); padding: 12px 10px; border-radius: var(--radius-sm); border: 1px solid var(--line); display: flex; gap: 8px; align-items: center; line-height: 1.3; }
.ca-track li span { flex: none; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font: 600 11.5px var(--font-head); border: 1px solid var(--line-strong); }
.ca-track li.now { color: var(--text); border-color: var(--green); }
.ca-track li.now span { background: var(--green); color: var(--btn-text); border-color: var(--green); }
.ca-track li.done span { color: var(--green); border-color: var(--green); }
@media (max-width: 620px) { .ca-track { grid-template-columns: repeat(2, 1fr); } }

/* forms */
.ca-form { display: grid; gap: 18px; }
.ca-form label { margin-bottom: 0; }
.ca-form input[type=text], .ca-form input[type=email], .ca-form input[type=tel], .ca-form input[type=date],
.ca-form input[type=number], .ca-form select, .ca-form textarea {
  display: block; width: 100%; margin-top: 8px; padding: 12px 14px; border-radius: var(--radius-sm);
  border: 1px solid var(--line-strong); background: rgba(255, 255, 255, .04); color: var(--text);
  font: 400 15px var(--font-body);
}
:root[data-theme="light"] .ca-form input, :root[data-theme="light"] .ca-form select,
:root[data-theme="light"] .ca-form textarea { background: #fbfaf7; }
.ca-form textarea { min-height: 200px; line-height: 1.7; resize: vertical; }
.ca-form textarea.ca-short { min-height: 110px; }
.ca-form input:focus, .ca-form select:focus, .ca-form textarea:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px var(--green-glow); }
.ca-form button[type=submit] { justify-self: start; }
.ca-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 620px) { .ca-grid { grid-template-columns: 1fr; } }
.ca-check { display: flex !important; gap: 12px; align-items: flex-start; font-weight: 400 !important; color: var(--muted); line-height: 1.6; cursor: pointer; }
.ca-check input { margin-top: 4px; width: 17px; height: 17px; flex: none; accent-color: var(--green); }
.ca-set { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.ca-set legend { font-weight: 600; font-size: 13.5px; margin-bottom: 10px; padding: 0; }
.ca-set .ca-check, .ca-set .ca-grid, .ca-set > p { flex: 1 1 100%; }
.ca-chip { display: inline-flex !important; cursor: pointer; }
.ca-chip input { position: absolute; opacity: 0; }
.ca-chip span { padding: 9px 15px; border-radius: 999px; border: 1px solid var(--line-strong); font-size: 13.5px; font-weight: 500; color: var(--muted); transition: all .15s; }
.ca-chip input:checked + span { border-color: var(--green); color: var(--text); background: var(--green-glow); }
.ca-chip input:focus-visible + span { box-shadow: 0 0 0 3px var(--green-glow); }
.ca-error { color: var(--red); font-size: 14px; }
.ca-row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.ca-ref + .ca-ref { padding-top: 16px; border-top: 1px solid var(--line); }

.ca-upload { border: 1px dashed var(--line-strong); border-radius: var(--radius-sm); padding: 16px 18px; display: grid; gap: 8px; }
.ca-upload span { font-size: 13.5px; line-height: 1.6; }
.ca-upload input[type=file] { font-size: 13.5px; color: var(--muted); }
.ca-upload.busy { opacity: .6; pointer-events: none; }
.ca-files { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 13.5px; }
.ca-files li::before { content: "\2713"; color: var(--green); margin-right: 8px; }
.ca-files-wide li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.ca-files-wide li::before { display: none; }
.ca-selfie video { width: 220px; max-width: 100%; border-radius: var(--radius-sm); transform: scaleX(-1); }

/* written tasks */
.ca-clock { font: 600 20px var(--font-head); font-variant-numeric: tabular-nums; color: var(--gold); }
.ca-clock.low { color: var(--red); }
.ca-task { display: grid; gap: 12px; padding-top: 22px; border-top: 1px solid var(--line); }
.ca-task:first-child { border-top: 0; padding-top: 0; }
.ca-task h4 { font-size: 17px; }
.ca-q { color: var(--muted); line-height: 1.7; }
.ca-q b { color: var(--text); }
.ca-essay { border-left: 2px solid var(--gold); padding: 4px 0 4px 18px; font-family: var(--font-serif); font-size: 18px; line-height: 1.65; user-select: none; }
.ca-essay p + p { margin-top: 12px; }
.ca-bands { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.ca-bands { align-items: end; }
.ca-bands label { font-size: 12.5px; }
@media (max-width: 620px) { .ca-bands { grid-template-columns: repeat(2, 1fr); } }
.ca-count { font-size: 12.5px; justify-self: end; margin-top: -6px; }

/* the interview */
.ca-stage { position: relative; aspect-ratio: 16 / 10; border-radius: var(--radius); overflow: hidden; background: #02040a; border: 1px solid var(--line); margin: 18px 0; }
.ca-stage video { width: 100%; height: 100%; object-fit: cover; transform: scaleX(-1); }
.ca-stage-check { max-width: 420px; }
.ca-meter { position: absolute; left: 14px; right: 14px; bottom: 14px; height: 5px; border-radius: 5px; background: rgba(255, 255, 255, .18); overflow: hidden; }
.ca-meter i { display: block; height: 100%; width: 0; background: var(--green); transition: width .08s linear; }
.ca-rec { position: absolute; top: 14px; left: 14px; padding: 5px 11px; border-radius: 999px; background: rgba(0, 0, 0, .6); color: #fff; font: 600 12px var(--font-head); letter-spacing: .06em; }
.ca-rec::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--red); margin-right: 7px; animation: ca-blink 1.2s infinite; }
@keyframes ca-blink { 50% { opacity: .25; } }
.ca-orb { position: absolute; right: 16px; bottom: 16px; width: 74px; height: 74px; border-radius: 50%; display: flex; gap: 5px; align-items: center; justify-content: center;
  background: radial-gradient(circle at 35% 30%, rgba(52, 211, 153, .5), rgba(5, 8, 15, .88) 70%); border: 1px solid rgba(255, 255, 255, .22); backdrop-filter: blur(8px); }
.ca-orb i { width: 5px; height: 12px; border-radius: 4px; background: #fff; opacity: .85; }
.ca-orb[data-state=speaking] i { animation: ca-wave .7s ease-in-out infinite; }
.ca-orb[data-state=speaking] i:nth-child(2) { animation-delay: .12s; }
.ca-orb[data-state=speaking] i:nth-child(3) { animation-delay: .24s; }
.ca-orb[data-state=listening] { background: radial-gradient(circle at 35% 30%, rgba(230, 180, 92, .55), rgba(5, 8, 15, .88) 70%); }
.ca-orb[data-state=thinking] i { animation: ca-blink 1s infinite; }
@keyframes ca-wave { 50% { height: 30px; } }
.ca-kind { font: 600 12px var(--font-head); letter-spacing: .1em; text-transform: uppercase; color: var(--green); }
.ca-say { font-family: var(--font-serif); font-size: clamp(20px, 2.6vw, 25px); line-height: 1.45; margin-top: 8px; min-height: 2.9em; }
.ca-show { margin: 16px 0 0; padding: 16px 18px 16px 40px; border-radius: var(--radius-sm); border: 1px solid var(--gold); line-height: 1.9; font-size: 16.5px; }
.ca-status { margin: 14px 0; font-size: 14px; min-height: 1.5em; }

/* the owner's dossier */
.cd-top { display: grid; grid-template-columns: auto 1fr; gap: 26px; align-items: center; }
@media (max-width: 620px) { .cd-top { grid-template-columns: 1fr; } }
.cd-score { width: 122px; height: 122px; border-radius: 50%; display: grid; place-items: center; text-align: center; border: 2px solid var(--green); font: 600 38px var(--font-head); line-height: 1; }
.cd-score small { display: block; font: 500 11px var(--font-body); color: var(--muted); margin-top: 4px; letter-spacing: .04em; }
.cd-score.consider { border-color: var(--gold); } .cd-score.weak { border-color: var(--red); } .cd-score.read { border-color: var(--line-strong); }
.cd-bars { display: grid; gap: 10px; }
.cd-bar { display: grid; grid-template-columns: 120px 1fr 44px; gap: 12px; align-items: center; font-size: 13.5px; }
.cd-bar i { display: block; height: 8px; border-radius: 8px; background: var(--line); overflow: hidden; }
.cd-bar i b { display: block; height: 100%; background: var(--green); border-radius: 8px; }
.cd-bar span:last-child { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.cd-flags { margin: 18px 0 0; padding: 14px 18px 14px 34px; border-radius: var(--radius-sm); border: 1px solid var(--red); font-size: 14px; line-height: 1.8; }
.cd-pill { display: inline-block; padding: 4px 11px; border-radius: 999px; font: 600 11.5px var(--font-head); letter-spacing: .04em; border: 1px solid var(--line-strong); white-space: nowrap; }
.cd-pill.review, .cd-pill.strong, .cd-pill.pass { border-color: var(--green); color: var(--green); }
.cd-pill.approved, .cd-pill.active, .cd-pill.consider, .cd-pill.wait { border-color: var(--gold); color: var(--gold); }
.cd-pill.declined, .cd-pill.weak, .cd-pill.fail { border-color: var(--red); color: var(--red); }
.cd-dims { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin: 14px 0; }
.cd-dims div { border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 12px; font-size: 12.5px; color: var(--muted); }
.cd-dims b { display: block; font: 600 22px var(--font-head); color: var(--text); }
.cd-answer { white-space: pre-wrap; line-height: 1.75; padding: 14px 16px; border-radius: var(--radius-sm); background: var(--card); border: 1px solid var(--line); font-size: 14.5px; margin: 8px 0 18px; }
.cd-turn { display: grid; grid-template-columns: 240px 1fr; gap: 18px; padding: 18px 0; border-top: 1px solid var(--line); }
.cd-turn video { width: 100%; border-radius: var(--radius-sm); background: #000; }
@media (max-width: 720px) { .cd-turn { grid-template-columns: 1fr; } }
.cd-turn .q { color: var(--muted); font-size: 13.5px; line-height: 1.6; margin: 6px 0 10px; }
.cd-turn .a { line-height: 1.75; font-size: 14.5px; }
.cd-faces { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-top: 14px; }
.cd-faces figure { margin: 0; }
.cd-faces img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--radius-sm); border: 1px solid var(--line); }
.cd-faces figcaption { font-size: 12px; color: var(--muted); margin-top: 6px; }
.cd-checks { width: 100%; border-collapse: collapse; font-size: 14px; }
.cd-checks td { padding: 9px 8px 9px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.cd-checks td:last-child { color: var(--muted); }
.cd-kv { display: grid; grid-template-columns: 170px 1fr; gap: 8px 16px; font-size: 14.5px; }
.cd-kv dt { color: var(--muted); } .cd-kv dd { margin: 0; }
@media (max-width: 620px) { .cd-kv { grid-template-columns: 1fr; } .cd-kv dt { margin-top: 8px; } }
.cd-decide { display: grid; gap: 14px; }
.cd-decide textarea { min-height: 90px; }
.cd-list { width: 100%; border-collapse: collapse; font-size: 14px; }
.cd-list th { text-align: left; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); padding: 10px 10px 10px 0; }
.cd-list td { padding: 13px 10px 13px 0; border-top: 1px solid var(--line); }
.cd-list a { color: var(--text); font-weight: 600; }
.cd-msg { padding: 12px 16px; border-radius: var(--radius-sm); border: 1px solid var(--green); margin-bottom: 18px; font-size: 14.5px; }
.btn-danger { background: transparent; border: 1px solid var(--red); color: var(--red); }
