/* programme: Queue, Sellers, My team, AI Studio, My profile. Tokens only (castomo-dashkit rule 4: no colour literal
   outside 00-tokens.css), logical properties only so dir="rtl" mirrors by itself. Kit classes first; this file holds
   only what the kit has no word for. No new breakpoints (rule 36): the kit's own steps decide the phone layout. */

/* A removed or dead row recedes by colour AND by its badge's word, never by dimming alone. */
.table tr.dim td { color: var(--ink-3); }

/* The last error of a job is a sentence from the service, often long: it wraps instead of widening the table. */
.queue-error { color: var(--bad); font-size: var(--t-1); overflow-wrap: anywhere; }

/* Rate under rate: the base, then the promotional and branch arrangements that shape the money. */
.rate-lines { display: grid; justify-items: end; gap: 2px; }
.rate-lines small { color: var(--ink-3); font-size: var(--t-1); }

/* The "more" menu sits beside the row's primary buttons. */
.row-menu { display: inline-flex; }

/* AI Studio: one disclosure per prompt. The summary is the card's head. */
.prompt-card > summary { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s1); cursor: pointer; }
.prompt-card > summary { list-style: none; }
.prompt-card > summary::-webkit-details-marker { display: none; }
.prompt-caret { margin-inline-start: auto; display: inline-flex; color: var(--ink-3); }
.prompt-card[open] .prompt-caret { transform: rotate(180deg); }
.prompt-card[open] > summary { margin-block-end: var(--s2); }
.prompt-name { font-weight: 650; }
.prompt-purpose { flex: 1 1 14rem; min-inline-size: 0; color: var(--ink-3); }
.prompt-text { inline-size: 100%; min-block-size: 16rem; resize: vertical; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: var(--t-1); }

/* My profile: the photo, and the signature as a prospect will read it (a rule marks the quoted block, not extra room). */
.profile-photo-row { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--s2); }
.profile-photo-row > .stack-sm { flex: 1 1 14rem; min-inline-size: 0; }
.profile-photo-slot { display: inline-flex; }
.profile-photo { inline-size: 5rem; block-size: 5rem; border-radius: var(--radius-pill); object-fit: cover; background: var(--accent-soft); }
.profile-preview { border-inline-start: 3px solid var(--rule-strong); padding-inline-start: var(--s2); overflow-wrap: anywhere; }
.profile-preview p { margin: 0; min-block-size: 1.5em; }

/* Roster and team rows keep their two or three actions on one line while the table has room; on a phone each row is a card and they wrap (kit step 640). */
.row-actions { flex-wrap: nowrap; justify-content: flex-end; }
@media (max-width: 640px) { .row-actions { flex-wrap: wrap; justify-content: flex-start; } }

/* Short, fixed-width cells (a kind, a status, a date) never wrap inside a table row; on a phone the row is a card and they may (kit step 640). */
@media (min-width: 641px) { .table td.keep-line { white-space: nowrap; } }
