/* ==========================================================================
   coram-drill.css · the four-stage illustrative workflow (a school drill)
   Loads after coram.css. Classes are prefixed `cd-`; the component is
   rendered by coram-drill.js into any element carrying [data-coram-drill].

   The DRILL tag and the illustrative-data line are visible in every stage.
   Nothing here is product UI: it is a proposed composition that explains
   notice, camera context, team communication and the review record.
   ========================================================================== */

.cd{position:relative;background:#fff;border:1.5px solid var(--c-ink);border-radius:4px;overflow:hidden;color:var(--c-ink)}
.cd__head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:14px 18px;border-bottom:1px solid var(--c-rule-2);background:var(--c-paper)}
.cd__meta{font-size:12.5px;color:var(--c-ink-3);letter-spacing:.02em}
.cd__steps{list-style:none;padding:0;margin:0 0 0 auto;display:flex;gap:6px;flex-wrap:wrap}
.cd__step{font-family:inherit;display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 12px 0 8px;border:1px solid var(--c-rule-2);border-radius:3px;background:#fff;color:var(--c-ink-2);font-size:12.5px;font-weight:500;cursor:pointer}
.cd__step i{font-style:normal;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--c-paper-2);color:var(--c-ink);font-size:11px;font-variant-numeric:tabular-nums}
.cd__step[aria-current="step"]{border-color:var(--c-ink);color:var(--c-ink);background:#fff}
.cd__step[aria-current="step"] i{background:var(--c-ink);color:#fff}
.cd__step.is-done i{background:var(--c-green-100);color:var(--c-green-deep)}
.cd__step:hover{border-color:var(--c-ink)}
.cd__step span{display:none}
@media (min-width:900px){.cd__step span{display:inline}}

.cd__stage{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
@media (min-width:1000px){.cd__stage{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}
.cd__text{padding:clamp(20px,2.6vw,36px) clamp(18px,2.4vw,36px);display:grid;gap:14px;align-content:start;border-bottom:1px solid var(--c-rule)}
@media (min-width:1000px){.cd__text{border-bottom:0;border-right:1px solid var(--c-rule)}}
.cd__k{font-size:11.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--c-green-ink)}
.cd__h{font-size:clamp(22px,2.2vw,30px);font-weight:500;line-height:1.1;letter-spacing:-.015em;text-wrap:balance;outline:none}
.cd__h:focus-visible{outline:2px solid var(--c-ink);outline-offset:4px}
.cd__p{font-size:15.5px;line-height:1.5;color:var(--c-ink-2);max-width:46ch}
.cd__dl{display:grid;gap:10px;margin-top:6px;padding-top:14px;border-top:1px solid var(--c-rule)}
.cd__dl div{display:grid;gap:3px}
.cd__dl dt{font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--c-ink-3)}
.cd__dl dd{font-size:14px;line-height:1.45;color:var(--c-ink)}
.cd__bound{font-size:12.5px;line-height:1.45;color:var(--c-ink-3);padding-top:10px;border-top:1px dashed var(--c-rule-2)}

.cd__panel{padding:clamp(18px,2.4vw,32px);background:var(--c-paper);display:grid;gap:16px;align-content:start;min-width:0}
.cd__card{background:#fff;border:1px solid var(--c-rule-2);border-radius:3px;padding:14px 16px;display:grid;gap:8px}
.cd__card--night{background:var(--c-charcoal);color:#fff;border-color:transparent}
.cd__cardhead{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.cd__cardhead .cd__t{font-size:17px;font-weight:500;line-height:1.2}
.cd__cardhead .c-tag{min-height:22px;font-size:10.5px}
.cd__cardmeta{font-size:12.5px;color:var(--c-ink-3);font-variant-numeric:tabular-nums}
.cd__card--night .cd__cardmeta{color:var(--c-night-faint)}
.cd__panel .c-events{margin-top:2px}
.cd__panel .c-event{padding:10px 0;font-size:14px}
.cd__panel .c-event__where{font-size:13.5px}
.cd__panel .c-event__act{display:none}

/* stage 2: one frame and a camera list */
.cd__cams{display:grid;gap:12px}
@media (min-width:640px){.cd__cams{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}}
.cd__camlist{list-style:none;padding:0;margin:0;display:grid;align-content:start;border-top:1px solid var(--c-rule-2)}
.cd__cam{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;padding:10px 0;border-bottom:1px solid var(--c-rule);font-size:13.5px;line-height:1.35}
.cd__cam b{font-weight:500;color:var(--c-ink);font-variant-numeric:tabular-nums}
.cd__cam span{color:var(--c-ink-2)}
.cd__cam small{grid-column:2;font-size:12px;color:var(--c-ink-3)}
.cd__cam[aria-current="true"] b{color:var(--c-green-ink)}
.cd__cam[aria-current="true"] b::before{content:'\25CF';font-size:9px;vertical-align:2px;margin-right:6px}

/* stage 3: the thread */
.cd__thread{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.cd__msg{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;padding:10px 12px;background:#fff;border:1px solid var(--c-rule);border-radius:3px;font-size:14.5px;line-height:1.4}
.cd__msg header{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.cd__msg header b{font-weight:500;color:var(--c-ink)}
.cd__msg header time{font-size:12px;color:var(--c-ink-3);font-variant-numeric:tabular-nums}
.cd__msg header em{font-style:normal;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--c-ink-3)}
.cd__msg p{color:var(--c-ink-2)}
.cd__msg--lead{border-color:var(--c-green);background:var(--c-green-050)}
.cd__note{font-size:12.5px;line-height:1.45;color:var(--c-ink-3)}

/* stage 4: the record */
.cd__record{display:grid;gap:14px}
.cd__summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px 16px;padding:14px 16px;background:#fff;border:1px solid var(--c-rule-2);border-radius:3px}
.cd__summary div{display:grid;gap:3px}
.cd__summary dt{font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--c-ink-3)}
.cd__summary dd{font-size:14.5px;color:var(--c-ink);font-variant-numeric:tabular-nums}

.cd__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 18px;padding:14px 18px;border-top:1px solid var(--c-rule-2);background:#fff}
.cd__nav{display:flex;gap:10px;align-items:center}
.cd__pos{font-size:12.5px;color:var(--c-ink-3);font-variant-numeric:tabular-nums;margin:0 6px}
.cd__legal{font-size:12px;line-height:1.45;color:var(--c-ink-3);max-width:62ch}
.cd__legal b{font-weight:500;color:var(--c-ink-2)}
.cd [hidden]{display:none!important}
@media (max-width:520px){
  .cd__head{padding:12px 14px}
  .cd__foot{padding:12px 14px}
  .cd__panel{padding:16px 14px}
  .cd__text{padding:18px 14px}
}
