/* ── LISA (#151): launch report, prefix ls-; the chat chrome is LUKE's (lk-) ─ */
/* In the B&M style since #168: square, the brand colour (no purple of its own), and the derived
   status colours --status-* from application.css - derived, not confirmed by B&M (PM open). */

/* .lk.ls, not .ls: lisa.css loads before luke.css, and LUKE's three-column .lk would win. */
.lk.ls { grid-template-columns: minmax(0, 1fr) 300px; }
@media (max-width: 1150px) { .lk.ls { grid-template-columns: minmax(0, 1fr); } }
.ls-brand { color: var(--bm-main); }
.ls-new { background: var(--bm-main); }
.ls-new:hover { background: var(--white); color: var(--bm-main); }
.ls-send { background: var(--bm-main); }
.ls-steps { margin: 0; padding-left: 1.1rem; display: flex; flex-direction: column; gap: .2rem; }

.ls-report { border: 1px solid var(--rule); border-top: var(--underline-bar) solid var(--bm-main); border-radius: var(--radius-none); overflow: hidden; margin-top: .5rem; background: var(--white); }
.ls-report__head { display: flex; flex-direction: column; gap: .15rem; padding: .75rem .9rem; background: var(--grey-100); }
.ls-report__title { font-weight: 500; font-size: 1rem; color: var(--bm-main); }
.ls-report__meta { font-size: .8125rem; color: var(--grey-600); }
.ls-report__note { font-size: .75rem; color: var(--status-warn); }
.ls-sec { padding: .6rem .9rem; border-top: 1px solid var(--rule); display: flex; flex-direction: column; gap: .35rem; }
.ls-sec h3 { margin: 0; font-size: .9375rem; font-weight: 500; display: flex; gap: .4rem; align-items: center; }
.ls-count { font-size: .6875rem; font-weight: 700; border-radius: var(--radius-none); padding: .05rem .45rem; background: var(--grey-100); font-variant-numeric: tabular-nums; }
.ls-sec--blocker .ls-count { background: color-mix(in srgb, var(--status-error) 12%, var(--white)); color: var(--status-error); }
.ls-sec--warning .ls-count { background: color-mix(in srgb, var(--status-warn) 12%, var(--white)); color: var(--status-warn); }
.ls-sec--ok .ls-count { background: color-mix(in srgb, var(--status-ok) 12%, var(--white)); color: var(--status-ok); }
.ls-find { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: .1rem .8rem; font-size: .8125rem; padding: .3rem 0; border-bottom: 1px dashed var(--rule); }
.ls-find:last-child { border-bottom: 0; }
.ls-find__dim { font-weight: 700; }
.ls-find__ev { grid-column: 2; font-size: .75rem; color: var(--grey-600); font-family: ui-monospace, monospace; }
@media (max-width: 600px) { .ls-find { grid-template-columns: minmax(0, 1fr); } .ls-find__ev { grid-column: 1; } }
.ls-oklist { display: flex; flex-wrap: wrap; gap: .3rem; }
.ls-oklist span { background: color-mix(in srgb, var(--status-ok) 12%, var(--white)); color: var(--status-ok); border-radius: var(--radius-none); padding: .1rem .5rem; font-size: .8125rem; }
.ls-next { margin-top: .5rem; }
.ls-overview th, .ls-overview td { text-align: left; }
.ls-overview td { font-variant-numeric: tabular-nums; }
.ls-overview thead th { vertical-align: middle; }
.ls-report__more-form { margin: .3rem 0 0; }

/* Status icons (#168): Material icons (derived, app/assets/images/design_elements/icons) as a mask,
   filled with the derived status colour. */
.ls-icon { display: inline-block; flex: none; width: 18px; height: 18px; vertical-align: -4px; background: currentColor;
           -webkit-mask: center / contain no-repeat; mask: center / contain no-repeat; }
.ls-icon--blocker { background: var(--status-error); -webkit-mask-image: url("/assets/design_elements/icons/error-f2f7d6f9.svg"); mask-image: url("/assets/design_elements/icons/error-f2f7d6f9.svg"); }
.ls-icon--warning { background: var(--status-warn); -webkit-mask-image: url("/assets/design_elements/icons/warning-de951b2f.svg"); mask-image: url("/assets/design_elements/icons/warning-de951b2f.svg"); }
.ls-icon--ok { background: var(--status-ok); -webkit-mask-image: url("/assets/design_elements/icons/check-circle-def10b52.svg"); mask-image: url("/assets/design_elements/icons/check-circle-def10b52.svg"); }
