/* Daily Life Doc, round 27 (zone PL): the plan's edits that wait for Publish, the marks Required and Optional, the
   limits a line puts on Settings → Actions, the sheets of Publish and Organize (js/plan/plan-draft.js, plan-need.js,
   plan-publish.js, plan-organize.js). Tokens from css/base.css; the rows of the Publish sheet are What happens next's
   (.nxd, .nxi in css/plan.css). */

/* A line new or changed and not yet published: one quiet dot at its start (no words). */
.prow.unpub > .pln::after { content: ''; position: absolute; left: -9px; top: 13px; width: 5px; height: 5px; border-radius: 50%;
  background: var(--sage); animation: dd-pop 300ms var(--ease-out) both; }
.prow.unpub > .pln.i1::after { left: -21px; }

/* The mark after a chip: one quiet word (a button on the Plan tab); the limits as quiet words beside it. */
.pneed, .plim { display: inline-block; padding: 0 4px; border: 0; border-radius: 6px; background: transparent; color: var(--ink3);
  font: inherit; font-size: var(--t-2xs); font-weight: 500; line-height: 20px; white-space: nowrap; }
button.pneed { cursor: pointer; transition: background-color 160ms ease, color 160ms ease; }
button.pneed:hover { background: var(--soft); color: var(--ink2); }
button.pneed:active { transform: scale(.96); }
button.pneed:focus-visible { outline: 2px solid var(--sage); outline-offset: 1px; }
.pneed.optional { color: var(--ink3); font-style: italic; }
.plim { color: var(--care-d); }

/* The head's buttons: Publish is the one dark pill; Organize says "Reading…" in place while the call runs. */
.ptop .pbtns { flex-wrap: wrap; justify-content: flex-end; row-gap: 6px; max-width: 100%; }
.porg[disabled] { opacity: 1; color: var(--ink3); animation: dd-wait 1.2s ease-in-out infinite; }

/* The Publish sheet: What happens next's rows with no Pause; a new or changed line's row has the quiet dot. */
.pubs .nxi { grid-template-columns: 100px minmax(0, 1fr); }
.pubs .nxd { position: static; background: transparent; }
.pubr .tx .nxn { font-size: var(--t-sm); color: var(--ink); }
.pubr.new .tx .nxn::before { content: ''; display: inline-block; width: 5px; height: 5px; margin: 0 6px 2px 0; border-radius: 50%; background: var(--sage); vertical-align: middle; }
.pubgone { padding: 3px 0 3px 108px; font-size: var(--t-sm); color: var(--ink3); text-decoration: line-through; text-decoration-color: color-mix(in srgb, var(--ink3) 60%, transparent); }

/* The Organize sheet's findings (its numbered list is in plan-organize.css). */
@media (min-width: 881px) { .sheet.wide, .sheet.wide.tall { width: min(920px, calc(100% - 48px)); } }
.orgfs { display: flex; flex-direction: column; gap: 8px; margin: 0 0 14px; padding: 0; list-style: none; }
.orgf { font-size: var(--t-sm); }
.orgk { justify-self: start; padding: 1px 8px; border-radius: 7px; background: var(--soft); color: var(--ink2); font-size: var(--t-2xs); font-weight: 600; white-space: nowrap; }
.orgs { display: flex; flex-direction: column; gap: 2px; color: var(--ink); }
.orgs small { font-size: var(--t-xs); color: var(--ink3); }
@media (max-width: 640px) {
  .pubs .nxi { grid-template-columns: 76px minmax(0, 1fr); }
  .pubgone { padding-left: 84px; }
}

/* Round 27 (fixer FX-E, walk W1 fault 7): a "?" line in the Publish sheet sends nothing: "?" in the time's place, its
   name grey and not struck through (a struck row is a removed one). */
.pubs .pubq .tm { color: var(--ink2); font-weight: 600; }
.pubs .pubq .tx, .pubs .pubq .tx .nxn { color: var(--ink3); text-decoration: none; }

/* Round 27 (fixer FX-E, walk W1 fault 8): Publish on the Chat tab while the client's plan waits for it (the same sheet
   as the Plan tab's), one dark pill at the right above the field. */
.cm-pub { display: flex; justify-content: flex-end; padding: 6px 14px 0; }
.cm-pub[hidden] { display: none; }
