/* Live Activity card — current task + training job + recent tool calls. */

.live__status {
    margin-left: auto;
}
.live__body {
    display: flex;
    flex-direction: column;
    gap: var(--sp-4);
}
.live__section {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
}
.live__section-title {
    font-size: var(--fs-xs);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-text-muted);
    margin: 0;
}

/* Current task */
.live__task-title  { font-weight: 600; }
.live__task-id     { color: var(--color-text-dim); font-family: var(--font-mono); font-size: var(--fs-xs); margin-left: var(--sp-2); }
.live__task-desc   { color: var(--color-text-muted); font-size: var(--fs-sm); }

/* Training job */
.live__phase           { font-size: var(--fs-sm); }
.live__phase-icon      { margin-right: var(--sp-2); }
.live__phase-elapsed   { color: var(--color-text-dim); font-family: var(--font-mono); margin-left: var(--sp-2); }
.live__phase-vast      { color: var(--color-text-muted); font-size: var(--fs-xs); }
.live__phase-stats     { color: var(--color-text-muted); font-size: var(--fs-xs); font-family: var(--font-mono); }
.live__phase-log       { display: flex; gap: var(--sp-2); flex-wrap: wrap; }
.live__phase-log-item  {
    display: inline-flex; align-items: center; gap: var(--sp-half);
    padding: var(--sp-quarter) var(--sp-2);
    background: var(--color-surface-alt);
    border-radius: var(--radius-pill);
    font-size: var(--fs-xs);
    color: var(--color-text-muted);
}

/* Tool log */
.live__log {
    display: flex;
    flex-direction: column;
    gap: var(--sp-half);
    max-height: var(--height-log-list);
    overflow-y: auto;
}
.live__log-row {
    display: grid;
    /* Fixed-width duration + time columns so missing-duration rows
       still align with rows that have one. Previously `auto auto`
       collapsed when duration was absent and pulled time leftward. */
    grid-template-columns: 100px 1fr 64px 90px;
    gap: var(--sp-2);
    align-items: center;
    padding: var(--sp-half) var(--sp-2);
    border-radius: var(--radius-sm);
    font-size: var(--fs-xs);
    font-family: var(--font-mono);
}
.live__log-row:hover { background: var(--color-surface-alt); }
.live__log-tool   { font-weight: 600; color: var(--color-accent); }
.live__log-detail { color: var(--color-text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.live__log-dur    { color: var(--color-text-dim); text-align: right; }
.live__log-time   { color: var(--color-text-dim); text-align: right; }

/* Fail state — colour every cell, not just the row container, since
   each child has its own colour rule that would otherwise win the
   cascade. (Audit finding #23.) */
.live__log-row--fail .live__log-tool,
.live__log-row--fail .live__log-detail,
.live__log-row--fail .live__log-dur,
.live__log-row--fail .live__log-time {
    color: var(--color-danger);
}

/* System resources grid */
.sysuse__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--sp-3);
}
.sysuse__metric {
    display: flex;
    flex-direction: column;
    gap: var(--sp-half);
}
.sysuse__label {
    font-size: var(--fs-xs);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
}
.sysuse__value {
    font-size: var(--fs-sm);
    font-family: var(--font-mono);
    color: var(--color-text);
}

.ascension__status        { font-size: var(--fs-sm); margin-bottom: var(--sp-1); }
.ascension__status--ok    { color: var(--color-success); }
.ascension__status--bad   { color: var(--color-danger); }
.ascension__status--idle  { color: var(--color-text-muted); }
.ascension__details       { margin-top: var(--sp-3); }
