/* Administration → System → Add-ons (M-382). Page-scoped presentation only: the summary line, the
   per-asset present/absent list, and the install form's spacing. Token-driven; reuses existing status
   colours (ok / error-text / text-muted) — no new palette. Mirrors the other System pages' page-scoped
   sheets. */

.platform-system-ocr__summary {
    margin: 0 0 var(--platform-space-md, 1rem);
}

/* Per-asset present/absent rows: label left, state right, on a subtle divider. */
.platform-system-ocr__assets {
    margin: 0 0 var(--platform-space-md, 1rem);
    padding: 0;
    list-style: none;
}

.platform-system-ocr__asset {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: var(--platform-space-md, 1rem);
    padding: var(--platform-space-sm, 0.5rem) 0;
    border-bottom: 1px solid var(--platform-color-border, #cfd8dc);
}

.platform-system-ocr__asset:last-child {
    border-bottom: none;
}

.platform-system-ocr__asset-label {
    font-family: var(--platform-font-mono, monospace);
    color: var(--platform-color-text, #2c3e50);
    word-break: break-all;
}

.platform-system-ocr__asset-state {
    flex: none;
    font-weight: 600;
    color: var(--platform-color-error-text, #c0392b);
}

/* An installed asset flips the state text to the OK colour (M-382): the row carries no modifier, so the
   installed state is signalled by scoping under the list item's `is-installed` hook. */
.platform-system-ocr__asset.is-installed .platform-system-ocr__asset-state {
    color: var(--platform-color-ok, #27ae60);
}

.platform-system-ocr__install {
    margin: 0 0 var(--platform-space-md, 1rem);
}

.platform-system-ocr__note {
    margin: 0;
    color: var(--platform-color-text-muted, #636e6f);
    font-size: var(--platform-font-size-sm, 0.875rem);
}

/* ── What the application image provides (M-717) ─────────────────────────────────────────────────────
 * The read-only half of this page. It reuses `.platform-system-ocr__asset` above rather than declaring a
 * second present/absent row: the two lists answer the same shape of question ("is this here?") and one of
 * them going a different colour from the other on the same page would be a bug nobody would think to look
 * for (§3). What is added is the caution, and the one thing a prerequisite row has that an asset row does
 * not — the sentence saying what has already stopped working. */

/* Not a routine notice: it says something an operator has to act on, and the action is a rebuild on the
   server. Same treatment as the backups page's `--warn` alert, from the same tokens. */
.platform-system-ocr__alert {
    margin: 0 0 var(--platform-space-md, 1rem);
    padding: var(--platform-space-md, 1rem);
    background: var(--platform-color-warning-surface);
    border: 1px solid var(--platform-color-warning);
    border-radius: var(--platform-radius-md, 0.375rem);
}

.platform-system-ocr__alert-title {
    margin: 0 0 var(--platform-space-xs, 0.25rem);
    font-weight: 700;
}

.platform-system-ocr__alert p:last-child {
    margin-bottom: 0;
}

/* The consequence, under the name it belongs to. `block` so the name keeps its own line and the monospace
   does not run into prose: the row's label cell is the name AND its sentence, and only the name is a
   literal to be read character by character. */
.platform-system-ocr__asset-note {
    display: block;
    margin-top: var(--platform-space-xs, 0.25rem);
    color: var(--platform-color-text-muted, #636e6f);
    font-family: var(--platform-font-body);
    font-size: var(--platform-font-size-sm, 0.875rem);
    word-break: normal;
}
