/* HWOS candidate-journey additions (BRD section 9) — loaded by candidate/base.html.
   Only what candidate.css lacks: the readiness meter, rule locks, the privacy /
   licensing / recommendation / alumni blocks. Everything reads the shared tokens. */

/* ── layout ─────────────────────────────────────────────────────────── */
.cp-hw-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 22px; align-items: start; margin-top: 18px; }
.cp-hw-span4 { grid-column: span 4; } .cp-hw-span5 { grid-column: span 5; } .cp-hw-span6 { grid-column: span 6; }
.cp-hw-span7 { grid-column: span 7; } .cp-hw-span8 { grid-column: span 8; } .cp-hw-span12 { grid-column: span 12; }
@media (max-width: 900px) { .cp-hw-grid { grid-template-columns: 1fr; } .cp-hw-grid > * { grid-column: 1 / -1 !important; } }
.cp-head__act { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.cp-hw-stack { display: grid; gap: 14px; }
.cp-hw-empty { display: flex; gap: 18px; align-items: flex-start; flex-wrap: wrap; padding: 28px 24px; }
.cp-hw-empty h3 { margin: 0 0 6px; font-size: 1.1rem; }
.cp-hw-empty > div { flex: 1; min-width: 240px; }
.cp-hw-pre { white-space: pre-line; margin: 0; }
.cp-hw-mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .78rem; }
.cp-hw-num { font-variant-numeric: tabular-nums; font-size: 1.15rem; color: var(--text-primary); }
.cp-hw-count { display: inline-block; min-width: 18px; padding: 0 6px; border-radius: var(--radius-pill, 999px); background: var(--orange-600); color: #fff; font-size: .72rem; font-weight: 700; line-height: 18px; text-align: center; }
.cp-hw-note { display: flex; gap: 8px; align-items: flex-start; padding: 10px 12px; border-radius: var(--radius-md, 12px); background: var(--color-info-soft, #eef3fb); color: var(--text-secondary); font-size: .9rem; margin: 0 0 12px; }
.cp-hw-note [data-lucide], .cp-hw-note svg { width: 16px; height: 16px; flex: none; margin-top: 2px; }
.cp-hw-banner { display: flex; gap: 14px; align-items: flex-start; padding: 14px 16px; border-radius: var(--radius-lg, 16px); margin: 0 0 18px; border: 1px solid var(--border-default); background: var(--surface-card, #fff); }
.cp-hw-banner--warn { border-color: var(--amber-500, #c9a227); background: var(--color-warning-soft, #fff7d6); }
.cp-hw-banner [data-lucide], .cp-hw-banner svg { width: 22px; height: 22px; flex: none; color: var(--text-link); }
.cp-hw-banner small { color: var(--text-secondary); }

/* ── rows, lists, tables ────────────────────────────────────────────── */
.cp-hw-row { display: flex; gap: 12px; align-items: center; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid var(--border-subtle); flex-wrap: wrap; }
.cp-hw-row:last-child { border-bottom: 0; }
.cp-hw-row.is-late strong { color: var(--color-danger, #b3261e); }
.cp-hw-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.cp-hw-list li { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; font-size: .92rem; }
.cp-hw-list--tight li { gap: 8px; }
.cp-hw-list .cp-pill { flex: none; }
.cp-hw-links { display: grid; gap: 4px; margin-top: 14px; }
.cp-hw-links .cp-nav__item { padding: 8px 10px; border-radius: var(--radius-md, 12px); }
.cp-hw-table { width: 100%; border-collapse: collapse; margin-top: 8px; font-size: .88rem; }
.cp-hw-table th { text-align: left; font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--text-muted); padding: 6px 8px; border-bottom: 1px solid var(--border-subtle); }
.cp-hw-table td { padding: 7px 8px; border-bottom: 1px solid var(--border-subtle); vertical-align: top; word-break: break-word; }
.cp-hw-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.cp-hw-checks li span { display: inline-block; width: 1.2em; color: var(--text-link); }
.cp-hw-events { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: .88rem; }
.cp-hw-events li .cp-muted { display: inline-block; min-width: 92px; font-variant-numeric: tabular-nums; }
.cp-hw-details > summary { list-style: none; cursor: pointer; display: inline-flex; }
.cp-hw-details > summary::-webkit-details-marker { display: none; }
.cp-hw-details__form { display: grid; gap: 8px; margin-top: 10px; padding: 12px; border: 1px solid var(--border-subtle); border-radius: var(--radius-md, 12px); background: var(--surface-muted, #faf7f2); min-width: 260px; }
.cp-hw-details__form .cp-btn { justify-self: start; }
.cp-hw-inline { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.cp-hw-inline .cp-input { max-width: 220px; }

/* ── readiness meter ("62% of 85% target") ──────────────────────────── */
.cp-rm { display: grid; gap: 6px; }
.cp-rm__top { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.cp-rm__title { font-weight: 700; font-size: .92rem; }
.cp-rm__band { font-size: .8rem; font-weight: 700; color: var(--text-secondary); }
.cp-rm__shape { color: var(--text-muted); }
.cp-rm--met .cp-rm__band, .cp-rm--met .cp-rm__shape { color: var(--color-success, #0f7b5f); }
.cp-rm--close .cp-rm__band { color: var(--text-link); }
.cp-rm__num { display: flex; align-items: baseline; gap: 8px; }
.cp-rm__num b { font-size: 2rem; line-height: 1; font-variant-numeric: tabular-nums; color: var(--text-primary); }
.cp-rm--lg .cp-rm__num b { font-size: 2.6rem; }
.cp-rm__of { font-size: .86rem; color: var(--text-secondary); font-weight: 600; }
.cp-rm__track { position: relative; height: 12px; border-radius: 999px; background: var(--greige-300, #e9e1d6); overflow: visible; }
.cp-rm__fill { display: block; height: 100%; border-radius: 999px; background: var(--orange-500); transition: width .6s var(--ease-out, ease); max-width: 100%; }
.cp-rm--met .cp-rm__fill { background: var(--color-success, #0f7b5f); }
.cp-rm__target { position: absolute; right: -1px; top: -4px; width: 3px; height: 20px; border-radius: 2px; background: var(--brown-700, #5f2929); }
.cp-rm__why { margin: 2px 0 0; font-size: .82rem; color: var(--text-secondary); }
.cp-rm__why a { color: var(--text-link); font-weight: 600; margin-left: 6px; }
.cp-rm__src { display: block; color: var(--text-muted); }

/* ── rule lock ──────────────────────────────────────────────────────── */
.cp-lock { display: flex; gap: 14px; align-items: flex-start; padding: 14px 16px; border-radius: var(--radius-lg, 16px); border: 1px solid var(--amber-500, #c9a227); background: var(--color-warning-soft, #fff7d6); margin: 14px 0; }
.cp-lock--open { border-color: var(--color-success, #0f7b5f); background: var(--color-success-soft, #e8f5f0); }
.cp-lock--compact { padding: 10px 12px; margin: 10px 0; }
.cp-lock__ic { flex: none; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--brown-700, #5f2929); }
.cp-lock__ic [data-lucide], .cp-lock__ic svg { width: 18px; height: 18px; }
.cp-lock__body { flex: 1; min-width: 0; display: grid; gap: 6px; }
.cp-lock__t { font-size: .98rem; }
.cp-lock__why, .cp-lock__who { margin: 0; font-size: .88rem; color: var(--text-secondary); }
.cp-lock__who a { color: var(--text-link); font-weight: 600; }
.cp-lock__reasons { margin: 0; padding-left: 18px; font-size: .86rem; color: var(--text-secondary); }
.cp-lock .cp-btn { justify-self: start; margin-top: 4px; }

/* ── registration consent ───────────────────────────────────────────── */
.cp-consent { display: grid; gap: 10px; margin: 6px 0 16px; }
.cp-consent__row { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.cp-consent__row input { margin-top: 4px; flex: none; }
.cp-consent__row span { display: block; font-size: .9rem; }
.cp-consent__row small { display: block; color: var(--text-secondary); font-size: .8rem; margin-top: 2px; }
.cp-consent__row em { color: var(--text-muted); font-style: normal; font-weight: 500; }

/* ── privacy ────────────────────────────────────────────────────────── */
.cp-hw-consent { display: flex; gap: 14px; align-items: flex-start; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--border-subtle); flex-wrap: wrap; }
.cp-hw-consent:last-of-type { border-bottom: 0; }
.cp-hw-consent__main { flex: 1; min-width: 240px; }
.cp-hw-consent__top { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.cp-hw-consent__what { margin: 4px 0 0; font-size: .88rem; color: var(--text-secondary); }
.cp-hw-consent__meta { margin: 4px 0 0; font-size: .8rem; color: var(--text-muted); }
.cp-hw-consent__act { flex: none; }
/* one agency per row (BR-RA-03): name + facts on the left, its own withdraw on the right */
.cp-hw-mandates { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; }
.cp-hw-mandate { display: flex; gap: 12px; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; padding: 10px 12px; border: 1px solid var(--border-subtle); border-radius: var(--radius-md, 12px); background: var(--surface-muted, #faf7f2); }
.cp-hw-mandate__main { flex: 1 1 220px; min-width: 0; }
.cp-hw-mandate__main strong { font-size: .92rem; }
.cp-hw-mandate .cp-hw-details { flex: none; }

/* ── history timeline ───────────────────────────────────────────────── */
.cp-hw-timeline { list-style: none; margin: 18px 0 0; padding: 0; position: relative; }
.cp-hw-timeline::before { content: ''; position: absolute; left: 22px; top: 10px; bottom: 10px; width: 2px; background: var(--greige-400, #d8ccbb); }
.cp-hw-tl { position: relative; display: flex; gap: 16px; padding: 0 0 18px; }
.cp-hw-tl__dot { position: relative; z-index: 1; flex: none; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: #fff; border: 2px solid var(--orange-500); color: var(--orange-700, #ac3e33); font-weight: 800; font-size: .78rem; }
.cp-hw-tl__body { flex: 1; min-width: 0; background: var(--surface-card, #fff); border: 1px solid var(--border-subtle); border-radius: var(--radius-lg, 16px); padding: 12px 14px; }
.cp-hw-tl__head { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; font-size: .9rem; }

/* ── CV versions ────────────────────────────────────────────────────── */
.cp-hw-cvv.is-current { border-color: var(--orange-500); }
.cp-hw-cvv__body { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.cp-hw-cvv__main { flex: 1; min-width: 220px; }
.cp-hw-cvv__top { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.cp-report { margin-top: 14px; padding: 12px 14px; border-radius: var(--radius-md, 12px); background: var(--surface-muted, #faf7f2); border: 1px solid var(--border-subtle); }
.cp-report__top { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.cp-report__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.cp-report__tag { font-size: .78rem; padding: 3px 9px; border-radius: 999px; background: #fff; border: 1px solid var(--border-subtle); color: var(--text-secondary); }
.cp-report__tag.is-found { border-color: var(--color-success, #0f7b5f); color: var(--color-success, #0f7b5f); }
.cp-report__tag.is-missing { border-color: var(--amber-500, #c9a227); color: var(--brown-700, #5f2929); }
.cp-report__notes { margin: 8px 0 0; font-size: .8rem; color: var(--text-muted); }

/* ── recommendation ─────────────────────────────────────────────────── */
.cp-hw-rec { border-color: var(--orange-500); }
.cp-hw-rec__grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 20px; }
@media (max-width: 760px) { .cp-hw-rec__grid { grid-template-columns: 1fr; } }
.cp-hw-rec__why h3 { margin: 0 0 8px; font-size: 1rem; }
.cp-hw-rec__facts { display: grid; gap: 8px; align-content: start; }
.cp-hw-fact { display: grid; gap: 2px; padding: 10px 12px; border-radius: var(--radius-md, 12px); background: var(--surface-muted, #faf7f2); }
.cp-hw-fact span { font-size: .74rem; text-transform: uppercase; letter-spacing: .04em; color: var(--text-muted); }
.cp-hw-fact strong { font-size: .95rem; }
.cp-hw-rec__actions { display: flex; gap: 12px; align-items: flex-start; flex-wrap: wrap; margin-top: 16px; }
.cp-btn[disabled] { opacity: .55; cursor: not-allowed; }

/* ── licensing ──────────────────────────────────────────────────────── */
.cp-hw-bigpill { font-size: .9rem; padding: 6px 14px; }
.cp-hw-task { display: flex; gap: 14px; align-items: flex-start; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--border-subtle); flex-wrap: wrap; }
.cp-hw-task:last-child { border-bottom: 0; }
.cp-hw-task__main { flex: 1; min-width: 240px; }
.cp-hw-task__top { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.cp-hw-task__desc { margin: 4px 0 0; font-size: .88rem; color: var(--text-secondary); }
.cp-hw-task__note { margin: 6px 0 0; font-size: .84rem; color: var(--text-secondary); display: flex; gap: 6px; align-items: flex-start; }
.cp-hw-task__note [data-lucide], .cp-hw-task__note svg { width: 14px; height: 14px; flex: none; margin-top: 2px; }
.cp-hw-task__note.is-bad { color: var(--color-danger, #b3261e); }
.cp-hw-task__act { display: grid; gap: 8px; justify-items: start; }
.cp-hw-task.is-overdue { border-left: 3px solid var(--color-danger, #b3261e); padding-left: 10px; }
.cp-hw-due { font-size: .8rem; color: var(--text-secondary); display: inline-flex; gap: 4px; align-items: center; }
.cp-hw-due [data-lucide], .cp-hw-due svg { width: 13px; height: 13px; }
.cp-hw-due.is-late { color: var(--color-danger, #b3261e); font-weight: 700; }
.cp-hw-upload { display: grid; gap: 4px; justify-items: start; }
.cp-hw-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cp-hw-step { display: flex; gap: 10px; align-items: flex-start; font-size: .9rem; }
.cp-hw-step > div { flex: 1; min-width: 0; }
.cp-hw-step__shape { flex: none; width: 1.3em; color: var(--text-muted); }
.cp-hw-step--done .cp-hw-step__shape { color: var(--color-success, #0f7b5f); }
.cp-hw-step--blocked .cp-hw-step__shape { color: var(--color-danger, #b3261e); }
.cp-hw-step--waiting_review .cp-hw-step__shape, .cp-hw-step--in_progress .cp-hw-step__shape { color: var(--text-link); }
.cp-hw-step--waived { opacity: .7; }
/* A step's verification case (licensing checklist): the body's state, reference, next move. */
.cp-hw-check { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 6px;
  padding: 8px 10px; border-radius: 10px; background: var(--cream-100, #f9f7f1);
  border: 1px solid var(--border-subtle, #e3ddd2); font-size: .82rem; }
.cp-hw-check.is-you { border-color: var(--text-link, #ac3e33); }
.cp-hw-check__who { color: var(--text-secondary); }
.cp-hw-check__next { flex-basis: 100%; color: var(--text-secondary); }
.cp-hw-check .cp-linkbtn { display: inline-flex; align-items: center; gap: 4px; }
.cp-hw-check .cp-linkbtn [data-lucide], .cp-hw-check .cp-linkbtn svg { width: 14px; height: 14px; }

/* ── alumni ─────────────────────────────────────────────────────────── */
.cp-hw-post { display: grid; gap: 8px; padding-bottom: 14px; border-bottom: 1px solid var(--border-subtle); }
.cp-hw-postcard { padding: 14px 0; border-bottom: 1px solid var(--border-subtle); }
.cp-hw-postcard:last-child { border-bottom: 0; }
.cp-hw-postcard__head { display: flex; gap: 10px; align-items: center; margin-bottom: 6px; flex-wrap: wrap; }
.cp-hw-member { display: flex; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--border-subtle); flex-wrap: wrap; }
.cp-hw-member:last-child { border-bottom: 0; }
.cp-hw-member__main { flex: 1; min-width: 160px; display: grid; }
.cp-hw-member__main small { font-size: .82rem; color: var(--text-secondary); }
.cp-hw-thread { display: flex; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--border-subtle); text-decoration: none; color: inherit; }
.cp-hw-thread:last-child { border-bottom: 0; }
.cp-hw-thread__main { flex: 1; min-width: 0; display: grid; }
.cp-hw-thread__main small { color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cp-hw-thread.is-unread strong { color: var(--text-link); }
.cp-hw-thread__meta { font-size: .8rem; color: var(--text-muted); display: flex; gap: 6px; align-items: center; }
.cp-hw-chat { display: grid; gap: 10px; }
.cp-hw-msg { max-width: 78%; padding: 10px 14px; border-radius: 16px; background: var(--surface-muted, #faf7f2); border: 1px solid var(--border-subtle); justify-self: start; }
.cp-hw-msg.is-mine { justify-self: end; background: var(--color-info-soft, #eef3fb); }
.cp-hw-msg small { display: block; margin-top: 4px; font-size: .74rem; color: var(--text-muted); }

/* ── dashboard cards ────────────────────────────────────────────────── */
.cp-hw-units { display: grid; gap: 8px; }
.cp-hw-unit { display: flex; gap: 10px; align-items: center; justify-content: space-between; padding: 8px 10px; border-radius: var(--radius-md, 12px); background: var(--surface-muted, #faf7f2); text-decoration: none; color: inherit; }
.cp-hw-unit:hover { background: var(--greige-200, #f1ebe2); }
.cp-hw-unit__t { font-weight: 600; font-size: .9rem; }
.cp-hw-unit__m { font-size: .78rem; color: var(--text-muted); white-space: nowrap; }
.cp-hw-ref { display: inline-flex; gap: 6px; align-items: center; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .8rem; letter-spacing: .03em; padding: 3px 10px; border-radius: 999px; background: rgba(255,255,255,.12); color: #fff; }
.cp-hw-ref [data-lucide], .cp-hw-ref svg { width: 13px; height: 13px; }
