/* ------------------------------------------------------------------ the dashboard, continued

   `style.css` already carries this screen's layout — `.dash`, `.dash__bar`, `.dash__button`,
   `.dash__said` and the cards. What is here is the part that arrived with `12` §2: the bar is now
   drawn from the platform's answer to "what may this person do", so the screen has three states it
   never had before — the answer has not arrived, the answer could not be read, and the answer is
   shorter than somebody expected.

   **Everything below is legible without this file.** If the stylesheet were never linked, the
   withheld line is a paragraph, the refusal is a paragraph with `.dash__said`'s own look, and the
   route marks fall back to `.reason` from `screens/people.css`, which is linked already. That is
   deliberate: nothing on this screen says anything by colour alone, so nothing on it can be lost by
   a stylesheet failing to load. Every mark carries its word inside it. */

/* The count of entries that are the platform account's, and are therefore not on the bar at all.

   Muted and small, because it is standing text rather than news — but it is NOT hidden behind a
   tooltip, and that is the whole reason it has a class. A bar that simply came up short looks like a
   page that failed to load; one line is the difference between "restricted" and "broken", and a
   tooltip does not exist on a touch screen. */
.dash__withheld {
    margin: 0;
    font-size: 0.85rem;
    color: var(--text-muted);
    overflow-wrap: anywhere;
}

/* The capability answer could not be read, so no entry is drawn at all.

   It takes `.dash__said`'s shape and swaps the accent edge for the danger one: this is not the
   platform explaining an entry, it is the platform failing to say what somebody may do — and an
   empty bar with no mark on it would read as "none of this is yours", which is a claim about a
   person's rights made out of an answer nobody could parse. */
.dash__refusal {
    border-left-color: var(--danger);
    color: var(--text);
}

/* Why the list of applications is empty, in the platform's own words. `.empty` from `style.css`
   carries the look; this only keeps it off the bar above it. */
.dash__empty {
    margin-top: 0.25rem;
}

/* The routes that reach one application, on its card.

   The marks themselves are `.reason` and `.reason--owner|bundle|direct` from `screens/people.css`:
   one vocabulary for one fact, so the mark that means "a bundle carries this" looks the same on the
   card as it does on the screen where somebody revokes it. Only the two the people screen has no
   word for are defined here. */
.dash__reasons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

/* Root reaches every application by BEING root, which is not a row in any of the four access tables.
   Filled rather than outlined, because it is the one route no revocation touches. */
.reason--root {
    border-color: var(--accent);
    background: var(--accent);
    color: var(--accent-text);
    font-weight: 600;
}

/* The platform admits an application and cannot say by which route — two readings of one rule that
   disagree. Marked as a fault rather than left blank: an empty space is exactly what nobody notices. */
.reason--unstated {
    border-color: var(--danger);
    background: var(--danger-weak);
    color: var(--danger);
    font-weight: 600;
}
