/* AGENT MODE'S PARTS, their rules (P3-17's "0a", RD 10-05, Q-A): moved verbatim from agent.css with the
   renderers they style (agent-mode-parts.js). Linked straight after agent.css, so the cascade is unchanged. */
/* The period token's value is a button, and reads as the value it replaces. */
.v2-agp .agp-period {
  padding: 0; border: 0; background: transparent; color: var(--ink); cursor: pointer;
  font: inherit; text-decoration: underline dotted var(--line); text-underline-offset: 3px;
}
.v2-agp .agp-period:hover { text-decoration-color: var(--muted); }
.v2-agp .agp-period:focus-visible { outline: 2px solid var(--focus, var(--ink)); outline-offset: 2px; }
/* Refused over (D-247): the warn word on warn-soft marks the token, and the problem line names the token and says why. */
.v2-agp .sb-token.agp-refused { border-color: transparent; background: var(--warn-soft); color: var(--warn); }
.v2-agp .sb-token.agp-refused .sb-tokx { border-left-color: transparent; color: var(--warn); }
/* The drawn text is the word and the value, which shell.css colours itself (faint, ink); the period's value is a button in ink. */
.v2-agp .sb-token.agp-refused .sb-tokw, .v2-agp .sb-token.agp-refused .sb-tokv { color: var(--warn); }
.v2-agp .agp-st-h { margin: 0 0 4px; font: 600 var(--type-small-size)/1.4 var(--font-sans); color: var(--ink); }
/* Shuffle (V10 Amendment 1, B): under the columns, a link, since it only rotates what is shown. */
.v2-agp .agp-st-shuffle { margin-top: 8px; font: 500 var(--type-meta-size)/1.4 var(--font-sans); }
/* ── The visible plan (V10 2a) ──────────────────────────────────────────────────
   The steps a run named, in the draft's muted ink: done in past tense behind a filled
   mark, the one in hand behind a ring, the rest behind a faint dot. A stopped run keeps
   the list with only its done steps marked; a finished run's steps sit on the hover of
   its one line. */
.v2-agp .agp-draft .agp-clock { margin: 0 0 4px; font: 600 var(--type-meta-size)/1.4 var(--font-sans); color: var(--muted);
  font-variant-numeric: tabular-nums; }
.v2-agp .agp-plan-l { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 3px; }
.v2-agp .agp-plan-l:empty { display: none; }
.v2-agp .agp-draft .agp-plan-l { margin: 0 0 8px; }
.v2-agp .agp-plan-l li { position: relative; padding-left: 16px; font: 400 var(--type-meta-size)/1.5 var(--font-sans); color: var(--faint); }
.v2-agp .agp-plan-l li::before { content: ""; position: absolute; left: 2px; top: 0.55em; width: 6px; height: 6px;
  border-radius: 50%; background: var(--edge-hover); }
.v2-agp .agp-plan-l li.done { color: var(--muted); }
.v2-agp .agp-plan-l li.done::before { background: var(--pos); }
.v2-agp .agp-plan-l li.now { color: var(--ink); }
.v2-agp .agp-plan-l li.now::before { background: none; box-shadow: inset 0 0 0 1.5px var(--link); }
.v2-agp .agp-resolved.two .t, .v2-agp .agp-resolved.two .a { display: block; -webkit-line-clamp: 1; line-clamp: 1;
  overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.v2-agp .agp-resolved.two .a { color: var(--ink); }
/* ── A document's publish step (V10 2c) ────────────────────────────────────────────
   Under the head, where the gate's words sit and in their type: the destinations as buttons,
   then the preview's lines and Send, then the outcome. A refusal is said on its own line. */
.v2-agp .agp-mat-pub { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px;
  font: 400 var(--type-meta-size)/1.5 var(--font-sans); color: var(--ink); }
.v2-agp .agp-mat-pub .t { font-weight: 500; }
.v2-agp .agp-mat-pub-l { flex-basis: 100%; display: flex; flex-direction: column; gap: 2px; color: var(--muted); }
.v2-agp .agp-mat-pub-p { flex-basis: 100%; color: var(--muted); }
/* AN ANSWER'S SCOPE (AGT Phase 2a): the quiet line under an answer naming the whole scope it read,
   each field's word set a step darker than its value. The line itself is a D11 note. */
.v2-agp .agp-scope-w { color: var(--body); font-weight: 500; }
/* A message's one control: the trigger of its menu (P3-17 A2, AM-2). It sits in .agp-acts, so it shows on hover and on
   focus, never at rest, and always where a pointer cannot hover (console.css). */
.v2-agp .agp-act-more {
  display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; padding: 0; cursor: pointer;
  background: transparent; border: 0; border-radius: var(--r-sm); color: var(--muted); font: 500 var(--type-small-size)/1 var(--font-sans);
}
.v2-agp .agp-act-more:hover, .v2-agp .agp-act-more[aria-expanded="true"] { background: var(--hover); color: var(--ink); }
.v2-agp .agp-act-more:focus-visible { outline: 2px solid var(--focus, var(--ink)); outline-offset: 2px; color: var(--ink); }
/* The write's spend: one quiet line, last on an approval card before its controls (P3-17 A3, D-73). */
.v2-agp .agp-card-spend { font: 500 var(--type-meta-size)/1.4 var(--font-sans); color: var(--ink); }
/* Not enough credits (AM-3): the card a send the month cannot cover draws under the conversation. */
.v2-agp .agp-card-short { margin-top: 8px; }
/* What is left this month, on the first screen (AGM-37): a quiet line above the doors. */
.v2-agp .agp-month { margin-top: 10px; }
/* A4: the inbox in the host's one drawer. It keeps the panel's class for its cards' looks, laid in the drawer's body
   rather than fixed at the screen's edge. */
.v2-agp.agp-drawn { position: static; z-index: auto; width: auto; max-width: none; display: block;
  background: none; border-left: 0; box-shadow: none; transition: none; }
.v2-agp .agp-inbox-failed { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; }
/* A decision's refusal, inside the drawer above the cards (ruling 10-08, item 4). */
.v2-agp .agp-inbox-refused { margin: 0 0 10px; }
