/* Freshpath HQ live additions (same tokens as styles.css). */
.chip.env-prod .led{background:var(--green);box-shadow:0 0 8px var(--green)}
.chip.env-dev{color:var(--amber);border-color:rgba(251,191,36,.35)} .chip.env-dev .led{background:var(--amber);box-shadow:0 0 8px var(--amber)}
.chip.env-bad{color:var(--red);border-color:rgba(248,113,113,.35)} .chip.env-bad .led{background:var(--red);box-shadow:0 0 8px var(--red)}
.stagepill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid;white-space:nowrap}
.stagepill i{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 6px currentColor}
.cstat{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.timeline{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:10px;margin:6px 0 4px}
.tstep{position:relative;padding:12px 12px 10px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.tstep::after{content:"";position:absolute;top:22px;right:-11px;width:10px;height:2px;background:var(--line2)}
.tstep:last-child::after{display:none}
.tstep .tn{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.tstep b{display:block;margin:4px 0 4px;font-size:14px}
.tstep p{margin:0;color:var(--muted);font-size:12px;line-height:1.4}
.tstep .tdate{margin-top:8px;font-family:var(--mono);font-size:11px;color:var(--dim)}
.tstep.done{border-color:rgba(52,211,153,.3)} .tstep.done .tn{color:var(--green)}
.tstep.current{border-color:rgba(34,211,238,.55);background:linear-gradient(180deg,rgba(34,211,238,.10),rgba(167,139,250,.05));box-shadow:0 0 22px rgba(34,211,238,.15)}
.tstep.current .tn{color:var(--cyan)} .tstep.current .tdate{color:var(--text)}
.tnow{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:10px 12px;border-radius:10px;background:rgba(34,211,238,.06);border:1px solid rgba(34,211,238,.2);font-size:13px}
.viral{display:flex;align-items:center;gap:14px;padding:14px 16px;margin-bottom:16px;border-radius:var(--r);border:1px solid rgba(244,114,182,.45);background:linear-gradient(90deg,rgba(244,114,182,.14),rgba(167,139,250,.08));box-shadow:0 0 30px rgba(244,114,182,.15)}
.viral .vico{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:var(--pink);background:rgba(244,114,182,.12);border:1px solid rgba(244,114,182,.4)}
.viral b{display:block} .viral small{color:var(--muted);font-size:12px}
.checkin{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 14px;margin-bottom:16px;border-radius:12px;border:1px solid rgba(251,191,36,.3);background:rgba(251,191,36,.06);font-size:13px}
.sessions .sess{padding:12px 0;border-bottom:1px solid var(--line)} .sessions .sess:last-child{border-bottom:0}
.sess .shd{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--dim)} .sess .shd time{margin-left:auto;font-family:var(--mono)}
.sess p{margin:6px 0 6px;font-size:13.5px}
.sess ul{margin:0;padding-left:18px;color:var(--muted);font-size:12.5px} .sess li::marker{color:var(--cyan)}
.cad{display:grid;grid-template-columns:120px 1fr 60px;gap:10px;align-items:center;font-size:12.5px;margin-bottom:8px}
.empty{padding:18px;color:var(--dim);font-size:13px;text-align:center;border:1px dashed var(--line2);border-radius:12px}
.formrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.formrow .input{flex:1;min-width:140px}
.keyshow{font-family:var(--mono);font-size:12.5px;word-break:break-all;padding:12px;border-radius:10px;background:rgba(0,0,0,.35);border:1px solid var(--line2);margin:10px 0;user-select:all}
.err{color:var(--red);font-size:12.5px;margin-top:8px;min-height:1em}
.uprow{display:flex;gap:4px;align-items:flex-end;height:18px} .uprow i{width:5px;border-radius:2px;background:var(--green);height:100%;opacity:.8} .uprow i.bad{background:var(--red)}
.codebox{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:12px;border:1px solid rgba(34,211,238,.35);background:rgba(34,211,238,.06);margin-bottom:10px}
select.input{appearance:none}
textarea.input{min-height:72px;padding:10px 12px;resize:vertical;font:inherit;color:inherit}
@media (max-width:820px){.timeline{grid-auto-flow:row}.tstep::after{display:none}.cad{grid-template-columns:90px 1fr 50px}}
.tcard{overflow-x:auto}
