/* Cadence Project workspace — rides the Principal flagship shell canon
   (docs/design/decisions/2026-08-31-principal-flagship-shell.md): white cards on the warm-grey canvas,
   #E2DED6 hairlines, plum #302437 as the one authority colour, 6px surfaces, sans work-surface title.
   Tiles, tables and buttons follow the app's own Today / run-board patterns, not a settings surface. */
.prj { --p-card: #ffffff; --p-rule: #e2ded6; --p-hair: #f1eee8; --p-ink: #22232a; --p-muted: #7a756e; --p-faint: #a7a099;
  --p-plum: #302437; --p-plum2: #5a3470; --p-plum-soft: #f1ecf4; --p-ok: #147a5a; --p-ok-soft: #dcefe6; --p-warn: #a1751c; --p-hot: #b4423a; --p-hot-soft: #f8e7e5;
  --p-track: #bebdb8; --p-plum-mid: #8f78a2; --p-zebra: #f8f8f5; --p-head: #302437; --p-head-ink: #e9dfcd; --p-r: 6px; color: var(--p-ink); }
/* The shell floors main near 1025px; keep this surface inside the viewport at 980 regardless. */
.prj .prj-wrap { max-width: min(1560px, calc(100vw - 52px)); margin-inline: auto; }
.prj .prj-loading { display: flex; align-items: center; gap: 10px; color: var(--p-muted); font-size: 13px; padding: 40px 0; }
.prj .prj-spin { width: 14px; height: 14px; border: 2px solid var(--p-rule); border-top-color: var(--p-plum2); border-radius: 50%; animation: prjSpin .7s linear infinite; display: inline-block; }
@keyframes prjSpin { to { transform: rotate(360deg); } }
.prj .prj-err { background: var(--p-hot-soft); color: var(--p-hot); border-radius: var(--p-r); padding: 12px 14px; font-size: 13px; }
/* Row A: title + plumbing (the skin sets .page-head h2 to Instrument Sans 650/21; this is the unskinned fallback). */
.prj .prj-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 10px; }
.prj .prj-top-r { display: flex; align-items: center; gap: 8px; min-width: 0; }
.prj .prj-top-name { font-size: 12px; color: var(--p-faint); margin-right: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 320px; }
.prj .prj-top .primary-btn.compact, .prj .prj-top .secondary-btn.compact { padding: 5px 11px; font-size: 12px; border-radius: 6px; }
.prj .seg { border-radius: 6px; }
.prj .prj-head { margin-bottom: 10px; }
.prj .prj-head .actions { display: flex; gap: 8px; }
.prj .prj-head .primary-btn.compact { padding: 6px 12px; font-size: 12px; border-radius: 6px; }
.prj .prj-head .secondary-btn { border-radius: 6px; }
/* Row B: the view switcher (the app's segmented control) + the four facts that never move. */
.prj .prj-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 0 0 10px; }
/* section tabs: the nav bar's own language (text, underline), not a boxed control */
.prj .prj-nav { display: flex; gap: 22px; border-bottom: 1px solid var(--p-rule); flex: 1; min-width: 0; }
.prj .prj-tab { background: none; border: 0; padding: 6px 1px 9px; margin-bottom: -1px; font: inherit; font-size: 13px; font-weight: 500; color: var(--p-muted); cursor: pointer; border-bottom: 2px solid transparent; white-space: nowrap; }
.prj .prj-tab:hover { color: var(--p-ink); }
.prj .prj-tab.on { color: var(--p-ink); font-weight: 650; border-bottom-color: var(--p-plum); }
.prj .prj-top { align-items: flex-end; }
.prj .prj-top-r { padding-bottom: 6px; }
.prj .prj-cnt { display: inline-block; min-width: 16px; padding: 0 5px; border-radius: 999px; background: var(--p-plum-soft); color: var(--p-plum2); font-size: 10.5px; font-weight: 700; margin-left: 3px; line-height: 16px; vertical-align: 1px; }
.prj .prj-kpis { display: inline-flex; align-items: flex-start; gap: 22px; flex-wrap: wrap; }
.prj .prj-chip { display: inline-flex; flex-direction: column; gap: 2px; white-space: nowrap; text-align: right; }
.prj .prj-chip-l { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #8d8880; }
.prj .prj-chip-v { font-size: 14.5px; font-weight: 720; color: #201b26; display: inline-flex; align-items: center; gap: 6px; }
.prj .prj-kpis .prj-chip-v { font-size: 15.5px; justify-content: flex-end; }
.prj .prj-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--p-faint); flex: none; }
.prj .prj-dot.rag-green { background: var(--p-ok); } .prj .prj-dot.rag-amber { background: var(--p-warn); } .prj .prj-dot.rag-red { background: var(--p-hot); }
/* cards */
.prj .prj-card { background: var(--p-card); border: 1px solid var(--p-rule); border-radius: var(--p-r); padding: 12px 14px 14px; min-width: 0; margin-bottom: 10px; }
.prj .prj-card-h { display: flex; align-items: center; justify-content: space-between; gap: 22px; flex-wrap: wrap; row-gap: 6px; margin-bottom: 10px; }
.prj .prj-card-hl { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; min-width: 0; }
.prj .prj-card-hl > strong { font-size: 15px; font-weight: 650; color: var(--p-ink); white-space: nowrap; }
.prj .prj-plan-hl { flex-direction: column; align-items: flex-start; gap: 3px; }
.prj .prj-plan-t { display: flex; align-items: center; gap: 8px; }
.prj .prj-plan-t .prj-dot { width: 9px; height: 9px; }
.prj .prj-plan-t strong { font-size: 16px; font-weight: 650; color: var(--p-ink); }
.prj .prj-plan-sub { font-size: 12.5px; color: var(--p-muted); }
.prj .prj-plan-sub b { color: var(--p-ink); font-weight: 600; }
.prj .prj-card-sub { font-size: 12px; color: var(--p-faint); }
.prj .prj-card-b { font-size: 13px; color: var(--p-muted); }
.prj .prj-arrow-lnk { color: var(--p-faint); font-size: 15px; cursor: pointer; padding: 0 2px; }
.prj .prj-arrow-lnk:hover { color: var(--p-plum2); }
.prj .prj-plum { color: var(--p-plum2); font-weight: 600; }
.prj .prj-quiet { font-size: 12.5px; color: var(--p-faint); padding: 6px 0 2px; }
.prj .prj-empty-card { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--p-muted); padding: 22px 20px; }
.prj .prj-empty-card strong { color: var(--p-ink); font-weight: 600; }
.prj .prj-tl-link { background: none; border: 0; padding: 0; margin: 0; font: inherit; color: inherit; cursor: pointer; text-align: left; display: inline; }
.prj .prj-tl-link:hover { color: var(--p-plum2); text-decoration: underline; }
.prj .prj-tl-link strong { color: var(--p-ink); }
.prj .prj-ink { color: var(--p-ink); font-weight: 500; }
.prj .prj-hot { color: var(--p-hot); font-weight: 600; }
.prj .prj-ok { color: var(--p-ok); font-weight: 700; }
.prj .prj-muted { color: var(--p-muted); }
.prj .prj-faint { color: var(--p-faint); }
.prj .prj-gate-mark { color: var(--p-plum2); font-size: 9px; margin-left: 5px; vertical-align: 1px; }
/* plan stepper */
.prj .prj-legend { font-size: 11px; color: var(--p-faint); display: inline-flex; align-items: center; gap: 5px; }
.prj .prj-legend i { display: inline-block; width: 14px; height: 6px; border-radius: 3px; margin-left: 10px; }
.prj .prj-legend b { margin-left: 10px; }
.prj .prj-legend i.done { background: var(--p-ok); } .prj .prj-legend i.now { background: var(--p-plum); } .prj .prj-legend i.todo { background: var(--p-track); }
.prj .prj-steps-wrap { margin-top: 22px; }
.prj .prj-steps { display: flex; gap: 6px; }
/* every phase gets the same base width so its name stays legible; the rest of the row is shared in proportion to duration */
.prj .prj-step { min-width: 0; flex: 1 1 96px; position: relative; }
.prj .prj-today { position: absolute; top: -4px; height: 16px; width: 0; border-left: 1.5px solid var(--p-ink); z-index: 1; pointer-events: none; }
.prj .prj-today span { position: absolute; top: -14px; left: -3px; font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--p-ink); line-height: 1; }
.prj .prj-step-bar { height: 8px; border-radius: 4px; background: var(--p-track); overflow: hidden; position: relative; }
.prj .prj-step.done .prj-step-bar { background: var(--p-ok); }
.prj .prj-step.now .prj-step-bar { background: var(--p-plum-mid); }
.prj .prj-step.now .prj-step-bar i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--p-plum); border-radius: 4px; }
.prj .prj-step-n { font-size: 12.5px; font-weight: 600; color: var(--p-ink); margin-top: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prj .prj-step.todo .prj-step-n { color: var(--p-muted); font-weight: 500; }
.prj .prj-step.now .prj-step-n { color: var(--p-plum); font-weight: 700; }
.prj .prj-step-d { font-size: 11px; color: var(--p-faint); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prj .prj-cap { font-size: 12.5px; color: var(--p-muted); margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--p-hair); }
.prj .prj-legend-row { display: flex; justify-content: flex-end; margin-top: 10px; }
.prj .prj-cap b { color: var(--p-ink); font-weight: 650; }
.prj .prj-cap-r { text-align: right; }
/* tiles (the Today pattern: a number, a coloured dot, a label with an arrow, one line of context, three lines of proof) */
.prj .prj-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 10px; }
.prj .prj-tile { background: var(--p-card); border: 1px solid var(--p-rule); border-radius: var(--p-r); padding: 16px 16px 14px; min-width: 0; cursor: pointer; transition: box-shadow .15s ease; }
.prj .prj-tile:hover { box-shadow: 0 3px 12px rgba(20, 20, 20, .09); }
.prj .prj-num { font-size: 32px; font-weight: 800; line-height: 1.1; color: var(--p-ink); }
.prj .prj-tile-l { font-weight: 700; font-size: 13px; margin-top: 3px; color: var(--p-ink); display: flex; align-items: center; gap: 7px; }
.prj .prj-tile[data-sev="hot"] .prj-dot { background: var(--p-hot); } .prj .prj-tile[data-sev="warn"] .prj-dot { background: var(--p-warn); } .prj .prj-tile[data-sev="neutral"] .prj-dot { background: var(--p-faint); }
.prj .prj-arrow { color: var(--p-faint); font-weight: 400; }
.prj .prj-tile-s { font-size: 12px; color: var(--p-muted); margin-top: 3px; line-height: 1.45; }
.prj .prj-tile-s strong { color: var(--p-ink); }
.prj .prj-tilelist { margin-top: 8px; border-top: 1px solid var(--p-hair); padding-top: 6px; }
.prj .prj-tileitem { font-size: 11.5px; color: var(--p-muted); padding: 2px 0; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.prj .prj-tileitem strong { color: var(--p-ink); }
.prj .prj-tileitem a { color: var(--p-plum2); }
.prj .prj-tile-zero { display: flex; align-items: baseline; gap: 8px; padding: 14px 16px; cursor: pointer; }
.prj .prj-tile-zero .prj-tile-l { margin: 0; }
.prj .prj-tile-z { font-size: 12px; color: var(--p-faint); }
/* update card */
.prj .prj-rags { display: inline-flex; gap: 14px; }
.prj .prj-ragline { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 600; text-transform: capitalize; color: var(--p-muted); }
.prj .prj-ragline em { font-style: normal; font-weight: 500; text-transform: none; color: var(--p-faint); }
.prj .prj-upd-sec { margin-top: 9px; font-size: 12.5px; line-height: 1.5; color: var(--p-muted); }
.prj .prj-upd-sec:first-child { margin-top: 0; }
.prj .prj-upd-sec b { display: block; font-size: 10.5px; font-weight: 700; color: var(--p-faint); margin-bottom: 1px; }
.prj .prj-upd-dec { border-left: 3px solid var(--p-plum2); padding-left: 10px; color: var(--p-ink); }
.prj .prj-upd-dec b { color: var(--p-plum2); }
/* milestone table (the run-board family: plum header band, cream cells, warm zebra) */
.prj .prj-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; align-items: start; }
.prj .prj-grid-2 > .prj-card { margin-bottom: 0; }
.prj .prj-ms-card { padding-bottom: 12px; }
.prj .prj-tblwrap { overflow-x: auto; margin: 0 -2px; }
.prj .prj-tbl { width: 100%; border-collapse: collapse; font-size: 12.5px; line-height: 1.35; }
.prj .prj-tbl th { background: var(--p-head); color: var(--p-head-ink); font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; padding: 7px 10px; text-align: left; white-space: nowrap; position: static; }
.prj .prj-tbl th:first-child { border-radius: 4px 0 0 4px; } .prj .prj-tbl th:last-child { border-radius: 0 4px 4px 0; }
.prj .prj-tbl td { padding: 8px 10px; border-bottom: 1px solid var(--p-hair); color: var(--p-ink); white-space: nowrap; vertical-align: middle; max-width: 260px; overflow: hidden; text-overflow: ellipsis; }
.prj .prj-tbl td:first-child { font-weight: 600; }
.prj .prj-tbl tbody tr:nth-child(even) td { background: var(--p-zebra); }
.prj .prj-tbl tr.done td:first-child { color: var(--p-muted); font-weight: 500; }
.prj .prj-tbl .prj-num-cell { color: var(--p-muted); }
/* ---- work-surface toolbar (unboxed, like .dc-toolbar): views/filters left, small-caps stats + actions right ---- */
.prj .prj-tb { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; row-gap: 8px; margin: 0 0 10px; }
.prj .prj-tb-l, .prj .prj-tb-r { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.prj .prj-tb .primary-btn.compact, .prj .prj-tb .secondary-btn.compact { padding: 5px 11px; font-size: 12px; border-radius: 6px; }
.prj .prj-tb .secondary-btn, .prj .prj-card-h .secondary-btn, .prj .prj-cal-h .secondary-btn { border-radius: 6px; }
/* view switchers: quiet text, the active one carries a soft plum wash; no tray */
.prj .prj-views { display: inline-flex; gap: 2px; }
.prj .prj-view { background: none; border: 1px solid transparent; border-radius: 6px; padding: 4px 10px; font: inherit; font-size: 12px; font-weight: 500; color: var(--p-muted); cursor: pointer; white-space: nowrap; }
.prj .prj-view:hover { color: var(--p-ink); background: var(--p-zebra); }
.prj .prj-view.on { color: var(--p-plum); background: var(--p-plum-soft); font-weight: 650; }
.prj .prj-views-sm .prj-view { font-size: 11.5px; padding: 3px 9px; }
.prj .prj-seg-n { font-size: 11px; font-weight: 600; color: var(--p-faint); margin-left: 2px; }
.prj .prj-view.on .prj-seg-n { color: var(--p-plum2); }
.prj .prj-stats { display: inline-flex; align-items: baseline; gap: 14px; margin-right: 6px; }
.prj .prj-stat { display: inline-flex; align-items: baseline; gap: 5px; white-space: nowrap; }
.prj .prj-stat-l { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #8d8880; }
.prj .prj-stat-v { font-size: 13px; font-weight: 700; color: var(--p-ink); }
.prj .prj-warn { color: var(--p-warn); font-weight: 600; }
/* status = dot + word, the Today language; never a filled pill */
.prj .prj-st { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 500; color: var(--p-ink); white-space: nowrap; }
.prj .prj-st i { width: 7px; height: 7px; border-radius: 50%; background: var(--p-faint); flex: none; }
.prj .prj-st.t-ok i { background: var(--p-ok); } .prj .prj-st.t-now i { background: var(--p-plum2); } .prj .prj-st.t-warn i { background: var(--p-warn); } .prj .prj-st.t-hot i { background: var(--p-hot); }
.prj .prj-st.t-faint { color: var(--p-muted); }
.prj .prj-st-pri .prj-inline { margin-left: -4px; }
/* inline select: reads as text until hovered, then a quiet control */
.prj .prj-sel { font: inherit; font-size: 12.5px; color: var(--p-ink); background: #fff; border: 1px solid var(--p-rule); border-radius: 6px; padding: 5px 9px; }
.prj .prj-inline { width: auto; min-width: 0; padding: 3px 22px 3px 7px; font-size: 12px; border-color: transparent; background: transparent; cursor: pointer; appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--p-faint) 50%), linear-gradient(135deg, var(--p-faint) 50%, transparent 50%); background-position: calc(100% - 11px) 11px, calc(100% - 7px) 11px; background-size: 4px 4px; background-repeat: no-repeat; margin: -3px 0; }
.prj .prj-inline:hover { border-color: var(--p-rule); background-color: #fff; }
.prj .prj-inline:focus { outline: none; border-color: var(--p-plum2); box-shadow: 0 0 0 3px var(--p-plum-soft); }
/* work tables: the plum band family, rows that open on click */
.prj .prj-tblcard { padding: 4px 6px 6px; }
.prj .prj-tbl-work td { white-space: normal; max-width: none; padding: 7px 10px; vertical-align: top; }
.prj .prj-tbl-work td:first-child { font-weight: 400; }
.prj .prj-tbl-work td b { font-weight: 600; color: var(--p-ink); }
.prj .prj-tbl-work tr.prj-row { cursor: pointer; }
.prj .prj-tbl-work tr.prj-row:hover td { background: var(--p-plum-soft); }
.prj .prj-tbl-work tbody tr:nth-child(even) td { background: transparent; }
.prj .prj-tbl-work .prj-c-ref { width: 44px; white-space: nowrap; color: var(--p-faint); font-variant-numeric: tabular-nums; }
.prj .prj-tbl-work .prj-c-num { width: 40px; text-align: right; font-variant-numeric: tabular-nums; }
.prj .prj-tbl-work .prj-c-go { width: 28px; text-align: right; padding-right: 6px; }
.prj .prj-tbl-work .prj-c-date { white-space: nowrap; color: var(--p-muted); }
.prj .prj-tbl-work .prj-c-main { min-width: 260px; }
.prj .prj-tbl-work th.prj-c-num { text-align: right; }
.prj .prj-go { color: var(--p-faint); font-size: 14px; cursor: pointer; }
.prj .prj-row:hover .prj-go { color: var(--p-plum2); }
.prj .prj-sub2 { font-size: 11.5px; color: var(--p-muted); margin-top: 2px; line-height: 1.4; max-width: 64ch; }
.prj .prj-wrapcol { max-width: 56ch; }
.prj .prj-tbl-work tr.prj-grp td { background: var(--p-zebra); border-bottom: 1px solid var(--p-rule); padding: 6px 10px; }
.prj .prj-tbl-work tr.prj-grp:not(:first-child) td { border-top: 1px solid var(--p-rule); }
.prj .prj-grp-n { font-size: 12.5px; font-weight: 700; color: var(--p-ink); margin-right: 10px; }
.prj .prj-grp-m { font-size: 11.5px; color: var(--p-muted); }
.prj .prj-empty-row td { color: var(--p-faint); font-size: 12px; padding: 7px 10px 9px 44px; }
.prj .prj-msrow td b { color: var(--p-plum); }
.prj .prj-gate-mark.faint { color: var(--p-faint); }
.prj .prj-ms-dot { color: var(--p-plum2); font-size: 8px; margin-left: 10px; }
.prj .prj-tag { font-size: 9.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--p-muted); background: var(--p-zebra); border: 1px solid var(--p-rule); border-radius: 4px; padding: 0 5px; margin-left: 6px; vertical-align: 1px; }
.prj .prj-tag.hot { color: var(--p-hot); background: var(--p-hot-soft); border-color: transparent; }
.prj .prj-a { color: var(--p-plum2); text-decoration: none; font-weight: 500; }
.prj .prj-a:hover { text-decoration: underline; }
.prj .prj-doc-a b { color: var(--p-plum); }
.prj .prj-doc-nolink { color: var(--p-ink); }
.prj .prj-prov { display: inline-block; margin-left: 8px; padding: 1px 6px; border-radius: 4px; font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--p-muted); background: var(--p-zebra); border: 1px solid var(--p-rule); vertical-align: 1px; }
.prj .prj-prov.p-fathom { color: #5a3470; background: var(--p-plum-soft); border-color: transparent; }
.prj .prj-prov.p-gdoc { color: #1a56b0; background: #e8f0fb; border-color: transparent; }
.prj .prj-prov.p-gsheet { color: #147a5a; background: var(--p-ok-soft); border-color: transparent; }
.prj .prj-prov.p-gslides { color: #a1751c; background: #f7efdc; border-color: transparent; }
.prj .prj-prov.p-pdf { color: var(--p-hot); background: var(--p-hot-soft); border-color: transparent; }
.prj .prj-tbl-work .prj-c-upd { white-space: nowrap; }
.prj .prj-prov.p-agenda { color: var(--p-plum2); background: var(--p-plum-soft); border-color: transparent; text-decoration: none; }
/* meeting builder */
.prj .prj-drawer-wide { width: 640px; }
.prj .prj-drawer-hr { display: flex; align-items: center; gap: 8px; }
.prj .prj-agenda-open { border-radius: 6px; text-decoration: none; }
.prj .prj-agenda { display: flex; flex-direction: column; gap: 10px; text-transform: none; letter-spacing: 0; font-weight: 400; }
.prj .prj-ag-draft { background: var(--p-zebra); border: 1px solid var(--p-rule); border-radius: 6px; padding: 10px 12px 10px; }
.prj .prj-ag-draft-h { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--p-plum2); margin-bottom: 8px; }
.prj .prj-ag-draft-row { display: grid; grid-template-columns: 1fr 88px; gap: 8px; margin-bottom: 8px; }
.prj .prj-ag-draft textarea { width: 100%; box-sizing: border-box; }
.prj .prj-ag-draft-a { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; font-size: 11.5px; }
.prj .prj-ag-list { display: flex; flex-direction: column; gap: 8px; }
.prj .prj-ag-sec { border: 1px solid var(--p-rule); border-radius: 6px; padding: 8px 10px 10px; background: #fff; }
.prj .prj-ag-row { display: grid; grid-template-columns: 1fr 64px 150px 28px; gap: 6px; align-items: center; margin-bottom: 6px; }
.prj .prj-ag-row input { min-width: 0; }
.prj .prj-ag-row [data-ag="title"] { font-weight: 600; }
.prj .prj-ag-x { width: 26px; height: 26px; font-size: 12px; }
.prj .prj-ag-sec textarea { width: 100%; box-sizing: border-box; font-size: 12.5px; }
.prj .prj-ag-chapters { display: flex; flex-wrap: wrap; gap: 6px 10px; margin: 0 0 8px; }
.prj .prj-ag-chapters-h { flex-basis: 100%; font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--p-faint); }
.prj .prj-form-grid label.prj-ag-ch { display: inline-flex; flex-direction: row; align-items: center; gap: 5px; font-size: 12px; color: var(--p-ink); text-transform: none; letter-spacing: 0; font-weight: 500; cursor: pointer; margin: 0; }
.prj .prj-ag-ch input { accent-color: var(--p-plum2); }
.prj .prj-ag-ch span { color: var(--p-faint); font-size: 11px; }
.prj .prj-ag-ch.done { color: var(--p-faint); }
/* design questionnaire */
.prj .prj-chapter .prj-card-h { padding: 8px 8px 4px; margin-bottom: 4px; }
.prj .prj-tbl-work .prj-c-q { min-width: 260px; }
.prj .prj-tbl-work .prj-c-ans { width: 34%; min-width: 220px; }
.prj .prj-tbl-work .prj-c-who { white-space: nowrap; }
.prj .prj-dq { width: 100%; box-sizing: border-box; font: inherit; font-size: 12.5px; color: var(--p-ink); background: #fff; border: 1px solid var(--p-rule); border-radius: 6px; padding: 5px 8px; }
.prj .prj-dq:focus { outline: none; border-color: var(--p-plum2); box-shadow: 0 0 0 3px var(--p-plum-soft); }
.prj .prj-dq:disabled { background: var(--p-zebra); color: var(--p-muted); }
.prj tr.prj-qrow.done td { color: var(--p-muted); }
.prj tr.prj-qrow.done td b { color: var(--p-muted); font-weight: 500; }
.prj .prj-ag-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 11.5px; }
/* gantt: month strip, one row per phase, milestones on the bar, today + go-live lines */
.prj .prj-gantt { padding: 6px 14px 10px; }
.prj .prj-g-row { display: grid; grid-template-columns: 200px 1fr; align-items: stretch; }
.prj .prj-g-row + .prj-g-row .prj-g-track, .prj .prj-g-row + .prj-g-row .prj-g-name { border-top: 1px solid var(--p-hair); }
.prj .prj-g-name b { font-size: 12.5px; }
.prj .prj-legend-row .prj-legend { font-size: 10.5px; }
.prj .prj-g-head { margin-bottom: 2px; }
.prj .prj-g-name { padding: 5px 10px 5px 0; min-width: 0; }
.prj .prj-g-name b { display: block; font-size: 12.5px; font-weight: 600; color: var(--p-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prj .prj-g-name.now b { color: var(--p-plum); font-weight: 700; }
.prj .prj-g-name.todo b { color: var(--p-muted); font-weight: 500; }
.prj .prj-g-name span { display: block; font-size: 11px; color: var(--p-faint); white-space: nowrap; }
.prj .prj-g-track { position: relative; min-height: 34px; }
.prj .prj-g-months { min-height: 28px; }
.prj .prj-g-m { position: absolute; top: 4px; bottom: 0; border-left: 1px solid var(--p-rule); padding-left: 6px; font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--p-faint); white-space: nowrap; overflow: hidden; }
.prj .prj-g-m span { font-weight: 500; letter-spacing: 0; }
.prj .prj-g-m.tight { color: transparent; }
.prj .prj-g-grid { position: absolute; top: 0; bottom: 0; width: 0; border-left: 1px solid var(--p-hair); pointer-events: none; }
.prj .prj-g-today, .prj .prj-g-golive { position: absolute; top: 0; bottom: 0; width: 0; border-left: 1.5px solid var(--p-ink); z-index: 2; pointer-events: none; }
.prj .prj-g-golive { border-left: 1.5px dashed var(--p-plum2); }
.prj .prj-g-lbl { position: absolute; bottom: 0; transform: translateX(-50%); font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; white-space: nowrap; color: var(--p-ink); background: #fff; padding: 0 4px; z-index: 3; }
.prj .prj-g-lbl.golive { color: var(--p-plum2); }
.prj .prj-g-bar { position: absolute; top: 9px; height: 16px; border-radius: 3px; background: var(--p-track); overflow: hidden; }
.prj .prj-g-bar.done { background: var(--p-ok); }
.prj .prj-g-bar.now { background: var(--p-plum-mid); }
.prj .prj-g-bar.now i { position: absolute; left: 0; top: 0; bottom: 0; background: var(--p-plum); }
.prj .prj-g-ms { position: absolute; top: 9px; transform: translateX(-50%); font-size: 10px; line-height: 16px; color: var(--p-plum2); z-index: 1; cursor: default; }
.prj .prj-g-ms.gate { font-size: 12px; }
.prj .prj-g-ms.done { color: var(--p-ok); }
.prj .prj-gantt .prj-legend-row { margin-top: 8px; }
/* calendar */
.prj .prj-cal { padding: 12px 14px 14px; }
.prj .prj-cal-h { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; }
.prj .prj-cal-title { font-size: 15px; font-weight: 650; color: var(--p-ink); margin: 0 6px; flex: 1; }
.prj .prj-nav-btn { padding: 4px 9px; font-size: 14px; line-height: 1; }
.prj .prj-cal-dow { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--p-faint); padding: 0 0 6px; }
.prj .prj-cal-dow div { padding-left: 6px; }
.prj .prj-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; background: var(--p-rule); border: 1px solid var(--p-rule); border-radius: 6px; overflow: hidden; }
.prj .prj-cal-cell { background: #fff; min-height: 84px; padding: 5px 6px; min-width: 0; overflow: hidden; }
.prj .prj-cal-cell.out { background: var(--p-zebra); }
.prj .prj-cal-cell.out .prj-cal-d { color: var(--p-faint); }
.prj .prj-cal-cell.today .prj-cal-d { color: #fff; background: var(--p-plum); border-radius: 999px; width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center; }
.prj .prj-cal-d { font-size: 11.5px; font-weight: 600; color: var(--p-muted); font-variant-numeric: tabular-nums; margin-bottom: 3px; }
.prj .prj-cal-ev { display: block; border-left: 3px solid var(--p-plum2); background: var(--p-plum-soft); color: var(--p-ink); font-size: 11px; padding: 2px 5px; border-radius: 3px; margin-top: 2px; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prj .prj-cal-ev b { font-weight: 600; color: var(--p-plum2); }
.prj .prj-cal-ev.held { border-left-color: var(--p-ok); background: var(--p-ok-soft); }
.prj .prj-cal-ev.held b { color: var(--p-ok); }
.prj .prj-cal-ev.cancelled { border-left-color: var(--p-rule); background: var(--p-zebra); color: var(--p-faint); text-decoration: line-through; }
/* board */
.prj .prj-board { display: flex; gap: 10px; overflow-x: auto; padding-bottom: 6px; }
.prj .prj-bcol { flex: 1 1 220px; min-width: 200px; }
.prj .prj-bcol { background: var(--p-zebra); border: 1px solid var(--p-rule); border-radius: var(--p-r); padding: 8px; min-width: 0; }
.prj .prj-bcol.now { border-color: var(--p-plum-mid); }
.prj .prj-bcol.empty { flex: 0 0 132px; }
.prj .prj-legend-left { justify-content: flex-start; }
.prj .prj-bcol-h { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--p-muted); padding: 2px 4px 8px; }
.prj .prj-bcol-h span { color: var(--p-faint); font-weight: 600; margin-left: 4px; }
.prj .prj-bcol.now .prj-bcol-h { color: var(--p-plum); }
.prj .prj-bcol-empty { font-size: 11.5px; color: var(--p-faint); padding: 4px; }
.prj .prj-mcard { background: #fff; border: 1px solid var(--p-rule); border-left-width: 3px; border-radius: 5px; padding: 8px 10px; margin-bottom: 7px; cursor: pointer; color: var(--p-ink); }
.prj .prj-mcard:hover { box-shadow: 0 3px 12px rgba(20, 20, 20, .09); }
.prj .prj-mcard.held { border-left-color: var(--p-ok); }
.prj .prj-mcard.scheduled { border-left-color: var(--p-plum2); }
.prj .prj-mcard.cancelled { border-left-color: var(--p-rule); color: var(--p-faint); }
.prj .prj-mcard-d { font-size: 11px; color: var(--p-faint); }
.prj .prj-mcard-t { font-size: 12.5px; font-weight: 600; margin: 2px 0; }
.prj .prj-mcard-s { font-size: 11px; color: var(--p-muted); }
.prj .prj-team-card + .prj-team-card { margin-top: 12px; }
.prj .prj-team-card .prj-card-h { padding: 8px 8px 4px; margin-bottom: 4px; }
/* forms, drawer, modal, toast — white surfaces, 6px controls, sans titles, one primary */
.prj .prj-form select, .prj .prj-form input, .prj .prj-form textarea, .prj .prj-init select, .prj .prj-init input, .prj .prj-init textarea, .prj .prj-modal textarea, .prj .prj-drawer-sec textarea { font: inherit; font-size: 13px; color: var(--p-ink); background: #fff; border: 1px solid var(--p-rule); border-radius: 6px; padding: 7px 9px; }
.prj .prj-form :is(select, input, textarea):focus, .prj .prj-init :is(select, input, textarea):focus, .prj .prj-modal textarea:focus, .prj .prj-drawer-sec textarea:focus { outline: none; border-color: var(--p-plum2); box-shadow: 0 0 0 3px var(--p-plum-soft); }
.prj .prj-form :is(select, input, textarea):disabled { background: var(--p-zebra); color: var(--p-muted); }
.prj .prj-init { padding: 20px 24px; max-width: 760px; }
.prj .prj-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; }
.prj .prj-form-grid label, .prj .prj-lbl { display: flex; flex-direction: column; gap: 4px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--p-faint); }
.prj .prj-lbl { margin-top: 12px; }
.prj .prj-form-grid label > input, .prj .prj-form-grid label > select, .prj .prj-form-grid label > textarea, .prj .prj-lbl textarea { text-transform: none; letter-spacing: 0; font-weight: 400; }
.prj .prj-field.wide { grid-column: 1 / -1; }
.prj .prj-sfx { position: relative; display: block; }
.prj .prj-sfx input { width: 100%; box-sizing: border-box; padding-right: 28px; }
.prj .prj-sfx i { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); font-style: normal; font-size: 12px; color: var(--p-faint); pointer-events: none; }
.prj .prj-check { flex-direction: row !important; align-items: center; gap: 8px !important; text-transform: none !important; letter-spacing: 0 !important; font-weight: 500 !important; color: var(--p-ink) !important; font-size: 13px !important; padding-top: 18px; }
.prj .prj-check input { width: 16px; height: 16px; accent-color: var(--p-plum2); }
.prj .prj-actions { display: flex; align-items: center; gap: 10px; margin-top: 14px; }
.prj .prj-drawer-ov { position: fixed; inset: 0; background: rgba(34, 35, 42, .28); z-index: 900; display: flex; justify-content: flex-end; }
.prj .prj-drawer { width: 560px; max-width: 96vw; height: 100%; background: #fff; border-left: 1px solid var(--p-rule); box-shadow: -12px 0 40px rgba(34, 35, 42, .12); display: flex; flex-direction: column; }
.prj .prj-drawer-h { display: flex; align-items: center; justify-content: space-between; padding: 16px 22px 12px; border-bottom: 1px solid var(--p-rule); }
.prj .prj-drawer-t { font-family: "Instrument Sans", Arial, sans-serif; font-size: 17px; font-weight: 650; letter-spacing: -.01em; color: var(--p-ink); }
.prj .prj-drawer-t .prj-faint { font-weight: 500; font-size: 13px; margin-left: 4px; }
.prj .prj-x { width: 28px; height: 28px; border: 1px solid transparent; border-radius: 6px; background: none; color: var(--p-muted); cursor: pointer; font-size: 14px; line-height: 1; }
.prj .prj-x:hover { background: var(--p-zebra); color: var(--p-ink); border-color: var(--p-rule); }
.prj .prj-form { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.prj .prj-form > .prj-form-grid, .prj .prj-drawer-sec { padding: 16px 22px 4px; }
.prj .prj-form > .prj-form-grid { flex: none; }
.prj .prj-drawer .prj-form { overflow-y: auto; }
.prj .prj-sec { font-size: 10px; font-weight: 700; color: var(--p-faint); text-transform: uppercase; letter-spacing: .06em; margin: 0 0 8px; }
.prj .prj-drawer-sec textarea { width: 100%; box-sizing: border-box; margin-top: 8px; }
.prj .prj-drawer-foot { display: flex; align-items: center; gap: 8px; padding: 14px 22px; border-top: 1px solid var(--p-rule); margin-top: auto; position: sticky; bottom: 0; background: #fff; }
.prj .prj-drawer-foot .prj-sp { flex: 1; }
.prj .prj-drawer-foot .primary-btn, .prj .prj-drawer-foot .secondary-btn { border-radius: 6px; }
.prj .prj-danger { background: none; border: 0; padding: 0; font: inherit; font-size: 12.5px; color: var(--p-hot); cursor: pointer; }
.prj .prj-danger:hover { text-decoration: underline; }
.prj .prj-comment { padding: 8px 0; border-top: 1px solid var(--p-hair); font-size: 12.5px; color: var(--p-ink); }
.prj .prj-comment:first-of-type { border-top: none; }
.prj .prj-comment .prj-meta { font-size: 11.5px; color: var(--p-muted); margin-bottom: 2px; }
.prj .prj-meta { font-size: 12px; color: var(--p-muted); line-height: 1.45; }
.prj .prj-list { list-style: none; margin: 0; padding: 0; }
.prj .prj-list li { padding: 6px 0; border-top: 1px solid var(--p-hair); display: flex; flex-direction: column; gap: 1px; font-size: 12.5px; }
.prj .prj-list li:first-child { border-top: none; }
.prj .prj-decisions { display: flex; flex-direction: column; gap: 6px; }
.prj .prj-decision { display: grid; grid-template-columns: 1fr 150px; gap: 6px; }
.prj .prj-nextsteps { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; margin-top: 8px; }
.prj .prj-nextsteps textarea { width: 100%; box-sizing: border-box; }
.prj .prj-pend { margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--p-hair); }
.prj .prj-md-sec .prj-pend { margin-top: 0; padding-top: 0; border-top: 0; }
.prj .prj-pend-l { display: flex; align-items: flex-start; gap: 8px; cursor: pointer; }
.prj .prj-pend-l input { margin-top: 2px; }
.prj .prj-pend li .prj-meta { padding-left: 22px; }
.prj .prj-pend-a { display: flex; gap: 8px; margin-top: 6px; }
.prj .prj-fr-act { white-space: nowrap; }
.prj .prj-pend-n { margin-left: 8px; }
.prj .prj-fr-act .cad-sel { vertical-align: middle; }
.prj .prj-fr-aside { margin-left: 12px; }
.prj .prj-modal { width: 560px; max-width: 96vw; margin: auto; background: #fff; border: 1px solid var(--p-rule); border-radius: 8px; box-shadow: 0 24px 60px rgba(34, 35, 42, .22); padding: 0 22px 8px; }
.prj .prj-modal .prj-drawer-h { padding-left: 0; padding-right: 0; }
.prj .prj-modal textarea { width: 100%; box-sizing: border-box; }
.prj .prj-modal .prj-drawer-foot { padding-left: 0; padding-right: 0; }
.prj-toast { position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%) translateY(10px); background: #22232a; color: #fff; font-size: 13px; padding: 9px 16px; border-radius: 6px; opacity: 0; pointer-events: none; transition: opacity .15s ease, transform .15s ease; z-index: 1000; }
.prj-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
.prj-toast.err { background: #b4423a; }
@media (max-width: 900px) {
  .prj .prj-tiles { grid-template-columns: 1fr; }
  .prj .prj-grid-2 { grid-template-columns: 1fr; }
  .prj .prj-g-row { grid-template-columns: 150px 1fr; }
}
@media (max-width: 760px) {
  .prj .prj-form-grid { grid-template-columns: 1fr; }
  .prj .prj-steps { flex-wrap: wrap; }
}

/* v13 refinement (2026-09-14, reviewer brief): typography, palette roles, panels, chart contrast, tables, controls.
   Layout and components unchanged. Later rules win. */
.prj { --p-font: "Inter", "Instrument Sans", Arial, sans-serif; --p-canvas: #f5f6f8; --p-card: #ffffff; --p-ink: #202631; --p-muted: #606b7a; --p-faint: #7c8695;
  --p-rule: #dee3ea; --p-hair: #edf0f4; --p-plum: #654180; --p-plum2: #654180; --p-plum-mid: #a98fc0; --p-plum-soft: #f1ebf6; --p-ok: #21765c; --p-ok-soft: #e4f2ec;
  --p-track: #b8c0cd; --p-zebra: #f7f8fa; --p-head: #f5f6f8; --p-head-ink: #606b7a; --p-r: 8px;
  font-family: var(--p-font); font-size: 14px; line-height: 21px; color: var(--p-ink); -webkit-font-smoothing: antialiased; }
.adm-fill.prj { background: var(--p-canvas); margin: -20px -24px -42px; padding: 20px 24px 42px; min-height: calc(100vh - 52px); }
.prj button, .prj input, .prj select, .prj textarea { font-family: var(--p-font); }
/* type scale */
.prj .prj-tab { font-size: 14px; font-weight: 500; color: var(--p-muted); padding: 8px 0 10px; }
.prj .prj-tab.on { color: var(--p-ink); font-weight: 600; border-bottom-color: var(--p-plum); }
.prj .prj-nav { gap: 24px; }
.prj .prj-top-name { font-size: 13px; color: var(--p-muted); }
.prj .prj-card-hl > strong, .prj .prj-plan-t strong { font-size: 17px; line-height: 24px; font-weight: 600; color: var(--p-ink); }
.prj .prj-card-sub, .prj .prj-plan-sub { font-size: 13px; line-height: 19px; color: var(--p-muted); }
.prj .prj-plan-sub b { font-weight: 500; }
.prj .prj-num { font-size: 20px; line-height: 26px; font-weight: 600; }
.prj .prj-tile-l { font-size: 14px; font-weight: 600; }
.prj .prj-tile-s, .prj .prj-tileitem { font-size: 13px; line-height: 19px; color: var(--p-muted); }
.prj .prj-tileitem strong, .prj .prj-tile-s strong { font-weight: 500; color: var(--p-ink); }
.prj .prj-tile-z { font-size: 13px; }
.prj .prj-chip-l, .prj .prj-stat-l { font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--p-muted); }
.prj .prj-chip-v { font-size: 20px; line-height: 26px; font-weight: 600; color: var(--p-ink); }
.prj .prj-kpis .prj-chip-v { font-size: 20px; }
.prj .prj-stat-v { font-size: 14px; font-weight: 600; }
.prj .prj-upd-sec { font-size: 14px; line-height: 21px; color: var(--p-ink); }
.prj .prj-upd-sec b { font-size: 12px; font-weight: 500; color: var(--p-muted); }
.prj .prj-quiet, .prj .prj-empty-card, .prj .prj-cap { font-size: 13px; line-height: 19px; color: var(--p-muted); }
.prj .prj-legend { font-size: 12px; color: var(--p-muted); }
/* palette roles: panels */
.prj .prj-card, .prj .prj-tile, .prj .prj-tblcard, .prj .prj-gantt { background: var(--p-card); border: 1px solid var(--p-rule); border-radius: 8px; box-shadow: 0 1px 1px rgba(32, 38, 49, .03); }
.prj .prj-card, .prj .prj-gantt { padding: 20px 24px; }
.prj .prj-tile { padding: 20px 24px 18px; }
.prj .prj-tblcard { padding: 0; overflow: hidden; }
.prj .prj-tile-zero { padding: 18px 24px; }
.prj .prj-card-h { margin-bottom: 12px; }
/* overview stepper: dark labels, secondary dates, deliberate wrapping */
.prj .prj-step { flex: 1 1 118px; }
.prj .prj-step-bar { height: 6px; border-radius: 3px; background: var(--p-track); }
.prj .prj-step.done .prj-step-bar { background: var(--p-ok); }
.prj .prj-step.now .prj-step-bar { background: var(--p-plum); }
.prj .prj-step.now .prj-step-bar i { background: #3f2752; }
.prj .prj-step-n { font-size: 14px; line-height: 21px; font-weight: 500; color: var(--p-ink); white-space: normal; overflow: visible; text-overflow: clip; margin-top: 8px; }
.prj .prj-step.now .prj-step-n { font-weight: 600; }
.prj .prj-step.todo .prj-step-n { color: var(--p-ink); font-weight: 500; }
.prj .prj-step-d { font-size: 13px; line-height: 19px; color: var(--p-muted); white-space: nowrap; }
.prj .prj-today span { font-size: 11px; letter-spacing: 0; text-transform: none; font-weight: 600; color: var(--p-ink); }
.prj .prj-gate-mark { color: var(--p-plum); font-size: 9px; }
.prj .prj-legend i.done { background: var(--p-ok); } .prj .prj-legend i.now { background: var(--p-plum); } .prj .prj-legend i.todo { background: var(--p-track); }
/* gantt: contrast */
.prj .prj-g-bar { background: var(--p-track); height: 16px; top: 12px; border-radius: 4px; }
.prj .prj-g-bar.done { background: var(--p-ok); }
.prj .prj-g-bar.now { background: var(--p-plum); }
.prj .prj-g-bar.now i { display: none; }
.prj .prj-g-row:has(.prj-g-name.now) .prj-g-name, .prj .prj-g-row:has(.prj-g-name.now) .prj-g-track { background: var(--p-plum-soft); }
.prj .prj-g-name b { font-size: 14px; font-weight: 500; color: var(--p-ink); }
.prj .prj-g-name.now b { font-weight: 600; }
.prj .prj-g-name.todo b { color: var(--p-ink); font-weight: 500; }
.prj .prj-g-name span { font-size: 13px; color: var(--p-muted); }
.prj .prj-g-row + .prj-g-row .prj-g-track, .prj .prj-g-row + .prj-g-row .prj-g-name { border-top: 1px solid var(--p-hair); }
.prj .prj-g-track { min-height: 40px; }
.prj .prj-g-grid { border-left: 1px solid var(--p-rule); }
.prj .prj-g-m { border-left: 1px solid #cfd6df; font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--p-muted); }
.prj .prj-g-m span { font-weight: 400; }
.prj .prj-g-ms { color: var(--p-plum); font-size: 11px; top: 12px; }
.prj .prj-g-ms.gate { font-size: 11px; }
.prj .prj-g-ms.done { color: var(--p-ok); }
.prj .prj-g-today { border-left: 2px solid var(--p-ink); }
.prj .prj-g-golive { border-left: 1.5px dashed var(--p-plum); }
.prj .prj-g-lbl { font-size: 11px; letter-spacing: 0; text-transform: none; font-weight: 600; }
.prj .prj-g-lbl.golive { color: var(--p-plum); }
/* tables: working surfaces */
.prj .prj-tbl { font-size: 14px; line-height: 21px; }
.prj .prj-tbl th { background: var(--p-head); color: var(--p-muted); font-size: 13px; font-weight: 500; letter-spacing: 0; text-transform: none; padding: 11px 16px; border-bottom: 1px solid var(--p-rule); }
.prj .prj-tbl th:first-child, .prj .prj-tbl th:last-child { border-radius: 0; }
.prj .prj-tbl td, .prj .prj-tbl-work td { padding: 11px 16px; border-bottom: 1px solid var(--p-hair); color: var(--p-ink); }
.prj .prj-tbl td:first-child { font-weight: 500; }
.prj .prj-tbl-work td:first-child { font-weight: 400; }
.prj .prj-tbl-work td b { font-weight: 500; }
.prj .prj-tbl tbody tr:nth-child(even) td { background: transparent; }
.prj .prj-tbl-work tr.prj-row:hover td { background: #f7f8fa; }
.prj .prj-tbl-work tr.prj-grp td { background: var(--p-zebra); border-top: 1px solid var(--p-rule); border-bottom: 1px solid var(--p-rule); padding: 9px 16px; }
.prj .prj-grp-n { font-size: 14px; font-weight: 600; color: var(--p-ink); }
.prj .prj-grp-m { font-size: 13px; color: var(--p-muted); }
.prj .prj-tbl-work .prj-c-ref { color: var(--p-muted); }
.prj .prj-sub2 { font-size: 13px; line-height: 19px; color: var(--p-muted); }
.prj .prj-tbl .prj-num-cell, .prj .prj-tbl-work .prj-c-num, .prj .prj-tbl-work .prj-c-date { font-variant-numeric: tabular-nums; }
.prj .prj-tbl-work .prj-c-num { text-align: right; }
.prj .prj-empty-row td { padding-left: 60px; color: var(--p-muted); }
.prj .prj-st { font-size: 14px; color: var(--p-ink); }
.prj .prj-st.t-ok i { width: auto; height: auto; background: none; border-radius: 0; }
.prj .prj-st.t-ok i::before { content: "\2713"; color: var(--p-ok); font-weight: 700; font-size: 13px; }
.prj .prj-st.t-faint { color: var(--p-muted); }
.prj .prj-tag { font-size: 11px; letter-spacing: 0; text-transform: none; font-weight: 500; border-color: var(--p-rule); background: var(--p-zebra); color: var(--p-muted); }
.prj .prj-prov { font-size: 11px; letter-spacing: 0; text-transform: none; font-weight: 500; }
.prj .prj-inline { font-size: 14px; padding: 5px 26px 5px 8px; border-radius: 6px; background-position: calc(100% - 12px) 12px, calc(100% - 8px) 12px; }
.prj .prj-inline:hover { border-color: var(--p-rule); background-color: #fff; }
.prj .prj-inline:focus { border-color: var(--p-plum); box-shadow: 0 0 0 3px var(--p-plum-soft); }
.prj .prj-go { font-size: 14px; }
/* controls */
.prj .primary-btn, .prj .secondary-btn, .prj .primary-btn.compact, .prj .secondary-btn.compact, .prj .prj-top .primary-btn.compact, .prj .prj-top .secondary-btn.compact, .prj .prj-tb .primary-btn.compact, .prj .prj-tb .secondary-btn.compact { height: 36px; padding: 0 14px; font-size: 14px; font-weight: 500; line-height: 34px; border-radius: 6px; letter-spacing: 0; }
.prj .secondary-btn, .prj .secondary-btn.compact { background: #fff; border: 1px solid #cfd6df; color: var(--p-ink); }
.prj .secondary-btn:hover { background: var(--p-zebra); }
.prj .primary-btn, .prj .primary-btn.compact { background: var(--p-plum); border: 1px solid var(--p-plum); color: #fff; }
.prj .primary-btn:hover { background: #563670; }
.prj .prj-view { font-size: 14px; font-weight: 500; height: 32px; padding: 0 12px; line-height: 30px; color: var(--p-muted); }
.prj .prj-view.on { color: var(--p-plum); background: var(--p-plum-soft); font-weight: 600; }
.prj .prj-nav-btn { height: 32px; line-height: 30px; padding: 0 10px; }
.prj .prj-form select, .prj .prj-form input, .prj .prj-form textarea, .prj .prj-init select, .prj .prj-init input, .prj .prj-modal textarea, .prj .prj-drawer-sec textarea, .prj .prj-sel, .prj .prj-dq { font-size: 14px; border-radius: 6px; border-color: #cfd6df; }
.prj .prj-form-grid label, .prj .prj-lbl, .prj .prj-sec { font-size: 12px; letter-spacing: 0; text-transform: none; font-weight: 500; color: var(--p-muted); }
.prj .prj-drawer-t { font-family: var(--p-font); font-size: 17px; line-height: 24px; font-weight: 600; }
.prj .prj-drawer-foot .primary-btn, .prj .prj-drawer-foot .secondary-btn { height: 36px; line-height: 34px; padding: 0 14px; }
/* inline status controls read as text at rest; the chevron sits in one place; hover and focus show the box */
.prj .prj-inline { border-color: transparent; background-color: transparent; }
.prj .prj-inline:hover { border-color: #cfd6df; background-color: #fff; }
.prj .prj-inline:focus { border-color: var(--p-plum); background-color: #fff; box-shadow: 0 0 0 3px var(--p-plum-soft); }
/* contrast: secondary text is secondary, not faint; empty states readable; empty tiles shrink to their content */
.prj { --p-faint: #6b7480; }
.prj .prj-tile-z, .prj .prj-quiet, .prj .prj-empty-card, .prj .prj-tile-s, .prj .prj-tileitem, .prj .prj-step-d, .prj .prj-g-name span, .prj .prj-card-sub, .prj .prj-plan-sub, .prj .prj-cap, .prj .prj-legend, .prj .prj-sub2 { color: var(--p-muted); }
.prj .prj-tbl .prj-num-cell, .prj .prj-tbl .prj-faint, .prj .prj-tbl-work .prj-c-ref { color: var(--p-muted); }
.prj .prj-st.t-faint { color: var(--p-muted); }
.prj .prj-tiles { align-items: start; }
.prj .prj-tile-zero { padding: 16px 24px; }
.prj .prj-top-name { color: var(--p-muted); font-size: 13px; }
.prj .prj-card-hl > strong, .prj .prj-plan-t strong { font-size: 16px; font-weight: 600; }
.prj .prj-tile-l { font-weight: 500; }
.prj .prj-tile[data-sev] .prj-tile-l { font-weight: 600; }
/* gantt header: month names on the top line, the Today and Go-live markers on their own line */
.prj .prj-g-months { min-height: 44px; }
.prj .prj-g-m { top: 2px; bottom: auto; height: 18px; }
.prj .prj-g-lbl { bottom: 2px; }

/* v15 component details */
.prj .prj-step-n { min-height: 42px; }                           /* room for two-line names so the date rows align */
.prj .prj-step-d { margin-top: 0; }
.prj .prj-top-name { color: var(--p-ink); font-weight: 500; font-size: 13px; }
.prj .prj-tile-mt .prj-tile-l { margin-top: 0; }
.prj .prj-tile-n { color: var(--p-muted); font-weight: 500; }
.prj .prj-tile-next { margin-top: 10px; display: flex; flex-direction: column; gap: 2px; }
.prj .prj-tile-next b { font-size: 16px; line-height: 22px; font-weight: 600; color: var(--p-ink); }
.prj .prj-tile-when { font-size: 13px; line-height: 19px; color: var(--p-muted); }
.prj .prj-tile-mt .prj-tilelist { margin-top: 12px; }

/* v16 lower overview: status row, then 40/60 columns that flow independently, 16px gaps */
.prj .prj-tiles-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; align-items: start; }
.prj .prj-cols-40 { display: grid; grid-template-columns: 2fr 3fr; gap: 16px; align-items: start; }
.prj .prj-col-stack { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.prj .prj-col-stack > .prj-card, .prj .prj-col-stack > .prj-tile { margin-bottom: 0; }
.prj .prj-tiles-2 > .prj-tile { margin-bottom: 0; }
@media (max-width: 900px) { .prj .prj-cols-40 { grid-template-columns: 1fr; } .prj .prj-tiles-2 { grid-template-columns: 1fr; } }

/* v17 finishing: fact groups in the summary, meeting rows, first-update link */
.prj .prj-facts { display: grid; grid-template-columns: auto repeat(3, minmax(0, 1fr)); gap: 24px; align-items: start; flex: 1; min-width: 0; }
.prj .prj-fact { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.prj .prj-fact-l { font-size: 13px; line-height: 19px; color: var(--p-muted); }
.prj .prj-fact-v { font-size: 20px; line-height: 26px; font-weight: 600; color: var(--p-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prj .prj-fact-s { font-size: 13px; line-height: 19px; color: var(--p-muted); }
.prj .prj-fact-status { justify-content: center; padding-right: 8px; border-right: 1px solid var(--p-hair); align-self: stretch; }
.prj .prj-status { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 8px; border-radius: 999px; background: var(--p-ok-soft); color: var(--p-ok); font-size: 13px; font-weight: 500; white-space: nowrap; }
.prj .prj-status.rag-amber { background: #fbf1e1; color: var(--p-warn); } .prj .prj-status.rag-red { background: var(--p-hot-soft); color: var(--p-hot); }
.prj .prj-status .prj-dot { width: 7px; height: 7px; }
.prj .prj-plan .prj-card-h { align-items: flex-start; }
.prj .prj-plan .prj-kpis { flex: none; }
.prj .prj-mrow { display: grid; grid-template-columns: 172px minmax(0, 1fr); gap: 12px; align-items: baseline; }
.prj .prj-mrow-d { color: var(--p-muted); white-space: nowrap; }
.prj .prj-mrow-t { color: var(--p-ink); }
.prj .prj-mrow-foot { margin-top: 6px; padding-top: 6px; border-top: 1px solid var(--p-hair); }
.prj .prj-mrow-foot .prj-mrow-t { color: var(--p-muted); }
.prj .prj-tile-mt .prj-tileitem { white-space: normal; overflow: visible; }
.prj .prj-tile-zero .prj-tile-z.prj-tl-link { color: var(--p-plum); margin-left: auto; }
.prj .prj-quiet .prj-more { display: inline-block; margin-top: 6px; }

/* v18: progress counts one step below the primary facts */
.prj .prj-kpis .prj-chip-v, .prj .prj-chip-v { font-size: 17px; line-height: 24px; font-weight: 600; }

/* v19 plan: compact gantt, current emphasis in the label cell, gate labels, status treatments, selection */
.prj .prj-gantt { padding: 4px 14px 8px; }
.prj .prj-g-row { grid-template-columns: 236px 1fr; }
.prj .prj-g-track { min-height: 31px; }
.prj .prj-g-months { min-height: 40px; }
.prj .prj-g-name { padding: 4px 10px 4px 8px; cursor: pointer; border-radius: 4px; }
.prj .prj-g-name:hover { background: var(--p-zebra); }
.prj .prj-g-name b { font-size: 14px; line-height: 19px; }
.prj .prj-g-name span { font-size: 12px; line-height: 16px; }
.prj .prj-g-row:has(.prj-g-name.now) .prj-g-track { background: transparent; }
.prj .prj-g-name.now { background: var(--p-plum-soft); }
.prj .prj-g-cur { display: inline-block; margin-left: 8px; font-size: 11px; line-height: 16px; font-weight: 600; color: var(--p-plum); vertical-align: 1px; }
.prj .prj-g-name.sel { box-shadow: inset 3px 0 0 var(--p-plum); background: var(--p-zebra); }
.prj .prj-g-name.sel.now { background: var(--p-plum-soft); }
.prj .prj-g-row.sel .prj-g-track { background: #fbfbfc; }
.prj .prj-g-bar { top: 8px; height: 14px; }
.prj .prj-g-ms { top: 7px; }
.prj .prj-g-ms-l { position: absolute; top: 7px; font-size: 12px; line-height: 16px; color: var(--p-plum); white-space: nowrap; pointer-events: none; }
.prj .prj-g-lbl.golive { font-weight: 600; }
.prj .prj-gantt .prj-legend-row { margin-top: 6px; }
/* table: status treatments */
.prj .prj-st.t-faint i { background: transparent; border: 1.5px solid #9aa3b2; box-sizing: border-box; width: 8px; height: 8px; }
.prj .prj-st.t-faint { color: var(--p-ink); }
.prj .prj-st .prj-inline { margin-left: -4px; }
.prj .prj-tbl-work tr.prj-grp.cur td { background: var(--p-plum-soft); }
.prj .prj-grp-n .prj-g-cur { margin-left: 8px; }
.prj .prj-view-tog { margin-left: 6px; }
.prj .prj-selnote { font-size: 13px; color: var(--p-muted); margin: -4px 0 10px 4px; }
.prj .prj-selnote b { color: var(--p-ink); font-weight: 600; }

/* v19b: label cell fits the name, the Current tag and one count line; rows compact */
.prj .prj-g-row { grid-template-columns: 272px 1fr; }
.prj .prj-g-name { padding: 3px 10px 3px 8px; }
.prj .prj-g-name b { font-size: 13.5px; line-height: 18px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prj .prj-g-name span { font-size: 11.5px; line-height: 15px; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prj .prj-g-cur { margin-left: 6px; font-size: 10.5px; line-height: 14px; }
.prj .prj-g-track { min-height: 33px; }
.prj .prj-g-bar { top: 9px; height: 14px; }
.prj .prj-g-ms, .prj .prj-g-ms-l { top: 8px; }

/* v19c: the Current tag stays inline inside the phase name (the generic span rule made it block) */
.prj .prj-g-name b .prj-g-cur { display: inline-block; overflow: visible; }
.prj .prj-g-track.prj-g-months { min-height: 42px; }
.prj .prj-g-months .prj-g-lbl { line-height: 16px; bottom: 2px; }

/* v20 design questionnaire: chapter navigator + one chapter at a time */
.prj .prj-qcols { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 16px; align-items: start; }
.prj .prj-qnav { position: sticky; top: 12px; padding: 6px; margin: 0; }
.prj .prj-qn { position: relative; display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 6px; cursor: pointer; font-size: 14px; line-height: 20px; color: var(--p-ink); }
.prj .prj-qn:hover { background: var(--p-zebra); }
.prj .prj-qn.on { background: var(--p-plum-soft); }
.prj .prj-qn.on .prj-qn-n { font-weight: 600; color: var(--p-plum); }
.prj .prj-qn-i { font-size: 12px; color: var(--p-muted); font-variant-numeric: tabular-nums; }
.prj .prj-qn-n { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prj .prj-qn-c { font-size: 12.5px; color: var(--p-ink); font-variant-numeric: tabular-nums; }
.prj .prj-qn-c.done { color: var(--p-ok); }
.prj .prj-qn-of { color: var(--p-muted); }
.prj .prj-qn-ok { color: var(--p-ok); font-weight: 700; font-size: 13px; }
.prj .prj-qn-bar { display: none; }
.prj .prj-qpanel { padding: 0; margin: 0; overflow: hidden; }
.prj .prj-qpanel-h { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px 12px; border-bottom: 1px solid var(--p-hair); }
.prj .prj-qpanel-t { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
.prj .prj-qpanel-i { font-size: 13px; color: var(--p-muted); }
.prj .prj-qpanel-t strong { font-size: 17px; line-height: 24px; font-weight: 600; color: var(--p-ink); white-space: nowrap; }
.prj .prj-qpanel-s { font-size: 13px; color: var(--p-muted); }
.prj .prj-qpanel-r { display: flex; align-items: center; gap: 10px; }
.prj .prj-qs { padding: 2px 18px 6px; }
.prj .prj-q { display: grid; grid-template-columns: 36px minmax(0, 1fr) 400px 128px; gap: 16px; align-items: center; padding: 10px 0; border-top: 1px solid var(--p-hair); }
.prj .prj-q:first-child { border-top: 0; }
.prj .prj-q-ref { font-size: 12.5px; color: var(--p-muted); font-variant-numeric: tabular-nums; padding-top: 1px; }
.prj .prj-q-q { font-size: 14px; line-height: 20px; color: var(--p-ink); font-weight: 500; }
.prj .prj-q-meta { font-size: 12px; line-height: 17px; color: var(--p-muted); margin-top: 2px; }
.prj .prj-q-feeds { color: var(--p-faint); }
.prj .prj-q-by { font-size: 12px; line-height: 16px; color: var(--p-muted); margin-top: 3px; }
.prj .prj-q.done .prj-q-q { color: var(--p-muted); font-weight: 500; }
.prj .prj-q-st { display: flex; align-items: center; }
.prj .prj-q-st .prj-st { font-size: 13px; }
.prj .prj-q-ans .prj-dq { height: 34px; padding: 0 10px; font-size: 13.5px; line-height: 32px; background: #fafbfc; border: 1px solid var(--p-rule); border-radius: 6px; color: var(--p-ink); }
.prj .prj-q-ans textarea.prj-dq { height: auto; min-height: 56px; line-height: 19px; padding: 7px 10px; resize: vertical; }
.prj .prj-q-ans select.prj-dq { padding-right: 28px; }
.prj .prj-q-ans .prj-dq::placeholder { color: var(--p-faint); }
.prj .prj-q-ans .prj-dq:hover { background: #fff; border-color: #cfd6df; }
.prj .prj-q-ans .prj-dq:focus { background: #fff; border-color: var(--p-plum); box-shadow: 0 0 0 3px var(--p-plum-soft); outline: none; }
.prj .prj-q-ans .prj-dq:disabled { background: var(--p-zebra); color: var(--p-muted); border-color: var(--p-hair); }
.prj .prj-q.done .prj-q-ans .prj-dq { background: #fff; border-color: var(--p-hair); }
.prj .prj-qpanel-f { display: flex; justify-content: flex-end; padding: 10px 18px 12px; border-top: 1px solid var(--p-hair); }
.prj .prj-q-pn { display: inline-flex; gap: 18px; }
.prj .prj-q-pn .prj-tl-link { font-size: 13px; }
.prj .prj-q-allok { padding: 16px 0; }
/* narrow (Will's zoom ~1000px): the answer sits under the question, status beside it */
@media (max-width: 1240px) { .prj .prj-q { grid-template-columns: 36px minmax(0, 1fr) 150px; grid-template-areas: "ref q st" "ref ans st"; row-gap: 8px; align-items: start; } .prj .prj-q-ref { grid-area: ref; } .prj .prj-q-text { grid-area: q; } .prj .prj-q-ans { grid-area: ans; max-width: 480px; } .prj .prj-q-st { grid-area: st; padding-top: 1px; } .prj .prj-qcols { grid-template-columns: 280px minmax(0, 1fr); } }
@media (max-width: 900px) { .prj .prj-qcols { grid-template-columns: 1fr; } .prj .prj-qnav { position: static; } .prj .prj-q { grid-template-columns: 36px minmax(0, 1fr); } .prj .prj-q-ans, .prj .prj-q-st { grid-column: 2; } }
.prj .prj-q-ans select.prj-dq { -webkit-appearance: none; appearance: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' fill='none' stroke='%23606B7A' stroke-width='1.5' stroke-linecap='round'/></svg>"); background-repeat: no-repeat; background-position: right 11px center; background-color: #fafbfc; }
.prj .prj-q-ans select.prj-dq:hover, .prj .prj-q-ans select.prj-dq:focus { background-color: #fff; }
.prj .prj-tb-sep { width: 1px; height: 20px; background: var(--p-rule); margin: 0 4px; }
.prj .prj-tb-lbl { font-size: 13px; color: var(--p-muted); margin-right: -4px; }
.prj .prj-views-sm .prj-view { font-size: 13px; height: 28px; line-height: 26px; padding: 0 10px; }
.prj .prj-qn-none { color: var(--p-faint); }
.prj .prj-qn.on .prj-qn-c { color: var(--p-plum); }

/* v21 plan filters: a quiet second row under the toolbar */
.prj .prj-filters { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: -2px 0 12px; }
.prj .prj-filters .prj-views { gap: 0; }
.prj .prj-filters-clear { font-size: 13px; margin-left: 4px; }

/* v22a narrow: the summary's facts keep their width and the counts wrap under them; rag lines never break */
@media (max-width: 1240px) { .prj .prj-plan .prj-card-h { flex-wrap: wrap; } .prj .prj-facts { flex: 1 0 100%; } .prj .prj-plan .prj-kpis { width: 100%; justify-content: flex-start; padding-top: 6px; border-top: 1px solid var(--p-hair); margin-top: 2px; } }
.prj .prj-ragline { white-space: nowrap; }

/* v22b client sheet: a record read as facts and narrative */
.prj .prj-sheet .prj-drawer-t { display: flex; flex-direction: column; gap: 2px; font-size: 17px; line-height: 24px; font-weight: 600; }
.prj .prj-sheet-k { font-size: 12px; line-height: 16px; font-weight: 500; color: var(--p-muted); }
.prj .prj-sheet-b { padding: 16px 22px 6px; }
.prj .prj-kvs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 24px; }
.prj .prj-kv { min-width: 0; }
.prj .prj-kv.wide { grid-column: 1 / -1; }
.prj .prj-kv-l { font-size: 12px; line-height: 16px; color: var(--p-muted); margin-bottom: 3px; }
.prj .prj-kv-v { font-size: 14px; line-height: 20px; color: var(--p-ink); overflow-wrap: anywhere; }
.prj .prj-kv-v .prj-st { font-size: 14px; }
.prj .prj-sheet-edit { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--p-hair); }
.prj .prj-sheet-edit .prj-sec { margin-bottom: 10px; }
.prj .prj-agenda-ro, .prj .prj-list-ro { margin: 0; padding-left: 20px; }
.prj .prj-agenda-ro li, .prj .prj-list-ro li { margin: 2px 0; }
.prj .prj-agenda-ro ul { margin: 2px 0 6px; padding-left: 18px; color: var(--p-muted); }
@media (max-width: 1240px) { .prj .prj-plan .prj-kpis .prj-chip { text-align: left; } .prj .prj-plan .prj-kpis .prj-chip-v { justify-content: flex-start; } }

.prj .prj-agenda-open { white-space: nowrap; }
@media (max-width: 1240px) { .prj .prj-tb-lbl, .prj .prj-tb-sep { display: none; } }


/* narrow: the project name yields to the tabs; the tab gap tightens one step */
@media (max-width: 1240px) { .prj .prj-top-name { display: none; } .prj .prj-nav { gap: 16px; } }

/* v24 design: why line, notes, owner, grid layout */
.prj .prj-q-help { font-size: 12.5px; line-height: 17px; color: var(--p-muted); margin-top: 3px; max-width: 64ch; }
.prj .prj-q-noterow { margin-top: 6px; }
.prj .prj-q-addnote { font-size: 12px; color: var(--p-faint); }
.prj .prj-q-addnote:hover { color: var(--p-plum); }
.prj .prj-dq-note { width: 100%; box-sizing: border-box; font: inherit; font-size: 13px; line-height: 20px; color: var(--p-ink); background: transparent; border: 0; border-bottom: 1px dashed var(--p-rule); padding: 3px 0; }
.prj .prj-dq-note::placeholder { color: var(--p-faint); }
.prj .prj-dq-note:focus { outline: none; border-bottom: 1px solid var(--p-plum); }
.prj .prj-dq-note:disabled { color: var(--p-muted); border-bottom-color: transparent; }
.prj .prj-qpanel-intro { flex-basis: 100%; font-size: 13px; line-height: 19px; color: var(--p-muted); }
.prj .prj-qpanel-t { flex-wrap: wrap; row-gap: 2px; }


/* v26 proposed answers */
.prj .prj-q-proposed { color: var(--p-muted); }
.prj .prj-q-ptag { display: inline-block; font-size: 11px; line-height: 16px; font-weight: 600; color: var(--p-plum); background: var(--p-plum-soft); border-radius: 999px; padding: 0 7px; margin-right: 2px; vertical-align: 1px; }

/* v27 questionnaire grid: the app's grid (afa-grid), fitted to the viewport; controls sit in cells like a sheet */
.prj .prj-qgrid-wrap { margin: 0; }
.prj .prj-qgrid { table-layout: fixed; min-width: 1180px; }
.prj .prj-qgrid th.prj-c-ref, .prj .prj-qgrid td.prj-c-ref { width: 48px; }
.prj .prj-qgrid th:nth-child(3), .prj .prj-qgrid td.prj-qg-who { width: 138px; }
.prj .prj-qgrid th:nth-child(4), .prj .prj-qgrid td.prj-qg-sample { width: 240px; }
.prj .prj-qgrid th:nth-child(5), .prj .prj-qgrid td.prj-qg-ans { width: 300px; }
.prj .prj-qgrid th:nth-child(6), .prj .prj-qgrid td.prj-qg-note { width: 220px; }
.prj .prj-qgrid th:nth-child(7), .prj .prj-qgrid td.prj-qg-st { width: 136px; }
.prj .prj-qgrid td { vertical-align: top; padding: 8px 12px; font-size: 13px; line-height: 18px; }
.prj .prj-qgrid td.prj-c-ref { color: var(--faint); font-variant-numeric: tabular-nums; }
.prj .prj-qgrid .prj-q-q { font-size: 13px; line-height: 18px; font-weight: 500; color: var(--text); }
.prj .prj-qgrid .prj-q-help { font-size: 12px; line-height: 16px; color: var(--muted); margin-top: 2px; max-width: none; }
.prj .prj-qgrid .prj-q-meta { font-size: 11.5px; color: var(--faint); margin-top: 2px; }
.prj .prj-qgrid td.prj-qg-sample { font-size: 12.5px; line-height: 17px; color: var(--muted); }
.prj .prj-qgrid tr.prj-qg.done .prj-q-q { color: var(--muted); font-weight: 400; }
.prj .prj-qgrid .afa-grp td { font-size: 12px; }
/* editable cells read as text at rest; the box appears on hover and focus */
.prj .prj-qgrid .prj-dq { width: 100%; box-sizing: border-box; font: inherit; font-size: 13px; line-height: 18px; color: var(--text); background: transparent; border: 1px solid transparent; border-radius: 4px; padding: 3px 6px; margin: -4px -6px; }
.prj .prj-qgrid textarea.prj-dq { resize: none; min-height: 26px; display: block; }
.prj .prj-qgrid select.prj-dq { -webkit-appearance: none; appearance: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' fill='none' stroke='%23606B7A' stroke-width='1.5' stroke-linecap='round'/></svg>"); background-repeat: no-repeat; background-position: right 6px center; padding-right: 22px; }
.prj .prj-qgrid .prj-dq::placeholder { color: var(--faint); }
.prj .prj-qgrid tr:hover .prj-dq { border-color: var(--border); background: var(--panel); }
.prj .prj-qgrid .prj-dq:focus { outline: none; border-color: var(--accent, #654180); background: var(--panel); box-shadow: 0 0 0 3px rgba(101, 64, 128, .12); }
.prj .prj-qgrid .prj-dq-note { width: 100%; box-sizing: border-box; font: inherit; font-size: 12.5px; line-height: 18px; color: var(--text); background: transparent; border: 1px solid transparent; border-radius: 4px; padding: 3px 6px; margin: -4px -6px; }
.prj .prj-qgrid .prj-dq-note::placeholder { color: var(--faint); }
.prj .prj-qgrid tr:hover .prj-dq-note { border-color: var(--border); background: var(--panel); }
.prj .prj-qgrid .prj-dq-note:focus { outline: none; border-color: var(--accent, #654180); background: var(--panel); box-shadow: 0 0 0 3px rgba(101, 64, 128, .12); }
.prj .prj-qgrid .prj-dq-who { margin-left: -6px; font-size: 13px; }
.prj .prj-qgrid .prj-q-by { font-size: 11.5px; line-height: 15px; margin-top: 4px; }
.prj .prj-qgrid .prj-q-ptag { font-size: 10.5px; line-height: 15px; }
.prj .prj-qgrid td, .prj .prj-qgrid th { white-space: normal; overflow-wrap: anywhere; }
.prj .prj-qgrid th { white-space: nowrap; }

/* v30 question statuses: the dot carries the tone, the select carries the label */
.prj .prj-q-st .prj-st, .prj .prj-qgrid .prj-qg-st .prj-st { font-size: 13px; gap: 4px; }
.prj .prj-q-st .prj-st .prj-inline, .prj .prj-qgrid .prj-qg-st .prj-st .prj-inline { font-size: 13px; padding-left: 4px; }
.prj .prj-st.t-faint i { background: transparent; border: 1.5px solid #9aa3b2; box-sizing: border-box; width: 8px; height: 8px; }
/* v30b: room for "Discuss with Cadence" */
.prj .prj-q { grid-template-columns: 36px minmax(0, 1fr) 400px 196px; }
.prj .prj-qgrid th:nth-child(7), .prj .prj-qgrid td.prj-qg-st { width: 184px; }
@media (max-width: 1240px) { .prj .prj-q { grid-template-columns: 36px minmax(0, 1fr) 196px; } }

/* v31 grid polish: dense rows, controls hug their labels, proportional columns */
.prj .prj-qgrid { min-width: 1100px; }
.prj .prj-qgrid th:nth-child(1), .prj .prj-qgrid td.prj-c-ref, .prj .prj-qgrid th:nth-child(3), .prj .prj-qgrid td.prj-qg-who, .prj .prj-qgrid th:nth-child(4), .prj .prj-qgrid td.prj-qg-sample, .prj .prj-qgrid th:nth-child(5), .prj .prj-qgrid td.prj-qg-ans, .prj .prj-qgrid th:nth-child(6), .prj .prj-qgrid td.prj-qg-note, .prj .prj-qgrid th:nth-child(7), .prj .prj-qgrid td.prj-qg-st { width: auto; }
.prj .prj-qgrid td { padding: 7px 10px; line-height: 18px; vertical-align: middle; }
.prj .prj-qgrid td.prj-c-ref { padding-top: 7px; }
.prj .prj-qgrid .prj-q-q { font-weight: 500; }
.prj .prj-q-why { display: inline-block; width: 15px; height: 15px; line-height: 14px; text-align: center; border-radius: 50%; border: 1px solid var(--border); color: var(--faint); font-size: 10.5px; font-weight: 600; margin-left: 4px; vertical-align: 1px; cursor: help; }
.prj .prj-q-why:hover { color: var(--text); border-color: var(--muted); }
.prj .prj-qgrid .prj-q-by { margin-top: 2px; }
.prj .prj-qgrid select.prj-dq-st, .prj .prj-qgrid select.prj-dq-who { width: auto; max-width: 100%; padding-right: 22px; }
.prj .prj-qgrid .prj-qg-st .prj-st { display: inline-flex; }
.prj .prj-qgrid .afa-grp td { padding: 6px 10px; }
.prj .prj-qgrid .prj-qg-clamp { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.prj .prj-qgrid { min-width: 1120px; }
.prj .prj-q-proposed { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prj .prj-tpl { font-size: 13px; white-space: nowrap; }
.prj .prj-tpl::before { content: "\2193"; margin-right: 5px; font-size: 12px; }
.prj .prj-q-tplrow { margin-top: 6px; }
.prj .prj-qgrid td.prj-c-ref { white-space: nowrap; }

/* v33 user access matrix */
.prj .prj-q.prj-q-wide { grid-template-columns: 36px minmax(0, 1fr) 196px; grid-template-areas: "ref q st" "ref ans st"; row-gap: 10px; align-items: start; }
.prj .prj-q.prj-q-wide .prj-q-ref { grid-area: ref; } .prj .prj-q.prj-q-wide .prj-q-text { grid-area: q; } .prj .prj-q.prj-q-wide .prj-q-ans { grid-area: ans; max-width: none; } .prj .prj-q.prj-q-wide .prj-q-st { grid-area: st; }
.prj .prj-mx-wrap { border: 1px solid var(--p-rule); border-radius: 6px; overflow: hidden; }
.prj .prj-mx-t { width: 100%; border-collapse: collapse; font-size: 13px; }
.prj .prj-mx-t th { text-align: left; font-size: 12px; font-weight: 500; color: var(--p-muted); padding: 7px 10px; background: var(--p-zebra); border-bottom: 1px solid var(--p-rule); white-space: nowrap; }
.prj .prj-mx-t th.prj-mx-a, .prj .prj-mx-t td.prj-mx-a { text-align: center; width: 92px; }
.prj .prj-mx-t td { padding: 4px 6px; border-bottom: 1px solid var(--p-hair); vertical-align: middle; }
.prj .prj-mx-t tbody tr:last-child td { border-bottom: 0; }
.prj .prj-mx-t input[type=text], .prj .prj-mx-t input:not([type]), .prj .prj-mx-t select { width: 100%; box-sizing: border-box; font: inherit; font-size: 13px; line-height: 18px; color: var(--p-ink); background: transparent; border: 1px solid transparent; border-radius: 4px; padding: 5px 6px; }
.prj .prj-mx-t input:not([type=checkbox]):hover, .prj .prj-mx-t select:hover { border-color: var(--p-rule); background: #fff; }
.prj .prj-mx-t input:not([type=checkbox]):focus, .prj .prj-mx-t select:focus { outline: none; border-color: var(--p-plum); background: #fff; box-shadow: 0 0 0 3px var(--p-plum-soft); }
.prj .prj-mx-t input::placeholder { color: var(--p-faint); }
.prj .prj-mx-t input[type=checkbox] { width: 15px; height: 15px; accent-color: var(--p-plum); vertical-align: middle; }
.prj .prj-mx-t td.prj-mx-x { width: 28px; text-align: center; }
.prj .prj-mx-del { font-size: 12px; color: var(--p-faint); background: none; border: 0; cursor: pointer; padding: 2px 4px; }
.prj .prj-mx-del:hover { color: var(--p-hot); }
.prj .prj-mx-empty { color: var(--p-faint); font-size: 13px; padding: 10px; }
.prj .prj-mx-add { display: inline-block; margin: 8px 10px; font-size: 13px; }


/* v33b matrix column widths: names and roles read in full, area columns tighten */
.prj .prj-mx-t th.prj-mx-a, .prj .prj-mx-t td.prj-mx-a { width: 72px; }
.prj .prj-mx-t th:nth-child(1) { width: 22%; } .prj .prj-mx-t th:nth-child(2) { width: 26%; } .prj .prj-mx-t th:nth-child(3) { width: 118px; }
.prj .prj-mx-t th.prj-mx-a { font-size: 11px; letter-spacing: 0; white-space: normal; line-height: 14px; }
.prj .prj-mx-t td:nth-child(3), .prj .prj-mx-t th:nth-child(3) { min-width: 124px; }
.prj .prj-mx-t select { min-width: 110px; }
.prj .prj-mx-t th.prj-mx-a, .prj .prj-mx-t td.prj-mx-a { width: 62px; }
.prj .prj-mx-t td:nth-child(2), .prj .prj-mx-t th:nth-child(2) { min-width: 200px; }
.prj .prj-mx-t td:nth-child(1), .prj .prj-mx-t th:nth-child(1) { min-width: 150px; }
.prj .prj-mx-t td { padding: 4px 4px; }
.prj .prj-mx-t th { padding: 7px 6px; }
.prj .prj-mx-t th.prj-mx-a, .prj .prj-mx-t td.prj-mx-a { width: 56px; }
.prj .prj-mx-wrap { overflow-x: auto; }
.prj .prj-mx-t td:nth-child(1), .prj .prj-mx-t th:nth-child(1) { min-width: 136px; }
.prj .prj-mx-t td:nth-child(2), .prj .prj-mx-t th:nth-child(2) { min-width: 186px; }
.prj .prj-mx-t th.prj-mx-a, .prj .prj-mx-t td.prj-mx-a { width: 52px; }

/* v34 design document layout: the house document frame inside the app */
.prj .prj-dd-cols { grid-template-columns: 300px minmax(0, 1fr); }
.prj .prj-dd-toc { position: sticky; top: 12px; padding: 6px; margin: 0; }
.prj .prj-dd-tocrow { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 7px 10px; border-radius: 6px; color: var(--p-ink); text-decoration: none; font-size: 14px; line-height: 20px; }
.prj .prj-dd-tocrow:hover { background: var(--p-zebra); }
.prj .prj-dd-open { display: block; margin: 8px 10px 4px; padding-top: 10px; border-top: 1px solid var(--p-hair); font-size: 13px; color: var(--p-plum); text-decoration: none; }
.prj .prj-dd { padding: 36px 44px 32px; margin: 0; max-width: 900px; }
.prj .prj-dd-kicker { font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--p-plum2); }
.prj .prj-dd h2 { font-size: 26px; line-height: 32px; font-weight: 650; letter-spacing: -.01em; color: var(--p-ink); margin: 6px 0 4px; }
.prj .prj-dd-meta { font-size: 13px; color: var(--p-muted); }
.prj .prj-dd-lede { margin: 16px 0 0; padding: 12px 16px; background: var(--p-plum-soft); border-left: 3px solid var(--p-plum2); border-radius: 0 6px 6px 0; font-size: 13.5px; line-height: 20px; color: var(--p-ink); }
.prj .prj-dd-sec { margin-top: 28px; }
.prj .prj-dd-band { display: flex; align-items: center; gap: 12px; background: var(--p-plum); color: #fff; font-size: 13.5px; font-weight: 600; padding: 9px 14px; border-radius: 4px; }
.prj .prj-dd-num { font-weight: 700; color: #cbb8de; font-variant-numeric: tabular-nums; }
.prj .prj-dd-cnt { margin-left: auto; font-weight: 500; color: #cbb8de; font-size: 12px; }
.prj .prj-dd-intro { margin: 12px 2px 4px; font-size: 13px; color: var(--p-muted); }
.prj .prj-dd-st { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 4px 20px; padding: 9px 2px; border-bottom: 1px solid var(--p-hair); }
.prj .prj-dd-st.wide { grid-template-columns: 1fr; }
.prj .prj-dd-l { font-size: 12.5px; line-height: 18px; color: var(--p-muted); }
.prj .prj-dd-v { font-size: 13.5px; line-height: 20px; color: var(--p-ink); }
.prj .prj-dd-n { grid-column: 1 / -1; font-size: 12.5px; color: var(--p-muted); padding-left: 12px; border-left: 2px solid var(--p-rule); }
.prj .prj-q-ptag.ok { color: var(--p-ok); background: var(--p-ok-soft); } .prj .prj-q-ptag.warn { color: var(--p-warn); background: #fbf1e1; }
.prj .prj-dd-mx { width: 100%; border-collapse: collapse; margin-top: 4px; font-size: 13px; }
.prj .prj-dd-mx th { text-align: left; font-size: 11px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; color: var(--p-faint); padding: 5px 8px; border-bottom: 1px solid var(--p-rule); }
.prj .prj-dd-mx td { padding: 5px 8px; border-bottom: 1px solid var(--p-hair); color: var(--p-ink); }
.prj .prj-dd-todo { margin: 12px 2px 0; padding: 10px 14px; background: #fbfaf7; border: 1px solid var(--p-hair); border-radius: 6px; }
.prj .prj-dd-todo b { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--p-faint); margin-bottom: 6px; }
.prj .prj-dd-todo ul { margin: 0; padding-left: 0; list-style: none; } .prj .prj-dd-todo li { margin: 3px 0; font-size: 13px; color: var(--p-ink); }
.prj .prj-dd-id { display: inline-block; min-width: 34px; color: var(--p-faint); font-variant-numeric: tabular-nums; } .prj .prj-dd-who { color: var(--p-muted); font-size: 12px; }
.prj .prj-dd-sig { margin-top: 10px; font-size: 12.5px; color: var(--p-ok); font-weight: 600; }
.prj .prj-dd-none { margin: 12px 2px; font-size: 13px; color: var(--p-faint); }
.prj .prj-dd-cm { margin: 14px 2px 0; }
.prj .prj-dd-cm .prj-sec { margin-bottom: 4px; }
.prj .prj-dd-cmrow { display: flex; gap: 8px; align-items: flex-start; margin-top: 8px; }
.prj .prj-dd-cmin { flex: 1; font: inherit; font-size: 13px; line-height: 19px; color: var(--p-ink); background: #fafbfc; border: 1px solid var(--p-rule); border-radius: 6px; padding: 7px 10px; resize: vertical; }
.prj .prj-dd-cmin:focus { outline: none; background: #fff; border-color: var(--p-plum); box-shadow: 0 0 0 3px var(--p-plum-soft); }
@media (max-width: 1240px) { .prj .prj-dd-cols { grid-template-columns: 1fr; } .prj .prj-dd-toc { position: static; } .prj .prj-dd { padding: 24px 22px; } .prj .prj-dd-st { grid-template-columns: 1fr; } }

/* v35 the live design document with anchored comments */
.prj .prj-ddoc-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 12px; }
.prj .prj-ddoc-bar-l { display: flex; align-items: baseline; gap: 12px; min-width: 0; }
.prj .prj-ddoc-k { font-size: 14px; font-weight: 600; color: var(--p-ink); white-space: nowrap; }
.prj .prj-ddoc-m { font-size: 13px; color: var(--p-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prj .prj-ddoc-bar-r { display: flex; gap: 8px; }
.prj .prj-ddoc-bar-r a.secondary-btn { text-decoration: none; display: inline-flex; align-items: center; }
.prj .prj-ddoc-cols { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 16px; align-items: start; }
.prj .prj-ddoc { padding: 44px 52px 40px; margin: 0; }
.prj .prj-ddoc-body [data-a] { position: relative; cursor: pointer; border-radius: 4px; transition: background .12s; }
.prj .prj-ddoc-body [data-a]:hover { background: #faf8f4; box-shadow: 0 0 0 6px #faf8f4; }
.prj .prj-ddoc-body [data-a][data-cm]::after { content: attr(data-cm); position: absolute; right: -34px; top: 2px; min-width: 18px; height: 18px; line-height: 18px; text-align: center; font-size: 11px; font-weight: 700; color: #fff; background: var(--p-plum2); border-radius: 999px; padding: 0 5px; }
.prj .prj-ddoc-body [data-a][data-cm] { background: #fbf6ee; box-shadow: 0 0 0 6px #fbf6ee; }
.prj .prj-ddoc.has-sel .prj-ddoc-body [data-a].sel, .prj .prj-ddoc-body [data-a]:focus { background: var(--p-plum-soft); box-shadow: 0 0 0 6px var(--p-plum-soft); }
.prj .prj-ddoc-body section[data-a]:hover { background: transparent; box-shadow: none; }
.prj .prj-ddoc-body .band { cursor: pointer; }
.prj .prj-ddp { position: sticky; top: 12px; padding: 12px 14px; margin: 0; max-height: calc(100vh - 40px); overflow: auto; }
.prj .prj-ddp-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.prj .prj-ddp-where { font-size: 13px; font-weight: 600; color: var(--p-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.prj .prj-ddp-item { padding: 8px 0; border-top: 1px solid var(--p-hair); cursor: pointer; }
.prj .prj-ddp-item:hover { background: var(--p-zebra); }
.prj .prj-ddp-loc { font-size: 11.5px; color: var(--p-muted); margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.prj .prj-ddc { padding: 8px 0; border-top: 1px solid var(--p-hair); }
.prj .prj-ddc.resolved { opacity: .7; }
.prj .prj-ddc-h { display: flex; align-items: baseline; gap: 6px; font-size: 12.5px; }
.prj .prj-ddc-h b { color: var(--p-ink); } .prj .prj-ddc-h span { color: var(--p-muted); font-size: 11.5px; }
.prj .prj-ddc-resolve { margin-left: auto; font-size: 12px; }
.prj .prj-ddc-res { margin-left: auto; font-size: 11px; color: var(--p-ok); font-weight: 600; }
.prj .prj-ddc-t { font-size: 13px; line-height: 19px; color: var(--p-ink); margin-top: 3px; }
.prj .prj-ddc-r { margin: 6px 0 0 12px; padding-left: 10px; border-left: 2px solid var(--p-rule); font-size: 12.5px; }
.prj .prj-ddc-r b { color: var(--p-ink); } .prj .prj-ddc-r span { color: var(--p-muted); font-size: 11.5px; margin-left: 4px; }
.prj .prj-ddc-reply { display: flex; gap: 8px; align-items: center; margin-top: 6px; }
.prj .prj-ddc-in { flex: 1; font: inherit; font-size: 12.5px; padding: 5px 8px; border: 1px solid var(--p-rule); border-radius: 6px; background: #fafbfc; }
.prj .prj-ddc-in:focus { outline: none; border-color: var(--p-plum); background: #fff; }
.prj .prj-ddc-new { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--p-hair); display: flex; flex-direction: column; gap: 8px; align-items: flex-end; }
.prj .prj-ddc-newin { width: 100%; box-sizing: border-box; font: inherit; font-size: 13px; line-height: 19px; padding: 7px 10px; border: 1px solid var(--p-rule); border-radius: 6px; background: #fafbfc; resize: vertical; }
.prj .prj-ddc-newin:focus { outline: none; border-color: var(--p-plum); background: #fff; box-shadow: 0 0 0 3px var(--p-plum-soft); }
@media (max-width: 1240px) { .prj .prj-ddoc-cols { grid-template-columns: 1fr; } .prj .prj-ddp { position: static; max-height: none; } .prj .prj-ddoc { padding: 24px 22px; } .prj .prj-ddoc-body [data-a][data-cm]::after { right: -6px; top: -8px; } }

/* v36 design document: hero inside the card, tables inside their column, readable header rows, delete links */
.prj .prj-ddoc { padding: 0 52px 40px; overflow: hidden; }
.prj .prj-ddoc .hero { margin: 0 -52px; }
.prj .prj-ddoc table { table-layout: fixed; width: 100%; }
.prj .prj-ddoc table td, .prj .prj-ddoc table th { white-space: normal; overflow-wrap: anywhere; }
.prj .prj-ddoc table thead th { color: #fff !important; background: #2b2134 !important; }
.prj .prj-ddoc table.kv th { width: 190px; }
.prj .prj-ddc-del { font-size: 11.5px; color: var(--p-faint); margin-left: 8px; }
.prj .prj-ddc-del:hover { color: var(--p-hot); }
.prj .prj-ddc-r .prj-ddc-del { margin-left: 6px; }


/* v37: the design document toolbar keeps its buttons on one line at every width */
.prj .prj-ddoc-bar-r { flex: none; }
.prj .prj-ddoc-bar-r a.secondary-btn, .prj .prj-ddoc-bar-r button.secondary-btn { white-space: nowrap; }

/* v38: in-document jumps land below the sticky top bar */
.prj .prj-ddoc section, .prj .prj-ddoc .toc { scroll-margin-top: 64px; }

/* v39: returned files (uploads against the questionnaire's file requests) */
.prj .prj-file { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.prj .prj-file-latest { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.prj .prj-file-latest .prj-a { font-weight: 600; word-break: break-all; }
.prj .prj-file-meta { font-size: 11.5px; color: var(--p-muted); }
.prj .prj-file-none { font-size: 13px; color: var(--p-muted); font-style: italic; }
.prj .prj-upl { display: inline-flex; align-items: center; gap: 6px; font: inherit; font-size: 12.5px; font-weight: 600; padding: 6px 11px; border: 1px solid var(--p-rule); border-radius: 6px; background: #fff; cursor: pointer; color: var(--p-ink); white-space: nowrap; }
.prj .prj-upl:hover { background: var(--p-zebra); }
.prj .prj-files-tbl td { white-space: normal; vertical-align: top; max-width: none; }
.prj .prj-files-tbl td.nw { white-space: nowrap; }
.prj .prj-files-tbl .prj-q-q { font-weight: 600; }
.prj .prj-files-tbl .prj-q-help { margin-top: 3px; max-width: 52ch; }
.prj .prj-files-tbl .prj-q-meta { margin-top: 5px; font-size: 11.5px; color: var(--p-muted); }
.prj .prj-fv { list-style: none; margin: 0; padding: 0; font-size: 12px; color: var(--p-muted); }
.prj .prj-fv li { padding: 2px 0; }
.prj .prj-fv li:first-child .prj-a { font-weight: 600; }
.prj .prj-req { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--p-muted); }
.prj .prj-req.must { color: var(--p-hot); }
.prj .prj-tl-link.prj-hot { color: var(--p-hot); }
.prj .prj-card-intro { margin: 0 0 14px; font-size: 13px; color: var(--p-muted); line-height: 1.5; max-width: 80ch; }

/* v40: past-meeting summaries collapse to a two-line preview; the row click opens full details */
.prj .prj-msum{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:74ch}
.prj tr.prj-row:hover .prj-msum{color:var(--p-muted)}

/* v41: read-first meeting detail (recap, recording, attendees, decisions, action items) */
.prj .prj-md-body { padding: 6px 24px 26px; overflow: auto; }
.prj .prj-md-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 4px 0 14px; border-bottom: 1px solid var(--p-hair); margin-bottom: 18px; }
.prj .prj-md-meta { font-size: 12.5px; color: var(--p-muted); }
.prj .prj-md-rec { display: inline-flex; align-items: center; gap: 11px; text-decoration: none; background: #2b2134; color: #fffdfa; border-radius: 9px; padding: 11px 17px; margin: 0 0 20px; }
.prj .prj-md-rec:hover { background: #3a2c47; }
.prj .prj-md-rec .prj-md-play { width: 22px; height: 22px; border-radius: 50%; background: rgba(255, 255, 255, .18); display: inline-flex; align-items: center; justify-content: center; font-size: 9px; }
.prj .prj-md-rec b { font-weight: 600; font-size: 13.5px; }
.prj .prj-md-rec .prj-md-rd { color: rgba(255, 253, 250, .7); font-size: 13px; }
.prj .prj-md-sec { margin: 0 0 22px; }
.prj .prj-md-h { font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--p-accent-ink, #542477); margin: 0 0 9px; }
.prj .prj-mn { font-size: 13.5px; line-height: 1.62; color: var(--p-ink); }
.prj .prj-mn-h { font-size: 13.5px; font-weight: 700; color: var(--p-ink); margin: 16px 0 6px; }
.prj .prj-mn-h:first-child { margin-top: 0; }
.prj .prj-mn-p { margin: 0 0 9px; color: var(--p-ink); }
.prj .prj-mn-ul { margin: 0 0 11px; padding-left: 20px; }
.prj .prj-mn-ul li { margin: 3px 0; line-height: 1.5; color: var(--p-ink); }
.prj .prj-md-ag { margin: 0; padding-left: 22px; }
.prj .prj-md-ag > li { margin: 7px 0; }
.prj .prj-md-ag > li .prj-mn-ul { margin-top: 4px; }
.prj .prj-md-empty { color: var(--p-muted); font-size: 13px; padding: 22px 0; }
/* Files to return: a list, one file per row (name, description, template; status; upload), what came back underneath. */
.prj .prj-fl-card { padding: 0; overflow: hidden; }
.prj .prj-fl { display: grid; grid-template-columns: 40px minmax(0, 1fr) 176px 146px; column-gap: 16px; align-items: start; padding: 16px 20px 16px 18px; border-bottom: 1px solid var(--p-hair); }
.prj .prj-fl:last-child { border-bottom: none; }
.prj .prj-fl:hover { background: #fcfcfd; }
.prj .prj-fl-id { font-size: 13px; color: var(--p-faint); font-variant-numeric: tabular-nums; padding-top: 1px; }
.prj .prj-fl-name { font-size: 14.5px; line-height: 20px; font-weight: 600; color: var(--p-ink); }
.prj .prj-fl.done .prj-fl-name { color: var(--p-muted); }
.prj .prj-fl-tag { display: inline-block; margin-left: 9px; vertical-align: 2px; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--p-muted); background: var(--p-zebra); border-radius: 4px; padding: 2px 6px; line-height: 13px; }
.prj .prj-fl-tag.must { color: var(--p-hot); background: var(--p-hot-soft, #f8e7e5); }
.prj .prj-fl-help { font-size: 13px; line-height: 19px; color: var(--p-muted); margin-top: 3px; max-width: 78ch; }
.prj .prj-fl-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; font-size: 12.5px; color: var(--p-muted); margin-top: 7px; }
.prj .prj-fl-meta .prj-tpl { font-weight: 600; }
.prj .prj-fl-none { color: var(--p-faint); font-style: italic; }
.prj .prj-fl-back { margin-top: 8px; display: grid; gap: 3px; }
.prj .prj-fl-ver { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; font-size: 12.5px; }
.prj .prj-fl-ver a { font-weight: 600; }
.prj .prj-fl-ver span { color: var(--p-muted); }
.prj .prj-fl-ver.old a { font-weight: 500; color: var(--p-muted); }
.prj .prj-fl-st { padding-top: 0; }
.prj .prj-fl-act { text-align: right; }
.prj .prj-fl-act .prj-upl { width: 100%; justify-content: center; }
.prj .prj-fl-st .prj-sel.prj-inline { width: auto; max-width: 100%; field-sizing: content; }
@media (max-width: 900px) {
  .prj .prj-fl { grid-template-columns: 36px minmax(0, 1fr); row-gap: 10px; }
  .prj .prj-fl-st { grid-column: 2; } .prj .prj-fl-act { grid-column: 2; text-align: left; }
}

/* ---- Process flows (config/project-flows/<ws>): a list of flows, the selected one large ---- */
.prj .prj-fw { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 14px; align-items: start; }
.prj .prj-fw-list { padding: 8px; }
.prj .prj-fw-grp { font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--p-muted); padding: 10px 8px 4px; }
.prj .prj-fw-item { display: block; width: 100%; text-align: left; background: none; border: 0; border-radius: 6px; padding: 8px; cursor: pointer; font: inherit; color: var(--p-ink); }
.prj .prj-fw-item:hover { background: #f6f4f8; }
.prj .prj-fw-item.on { background: #f1ecf4; }
.prj .prj-fw-t { display: block; font-size: 13px; font-weight: 600; line-height: 1.3; }
.prj .prj-fw-m { display: flex; align-items: center; gap: 6px; margin-top: 3px; font-size: 11.5px; color: var(--p-muted); }
.prj .prj-fw-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--p-muted); flex: none; }
.prj .prj-fw-dot.t-warn { background: var(--p-warn); } .prj .prj-fw-dot.t-now { background: var(--p-plum2); } .prj .prj-fw-dot.t-ok { background: var(--p-ok); }
.prj .prj-fw-view { padding: 16px 18px 18px; min-width: 0; }
.prj .prj-fw-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.prj .prj-fw-title { font-size: 16px; font-weight: 650; color: var(--p-ink); }
.prj .prj-fw-meta { display: flex; align-items: center; gap: 14px; margin-top: 5px; font-size: 12px; color: var(--p-muted); flex-wrap: wrap; }
.prj .prj-fw-act { display: flex; gap: 8px; }
.prj .prj-fw-img { display: block; margin-top: 14px; border: 1px solid #e7e4ec; border-radius: 6px; overflow: hidden; background: #fff; }
.prj .prj-fw-img img { display: block; width: 100%; height: auto; }
.prj .prj-fw-body { margin-top: 14px; max-width: 780px; font-size: 13px; line-height: 1.5; color: var(--p-ink); }
.prj .prj-fw-body p { margin: 0 0 8px; }
.prj .prj-fw-body ul { margin: 0 0 8px; padding-left: 18px; }
.prj .prj-fw-body li { margin: 3px 0; }
.prj .prj-fw-src { font-size: 12px; color: var(--p-muted); }
@media (max-width: 900px) { .prj .prj-fw { grid-template-columns: 1fr; } }
.prj .prj-fw-act a, .prj .prj-tb a.secondary-btn { text-decoration: none; }

/* a chart legend's global .t-warn/.t-ok (retail-afa-v2.js) must not paint project status chips */
.prj .prj-st.t-warn, .prj .prj-st.t-ok, .prj .prj-st.t-now, .prj .prj-st.t-faint, .prj .prj-fw-m { background: none; }

/* a phase still open past its planned end (cadence-project.js phaseState): the page's warning tone, never a fill change elsewhere */
.prj .prj-step.late .prj-step-bar, .prj .prj-g-bar.late { background: var(--p-warn, #c98a1b); }
.prj .prj-step.late .prj-step-n, .prj .prj-g-name.late b { color: var(--p-warn, #c98a1b); }
.prj .prj-legend i.late { background: var(--p-warn, #c98a1b); }
/* Program threads (2026-10-22-project-program-threads.md): the board is a work table with platform dots; a thread page is
   the client's ask on the left and Cadence Plan's view and estimate on the right, then what hangs off the phase. */
.prj .prj-thr-num { text-align: right; white-space: nowrap; }
.prj .prj-thr-win { white-space: nowrap; }
.prj .prj-thr-draft { display: inline-block; margin-left: 6px; padding: 0 6px; border-radius: 999px; background: var(--p-hair); color: var(--p-warn); font-size: 10.5px; font-weight: 650; }
.prj .prj-thr-acts { display: flex; gap: 6px; }
.prj .prj-thr-head { margin: 2px 0 12px; }
.prj .prj-thr-back { font-size: 12.5px; color: var(--p-muted); margin-bottom: 6px; }
.prj .prj-thr-title h3 { margin: 0 0 4px; font-size: 19px; font-weight: 650; color: var(--p-ink); }
.prj .prj-thr-meta { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--p-muted); }
.prj .prj-thr-pills { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.prj .prj-thr-pill { padding: 2px 9px; border-radius: 999px; background: var(--p-plum-soft); color: var(--p-plum2); font-size: 11.5px; font-weight: 600; }
.prj .prj-thr-grid { align-items: start; }
.prj .prj-thr-grid > div > .prj-card + .prj-card { margin-top: 10px; }
.prj .prj-thr-obj { margin: 0 0 8px; font-size: 13.5px; line-height: 1.5; color: var(--p-ink); }
.prj .prj-thr-ul { margin: 0 0 6px; padding-left: 18px; font-size: 13px; line-height: 1.5; }
.prj .prj-thr-ul li { margin: 0 0 4px; }
.prj .prj-thr-src { font-size: 11.5px; margin-top: 6px; }
.prj .prj-thr-h { margin: 12px 0 4px; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #8d8880; }
.prj .prj-thr-p { font-size: 13px; line-height: 1.5; }
.prj .prj-thr-est { display: flex; align-items: baseline; gap: 10px; margin-bottom: 6px; }
.prj .prj-thr-est b { font-size: 22px; font-weight: 720; color: var(--p-ink); }
.prj .prj-thr-empty { margin: 0; font-size: 13px; }
.prj .prj-thr-linked { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 10px; }
.prj .prj-thr-linked .prj-thr-h { margin-top: 0; }
.prj .prj-thr-li { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-top: 1px solid var(--p-hair); font-size: 12.5px; }
.prj .prj-thr-li[data-open] { cursor: pointer; }
.prj .prj-thr-li[data-open]:hover > span:first-child { color: var(--p-plum2); }
.prj .prj-thr-form textarea, .prj .prj-thr-form input:not([type=checkbox]) { width: 100%; box-sizing: border-box; }
.prj .prj-thr-pfs { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 4px; font-weight: 400; }
.prj .prj-thr-cb { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; }
@media (max-width: 900px) { .prj .prj-thr-linked { grid-template-columns: 1fr; } }
.prj .prj-thr-name { white-space: nowrap; }
.prj .prj-thr-pfs-cell { white-space: nowrap; font-size: 12px; }
/* Requirements (the client's evaluation, 2026-10-24): the thread page's cards, plus a gallery of screens and recordings */
.prj .prj-req-top { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.prj .prj-req-nav { display: flex; gap: 14px; font-size: 12.5px; }
.prj .prj-req-note { font-size: 12px; margin-left: 6px; }
.prj .prj-req-rev { margin: 2px 0 10px; }
.prj .prj-req-cm { width: 100%; box-sizing: border-box; margin-top: 8px; }
.prj .prj-req-galcard { margin-top: 10px; }
.prj .prj-req-gal { display: grid; grid-template-columns: repeat(auto-fill, minmax(420px, 1fr)); gap: 16px; }
.prj .prj-req-fig { margin: 0; min-width: 0; }
.prj .prj-req-fig img, .prj .prj-req-fig video { display: block; width: 100%; height: auto; border: 1px solid var(--p-rule); border-radius: 6px; background: #fff; }
.prj .prj-req-fig figcaption { margin-top: 6px; font-size: 12.5px; line-height: 1.45; color: var(--p-muted); }
@media (max-width: 700px) { .prj .prj-req-gal { grid-template-columns: 1fr; } }
/* The Discussion on a requirement (2026-10-27-requirement-comments.md): oldest first, hairline between entries, muted ink for
   the side and time, no avatars and no per-side colour. The menu is the kit's More (details.cad-more, .cad-more-menu). */
.prj .prj-cm-list { list-style: none; margin: 0; padding: 0; }
.prj .prj-cm { padding: 10px 0; border-top: 1px solid var(--p-hair); min-width: 0; }
.prj .prj-cm:first-child { border-top: 0; padding-top: 2px; }
.prj .prj-cm-h { position: relative; display: flex; align-items: baseline; flex-wrap: wrap; column-gap: 8px; row-gap: 2px; padding-right: 32px; font-size: 12.5px; }
.prj .prj-cm-who { font-weight: 600; color: var(--p-ink); }
.prj .prj-cm-side, .prj .prj-cm-at { font-size: 12px; color: var(--p-muted); }
.prj .prj-cm-more { position: absolute; top: -3px; right: 0; }
.prj .prj-cm-more > summary.prj-cm-mbtn { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 24px; border-radius: 6px; color: var(--p-muted); font-size: 16px; line-height: 1; }
.prj .prj-cm-more > summary.prj-cm-mbtn:hover, .prj .prj-cm-more[open] > summary.prj-cm-mbtn { background: var(--p-hair); color: var(--p-ink); }
.prj .prj-cm-more > .cad-more-menu { min-width: 120px; }
.prj .prj-cm-text { margin-top: 3px; font-size: 13px; line-height: 1.5; color: var(--p-ink); white-space: normal; overflow-wrap: anywhere; }
.prj .prj-cm-new { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--p-hair); }
.prj .prj-cm-list:empty + .prj-cm-new, .prj .prj-thr-empty + .prj-cm-new { border-top: 0; }
.prj .prj-cm-ta { resize: vertical; min-height: 64px; padding: 8px 10px; border: 1px solid var(--p-rule); border-radius: 6px; font: inherit; font-size: 13px; line-height: 1.45; }
.prj .prj-cm-new .prj-actions, .prj .prj-cm .prj-actions { justify-content: flex-end; margin-top: 8px; }
.prj .prj-cm-hint { margin-right: auto; font-size: 12px; color: var(--p-faint); }
@media (max-width: 700px) { .prj .prj-cm-hint { display: none; } }
/* the 1.0 grid rule (body[data-cadence-ui="1.0"] #view table.cad-grid td) keeps cells on one line; the requirement reads in full */
html body #view .prj table.prj-tbl-work td.prj-req-cell { white-space: normal !important; overflow: visible; text-overflow: clip; min-width: 320px; }
html body #view .prj table.prj-tbl-work td.prj-req-cell .prj-sub2 { display: block !important; white-space: normal !important; max-width: 72ch; }
/* Requirements: Summary view tiles and the in-place fit control (2026-10-25) */
.prj .prj-tiles-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.prj .prj-req-fitctl { margin: 0 0 10px; flex-wrap: wrap; }
@media (max-width: 900px) { .prj .prj-tiles-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---- Open items: actions updated in place (status, owner, due, a one-line update note) ---- */
.prj .prj-watch { text-decoration: none; white-space: nowrap; }
.prj .prj-watch:hover { text-decoration: underline; }
.prj .prj-unote-row { display: flex; align-items: center; gap: 8px; margin-top: 4px; }
.prj .prj-inline.prj-unote { flex: 1; min-width: 0; max-width: 560px; padding: 3px 7px; margin: 0 0 0 -7px; background-image: none; cursor: text; color: var(--p-ink); font-size: 13px; }
.prj .prj-inline.prj-unote::placeholder { color: var(--p-faint); }
.prj .prj-unote-when { font-size: 11.5px; white-space: nowrap; }
.prj .prj-inline.prj-due { background-image: none; cursor: text; padding: 3px 6px; font-size: 13px; color: inherit; width: 132px; }
.prj .prj-c-owner, .prj .prj-c-due { white-space: nowrap; }
.prj .prj-items-card .cad-sel .cad-rg-btn { max-width: 230px; }

/* ---- Status report: editor beside the email preview ---- */
.prj .prj-rep { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 16px; align-items: start; }
@media (max-width: 1000px) { .prj .prj-rep { grid-template-columns: 1fr; } }
.prj .prj-rep-ed { padding: 4px 16px 12px; }
.prj .prj-rep-ed .prj-lbl input, .prj .prj-rep-ed .prj-lbl textarea { text-transform: none; letter-spacing: 0; font-weight: 400; font-size: 14px; color: var(--p-ink); }
.prj .prj-rep-rags { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; margin: 12px 0 0; font-size: 13px; }
.prj .prj-rep-rag { display: inline-flex; align-items: center; gap: 6px; color: var(--p-muted); }
.prj .prj-rep-sec { border-top: 1px solid var(--p-rule); margin-top: 14px; padding-top: 10px; }
.prj .prj-rep-sh { display: flex; align-items: baseline; gap: 8px; margin-bottom: 4px; font-size: 14px; }
.prj .prj-rep-e { padding: 5px 0; border-bottom: 1px dashed var(--p-hair); }
.prj .prj-rep-e1 { display: flex; align-items: center; gap: 6px; }
.prj .prj-rep-e1 input { flex: 1; min-width: 0; font-weight: 500; }
.prj .prj-rep-e2 { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 5fr); gap: 6px; margin-top: 2px; }
.prj .prj-rep-e input { font: inherit; font-size: 13px; padding: 3px 6px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--p-ink); width: 100%; box-sizing: border-box; }
.prj .prj-rep-e2 input { color: var(--p-muted); }
.prj .prj-rep-e input:hover { border-color: var(--p-rule); background: #fff; }
.prj .prj-rep-e input:focus { outline: none; border-color: var(--p-plum2); background: #fff; box-shadow: 0 0 0 3px var(--p-plum-soft); }
.prj .prj-rep-flag { flex: none; font-size: 11px; font-weight: 650; color: var(--p-hot); background: var(--p-hot-soft); border-radius: 4px; padding: 1px 6px; white-space: nowrap; }
.prj .prj-rep-flag.ok { color: var(--p-ok); background: var(--p-ok-soft); }
.prj .prj-rep-num { flex: none; font-size: 12px; }
.prj .prj-rep-x { flex: none; opacity: .45; }
.prj .prj-rep-x:hover { opacity: 1; }
.prj .prj-rep-add { font-size: 12.5px; margin-top: 6px; }
.prj .prj-rep-none { font-size: 13px; padding: 2px 0; }
.prj .prj-rep-pv { position: sticky; top: 8px; max-height: calc(100vh - 150px); overflow: auto; }
.prj .prj-rep-mail { padding: 16px 22px 22px; background: #fff; }
/* the tab row keeps its width; the project name beside it gives way first (ellipsis), then hides at 1240px */
.prj .prj-nav { flex: 1 0 auto; }
.prj .prj-top-r { flex: 0 1 auto; }
.prj .prj-top-name { flex: 0 1 auto; min-width: 0; }
.prj .prj-top-r > .primary-btn, .prj .prj-top-r > .secondary-btn { flex: none; }
/* the action column wraps (as Requirements does): the whole action, its recording link and its update line stay readable */
html body #view .prj table.prj-tbl-work td.prj-act-cell { white-space: normal !important; overflow: visible; text-overflow: clip; min-width: 340px; max-width: none; }
html body #view .prj table.prj-tbl-work td.prj-act-cell .prj-sub2 { display: block !important; white-space: normal !important; }
html body #view .prj table.prj-tbl-work td.prj-act-cell .prj-unote-row { display: flex !important; }
/* Status chips: a tinted pill with a solid dot and dark ink, no check mark (Will 2026-10-25: "I don't like the
   check mark icon", "feels a little sterile"). Hue carries data, the chrome stays neutral. */
.prj .prj-st { padding: 2px 9px 2px 7px; border-radius: 999px; background: var(--p-hair); color: var(--p-ink); font-size: 12px; font-weight: 600; }
.prj .prj-st i { width: 7px; height: 7px; border-radius: 50%; background: var(--p-faint); }
.prj .prj-st.t-ok { background: var(--p-ok-soft); color: #0f5a42; } .prj .prj-st.t-ok i { width: 7px; height: 7px; background: var(--p-ok); border-radius: 50%; }
.prj .prj-st.t-ok i::before { content: none; }
.prj .prj-st.t-now { background: var(--p-plum-soft); color: var(--p-plum2); } .prj .prj-st.t-now i { background: var(--p-plum2); }
.prj .prj-st.t-warn { background: #fbf1dc; color: #7a5612; } .prj .prj-st.t-warn i { background: var(--p-warn); }
.prj .prj-st.t-hot { background: var(--p-hot-soft, #f8e3e1); color: #8c2f28; } .prj .prj-st.t-hot i { background: var(--p-hot); }
.prj .prj-st.t-ink { background: #e8edf3; color: #2f3a48; } .prj .prj-st.t-ink i { background: #5b6b80; }
.prj .prj-st.t-faint { background: transparent; color: var(--p-muted); padding-left: 0; } .prj .prj-st.t-faint i { background: transparent; border: 1.5px solid #9aa3b2; box-sizing: border-box; width: 8px; height: 8px; }
.prj .prj-must { color: var(--p-plum2); font-weight: 650; }
/* Requirements list: the Fit and Review cells are text cells the kit edits like Excel; the colour follows the value. */
.prj .prj-req-in { width: 100%; max-width: 190px; box-sizing: border-box; font: inherit; font-size: 12.5px; font-weight: 600; color: var(--p-ink); background: var(--p-hair); border: 1px solid transparent; border-radius: 999px; padding: 3px 10px; cursor: cell; }
.prj .prj-req-in::placeholder { color: var(--p-faint); font-weight: 500; }
.prj .prj-req-in:focus { outline: none; background: #fff; border-color: var(--p-plum2); box-shadow: 0 0 0 3px var(--p-plum-soft); border-radius: 6px; }
.prj .prj-req-in.is-product, .prj .prj-req-in.is-accepted { background: var(--p-ok-soft); color: #0f5a42; }
.prj .prj-req-in.is-configuration { background: var(--p-plum-soft); color: var(--p-plum2); }
.prj .prj-req-in.is-new_build, .prj .prj-req-in.is-demo { background: #fbf1dc; color: #7a5612; }
.prj .prj-req-in.is-platform { background: #e8edf3; color: #2f3a48; }
.prj .prj-req-in.is-open { background: var(--p-hot-soft, #f8e3e1); color: #8c2f28; }
.prj .prj-c-fit .prj-thr-draft { vertical-align: middle; }

/* Requirements list: the number and the arrow open the row; Fit and Review are kit selects tinted by value; notes are
   text cells on the Excel layer. */
.prj .prj-req-row { cursor: default; }
.prj .prj-req-ref { font-size: 12.5px; font-weight: 600; color: var(--p-plum2); }
.prj .prj-req-open { background: none; border: 0; padding: 0 4px; font: inherit; font-size: 15px; color: var(--p-plum2); cursor: pointer; }
.prj .prj-req-sel .cad-rg-btn { border-radius: 999px; font-weight: 600; }
.prj .prj-req-sel.is-product .cad-rg-btn, .prj .prj-req-sel.is-accepted .cad-rg-btn { background: var(--p-ok-soft); color: #0f5a42; }
.prj .prj-req-sel.is-configuration .cad-rg-btn { background: var(--p-plum-soft); color: var(--p-plum2); }
.prj .prj-req-sel.is-new_build .cad-rg-btn, .prj .prj-req-sel.is-demo .cad-rg-btn { background: #fbf1dc; color: #7a5612; }
.prj .prj-req-sel.is-platform .cad-rg-btn { background: #e8edf3; color: #2f3a48; }
.prj .prj-req-sel.is-open .cad-rg-btn { background: var(--p-hot-soft, #f8e3e1); color: #8c2f28; }
.prj .prj-c-note { min-width: 180px; }
.prj .prj-req-notein { max-width: none; border-radius: 6px; background: #fff; border-color: var(--p-hair); font-weight: 500; }
.prj .prj-req-notetext { font-size: 12.5px; color: var(--p-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 240px; }
.prj .prj-req-noteta { margin-top: 4px; }
/* Requirements list widths: the requirement text yields first so Fit, Review, both notes and the arrow fit at 1440. */
.prj .prj-tblwrap { overflow-x: auto; }
html body #view .prj table.prj-tbl-work td.prj-req-cell { min-width: 240px; }
html body #view .prj table.prj-tbl-work td.prj-req-cell .prj-sub2 { max-width: 46ch; }
.prj .prj-tbl-work td.prj-c-note, .prj .prj-tbl-work th.prj-c-note { min-width: 150px; width: 165px; }
.prj .prj-req-notein { font-size: 12px; padding: 3px 8px; }
.prj .prj-tbl-work td.prj-muted { white-space: nowrap; }
.prj .prj-req-sel .cad-rg-btn { font-size: 12px; }

/* Requirements on the kit grid, edge to edge (2026-10-25). The wrap drops its reading width on this tab; the grid is the
   kit's (.rwm-grid / .rwm-tbl), so its header, rows, range selection and fit are the planning grids'. Structure
   fallbacks below only matter when no planning screen has injected the workbench styles yet. */
.prj .prj-wrap.prj-wrap-edge { max-width: none; }
.prj .prj-req-grid { margin-top: 8px; border: 1px solid #e5e5e5; border-radius: 6px; overflow: auto; max-height: calc(100vh - 230px); background: #fff; }
.prj .prj-req-grid table.rwm-tbl { width: 100%; border-collapse: collapse; font-size: 12.5px; font-family: var(--p-font); }
.prj .prj-req-grid table.rwm-tbl th { position: sticky; top: 0; z-index: 2; background: #2b2134; color: #fff; font-weight: 600; font-size: 12px; text-align: left; padding: 0 10px; height: 36px; white-space: nowrap; }
.prj .prj-req-grid table.rwm-tbl th.num, .prj .prj-req-grid table.rwm-tbl td.num { text-align: right; font-variant-numeric: tabular-nums; }
.prj .prj-req-grid table.rwm-tbl td { padding: 0 10px; height: 38px; line-height: 36px; border-bottom: 1px solid #e5e5e5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #262626; }
.prj .prj-req-grid table.rwm-tbl tbody tr:nth-child(even) td { background: #fafafa; }
.prj .prj-req-grid table.rwm-tbl td.cad-rown, .prj .prj-req-grid table.rwm-tbl th.cad-rown { color: #9a9a9a; text-align: right; font-size: 11px; padding: 0 6px; }
.prj .prj-req-grid td.om-txt { max-width: 0; }
.prj .prj-req-grid td.prj-c-fit, .prj .prj-req-grid td.prj-c-review, .prj .prj-req-grid td.prj-c-notes_client, .prj .prj-req-grid td.prj-c-notes_cadence { overflow: visible; }
.prj .prj-req-grid .prj-req-in { line-height: 22px; height: 26px; }
.prj .prj-req-grid .prj-req-ref { font-size: 12.5px; }
.prj .prj-req-grid .prj-st { font-size: 11.5px; padding: 1px 8px 1px 6px; }
.prj .prj-req-foot { display: flex; gap: 18px; align-items: baseline; padding: 8px 2px 0; font-size: 12px; color: #737373; }
.prj .prj-req-foot b { color: #404040; margin-right: 4px; }
.prj .prj-req-foot .cad-foot-flt a { color: var(--p-plum2); cursor: pointer; margin-left: 4px; }
.prj .prj-req-search { display: inline-flex; align-items: center; }
.prj .prj-tb-l { flex-wrap: wrap; row-gap: 6px; }
.prj .prj-colsctl { position: relative; display: inline-flex; }
.prj .prj-colsctl .rwm-col-menu { position: absolute; right: 0; top: 34px; z-index: 30; background: #fff; border: 1px solid #ddd; border-radius: 8px; padding: 10px 12px; box-shadow: 0 8px 24px rgba(0,0,0,.12); min-width: 190px; display: flex; flex-direction: column; gap: 4px; text-align: left; }
.prj .prj-colsctl .rwm-col-menu label { display: flex; gap: 8px; align-items: center; font-size: 12.5px; white-space: nowrap; }
.prj .prj-colmenu-h { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: #737373; }
.prj .prj-colmenu-h a { color: var(--p-plum2); cursor: pointer; text-transform: none; letter-spacing: 0; font-size: 12px; }
.prj .prj-tb-r .cad-ib { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 30px; padding: 0; }
.prj .prj-tb-r .cad-ib svg { width: 16px; height: 16px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.prj .prj-wrap-edge .prj-tb { flex-wrap: nowrap; align-items: flex-start; }
.prj .prj-wrap-edge .prj-tb-l { flex: 1 1 auto; min-width: 0; }
.prj .prj-wrap-edge .prj-tb-r { flex: 0 0 auto; }

.prj .prj-tb-r .cad-ib svg { width: 16px !important; height: 16px !important; min-width: 16px; display: block; }
.prj .prj-req-grid td.prj-c-open, .prj .prj-req-grid td.prj-c-ref { text-overflow: clip; overflow: visible; }

/* Requirements toolbar lives in the shell strip (kit chrome); only our Columns menu and Import label need placing. */
.prj-colsctl { position: relative; display: inline-flex; }
.prj-colsctl .rwm-col-menu { position: absolute; right: 0; top: 34px; z-index: 30; background: #fff; border: 1px solid #ddd; border-radius: 8px; padding: 10px 12px; box-shadow: 0 8px 24px rgba(0,0,0,.12); min-width: 190px; display: flex; flex-direction: column; gap: 4px; text-align: left; }
.prj-colsctl .rwm-col-menu label { display: flex; gap: 8px; align-items: center; font-size: 12.5px; white-space: nowrap; font-weight: 500; }
.prj-colsctl .prj-colmenu-h { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: #737373; }
.prj-colsctl .prj-colmenu-h a { color: #5a3470; cursor: pointer; text-transform: none; letter-spacing: 0; font-size: 12px; }
label.prj-upl.secondary-btn { display: inline-flex; align-items: center; cursor: pointer; }

/* ---- Status report, rev 2 (the ten from the 2026-10-25 research): status with reasons and trend, milestones, typed lines ---- */
.prj .prj-rep-status { border-top: 0; margin-top: 10px; }
.prj .prj-rep-st { display: grid; grid-template-columns: 74px 128px 26px minmax(0, 1fr); align-items: center; gap: 8px; padding: 4px 0; }
.prj .prj-rep-st.overall { border-bottom: 1px dashed var(--p-hair); padding-bottom: 8px; margin-bottom: 4px; }
.prj .prj-rep-st.overall .prj-rep-stl { font-weight: 650; color: var(--p-ink); }
.prj .prj-rep-stl { font-size: 13px; color: var(--p-muted); cursor: help; }
.prj .prj-rep-stv { display: inline-flex; align-items: center; gap: 6px; }
.prj .prj-rep-tr { text-align: center; font-weight: 700; font-size: 15px; color: var(--p-faint); }
.prj .prj-rep-tr.t-up { color: var(--p-ok); }
.prj .prj-rep-tr.t-down { color: var(--p-hot); }
.prj .prj-rep-why { font: inherit; font-size: 13px; padding: 4px 7px; border: 1px solid var(--p-rule); border-radius: 5px; background: #fff; color: var(--p-ink); min-width: 0; }
.prj .prj-rep-why.req:placeholder-shown { border-color: #e2b4af; background: var(--p-hot-soft); }
.prj .prj-rep-why.miss { border-color: var(--p-hot); box-shadow: 0 0 0 3px var(--p-hot-soft); }
.prj .prj-rep-why:focus { outline: none; border-color: var(--p-plum2); box-shadow: 0 0 0 3px var(--p-plum-soft); }
.prj .prj-rep-key { font-size: 12.5px; color: var(--p-muted); background: var(--p-zebra, #f7f7f9); border-radius: 6px; padding: 8px 10px; margin: 2px 0 8px; display: grid; gap: 4px; }
.prj .prj-rep-key .prj-dot { margin-right: 6px; }
.prj .prj-rep-hint { font-size: 12px; font-weight: 400; margin-left: auto; }
.prj .prj-rep-sh .prj-rep-hint + .prj-rep-hint { margin-left: 10px; }
.prj .prj-rep-bl { width: 100%; box-sizing: border-box; font: inherit; font-size: 14px; line-height: 1.45; padding: 7px 9px; border: 1px solid var(--p-rule); border-radius: 6px; }
.prj .prj-rep-ms { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; align-items: center; gap: 10px; padding: 5px 0; border-bottom: 1px dashed var(--p-hair); font-size: 13px; }
.prj .prj-rep-msf { display: inline-flex; align-items: center; gap: 6px; color: var(--p-muted); font-size: 12.5px; }
.prj .prj-rep-fc { font: inherit; font-size: 12.5px; padding: 2px 5px; border: 1px solid var(--p-rule); border-radius: 5px; }
.prj .prj-rep-e2.n3 { grid-template-columns: minmax(0, 2fr) minmax(0, 2fr) minmax(0, 3fr); }
.prj .prj-rep-e2.n2 { grid-template-columns: minmax(0, 2fr) minmax(0, 5fr); }
.prj .prj-rep-e2 input[type=date] { color: var(--p-ink); }
.prj .prj-rep-subj { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; padding: 10px 22px; border-bottom: 1px solid var(--p-hair); font-size: 13.5px; }
.prj .prj-rep-subj .prj-tl-link { margin-left: auto; font-size: 12.5px; }
.prj .prj-rep-note { font-size: 12px; color: var(--p-faint); margin: -2px 0 6px; }
.prj .prj-rep-mail { padding: 0; }
.prj .prj-rep-frame { display: block; width: 100%; border: 0; min-height: 400px; background: #fff; }
/* rev 3: what the key suggests, under a status that differs from it */
.prj .prj-rep-meta { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 12px; }
.prj .prj-rep-sug { font-size: 12px; color: var(--p-muted); margin: -2px 0 6px 82px; display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.prj .prj-rep-sug.over { color: var(--p-hot); }
.prj .prj-rep-tr.t-first { font-size: 11px; font-weight: 600; color: var(--p-faint); }
.prj .prj-rep-sug { display: block; line-height: 1.45; }
.prj .prj-rep-sug .prj-dot { margin-right: 5px; vertical-align: 1px; }
/* rev 4: forecasts from the facts, the self-check, the plan check */
.prj .prj-rep-msw { border-bottom: 1px dashed var(--p-hair); padding: 4px 0 6px; }
.prj .prj-rep-msw .prj-rep-ms { border-bottom: 0; padding: 2px 0; }
.prj .prj-rep-msnote { font-size: 12px; color: var(--p-faint); margin: 0 0 2px; }
.prj .prj-rep-msnote .prj-tl-link { font-size: 12px; }
.prj .prj-rep-fc.manual { border-color: var(--p-plum2); }
.prj .prj-rep-msr { width: 100%; box-sizing: border-box; margin-top: 4px; }
.prj .prj-rep-warn { margin: 12px 0 0; padding: 9px 12px; border-radius: 6px; background: var(--p-hot-soft); color: var(--p-hot); font-size: 13px; }
.prj .prj-rep-warn ul, .prj .prj-rep-plan ul { margin: 4px 0 0; padding-left: 18px; }
.prj .prj-rep-plan { margin: 10px 0 0; padding: 9px 12px; border-radius: 6px; background: #fbf6ea; color: #7a5a14; font-size: 12.5px; }
.prj .prj-rep-warnbtn { border-color: var(--p-hot) !important; color: var(--p-hot) !important; }

/* Project chrome: the tab row is the shell strip's title block; the Requirements toolbar is a second kit strip inside the
   page. Both are the kit's bars; only the tab buttons and the second bar's placement are ours. */
.prj-strip-tabs { display: flex; align-items: flex-end; gap: 18px; min-width: max-content; }
.prj-strip-tabs .prj-tab { background: none; border: 0; padding: 6px 1px 8px; margin-bottom: -3px; font: inherit; font-size: 14px; font-weight: 500; color: #606b7a; cursor: pointer; border-bottom: 2px solid transparent; white-space: nowrap; line-height: 1.2; }
.prj-strip-tabs .prj-tab:hover { color: #202631; }
.prj-strip-tabs .prj-tab.on { color: #202631; font-weight: 600; border-bottom-color: #5a3470; }

.prj .prj-reqbar { margin: 0 0 10px; }

/* UAT scripts, defects and the change log (2026-10-26): a script's steps read as a numbered list, each with its result
   control under it; the page fields are the kit's quiet inputs. Grids, filters and the strip are the Requirements tab's. */
.prj .prj-lg-steps { list-style: none; margin: 6px 0 0; padding: 0; }
.prj .prj-lg-step { display: grid; grid-template-columns: 28px 1fr; gap: 8px; padding: 10px 0; border-top: 1px solid var(--p-hair, #eee); }
.prj .prj-lg-step:first-child { border-top: 0; }
.prj .prj-lg-n { font-variant-numeric: tabular-nums; font-weight: 600; color: var(--p-muted); padding-top: 2px; }
.prj .prj-lg-act { color: var(--p-ink); }
.prj .prj-lg-exp { margin-top: 4px; font-size: 13px; color: var(--p-ink); }
.prj .prj-lg-stepctl { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.prj .prj-lg-stepctl .prj-lg-pin { flex: 1 1 180px; min-width: 0; }
.prj .prj-lg-step.is-fail .prj-lg-n { color: #b42318; }
.prj .prj-lg-raised { margin-top: 6px; font-size: 13px; }
.prj .prj-lg-pin { width: 100%; box-sizing: border-box; height: 32px; padding: 4px 8px; border: 1px solid var(--p-rule, #ddd); border-radius: 6px; font: inherit; font-size: 13px; background: #fff; color: var(--p-ink); }
.prj .prj-lg-pin:focus { outline: none; border-color: #5a3470; }
.prj .prj-lg-pair { gap: 12px; }
.prj .prj-lg-steprow { display: grid; grid-template-columns: 24px 1fr 1fr 30px; gap: 8px; align-items: start; margin-top: 8px; }
.prj .prj-lg-steprow textarea { width: 100%; box-sizing: border-box; resize: vertical; font: inherit; font-size: 13px; }
.prj .prj-actions-l { justify-content: flex-start; margin-top: 8px; }
.prj .prj-lg-form .prj-form-grid { margin-top: 4px; }

/* Requirement videos (decisions/2026-10-26-requirement-video.md): the current recording on the requirement page, its
   chapters and description beside it; the recorder drawer and its controls */
.prj .prj-rv { display: grid; grid-template-columns: minmax(0, 2fr) minmax(240px, 1fr); gap: 20px; margin-bottom: 16px; }
.prj .prj-rv-video { display: block; width: 100%; height: auto; max-height: 70vh; background: #000; border: 1px solid var(--p-rule); border-radius: 6px; }
.prj .prj-rv-wait { display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 9; border: 1px dashed var(--p-rule); border-radius: 6px; background: var(--p-hair); }
.prj .prj-rv-line { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; margin-top: 8px; font-size: 12.5px; }
.prj .prj-rv-line .prj-sp { flex: 1; }
.prj .prj-rv-why { color: var(--p-hot); font-size: 12.5px; }
.prj .prj-rv-missed { display: flex; flex-direction: column; gap: 2px; margin-top: 6px; font-size: 12px; color: var(--p-muted); }
.prj .prj-rv-side .prj-thr-h:first-child { margin-top: 0; }
.prj .prj-rv-chaps { display: flex; flex-direction: column; }
.prj .prj-rv-chap { display: flex; gap: 10px; align-items: baseline; text-align: left; font: inherit; font-size: 13px; color: var(--p-ink); background: none; border: 0; border-bottom: 1px solid var(--p-hair); padding: 7px 2px; cursor: pointer; }
.prj .prj-rv-chap:hover { background: var(--p-zebra); }
.prj .prj-rv-at { font-variant-numeric: tabular-nums; color: var(--p-muted); min-width: 34px; }
.prj .prj-rv-desc { width: 100%; box-sizing: border-box; }
.prj .prj-rv-text { margin: 0; font-size: 13px; line-height: 1.55; }
.prj .prj-rv-hist { margin: 0 0 16px; font-size: 12.5px; }
.prj .prj-rv-hist summary { cursor: pointer; color: var(--p-muted); }
.prj .prj-rv-old { display: flex; align-items: center; gap: 10px; padding: 6px 0; border-bottom: 1px solid var(--p-hair); }
.prj .prj-rv-old .prj-sp { flex: 1; }
.prj label.prj-rv-repl { cursor: pointer; }
.prj .prj-rec-src { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 13px; }
.prj .prj-rec-lvl { position: relative; height: 4px; margin-top: 10px; border-radius: 2px; background: var(--p-hair); overflow: hidden; }
.prj .prj-rec-lvl i { position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: var(--p-plum2); transition: width 60ms linear; }
.prj .prj-rec-count { display: flex; align-items: center; justify-content: center; flex: 1; min-height: 240px; font-size: 96px; font-weight: 600; color: var(--p-ink); font-variant-numeric: tabular-nums; }
.prj .prj-rec-drawer .prj-form { overflow-y: auto; }
.prj .prj-rec-float { position: fixed; left: 16px; bottom: 16px; z-index: 950; }
@media (max-width: 900px) { .prj .prj-rv { grid-template-columns: 1fr; } }

/* A phone (700px and under, the kit's phone width; 2026-10-27-project-phone.md). The phone is for checking.
   The tab row: one row of tabs that scrolls sideways (they keep their width, never shrink into each other); the project
   actions fold into the kit's More. The summary card: the three facts stack with their full values, the counts sit
   three across, and the phases read top to bottom in order, one per row, with the legend wrapping under them. */
.prj-strip-tabs.prj-strip-tabs-phone { flex: 1 1 auto; min-width: 240px; max-width: 100%; align-self: stretch; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scrollbar-width: none; gap: 16px; padding-right: 8px; }
.prj-strip-tabs.prj-strip-tabs-phone::-webkit-scrollbar { display: none; }
.prj-strip-tabs.prj-strip-tabs-phone .prj-tab { flex: none; margin-bottom: 0; }
/* the canvas fill bleeds over #view's padding, which is 14px at the side under 720px (retail-afa-v2.css): 10px of page scroll */
@media (max-width: 720px) { .adm-fill.prj { margin: -18px -14px -36px; padding: 18px 14px 36px; } }
@media (max-width: 700px) {
  .prj .prj-wrap { max-width: 100%; }
  .prj .prj-card, .prj .prj-gantt { padding: 16px; }
  .prj .prj-plan .prj-card-h { gap: 12px; }
  .prj .prj-facts { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .prj .prj-fact-status { justify-content: flex-start; padding: 0; border-right: 0; }
  .prj .prj-fact-v { white-space: normal; overflow: visible; text-overflow: clip; font-size: 18px; line-height: 24px; }
  .prj .prj-plan .prj-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .prj .prj-plan .prj-kpis .prj-chip { white-space: normal; min-width: 0; }
  .prj .prj-steps-wrap { margin-top: 16px; }
  .prj .prj-steps { flex-direction: column; flex-wrap: nowrap; gap: 12px; }
  .prj .prj-steps .prj-step { flex: none !important; width: 100%; }
  .prj .prj-steps .prj-step:has(.prj-today) { padding-top: 16px; }
  .prj .prj-steps .prj-step:has(.prj-today) .prj-today { top: 12px; }
  .prj .prj-steps .prj-step-n { min-height: 0; margin-top: 6px; }
  .prj .prj-legend-row { justify-content: flex-start; }
  .prj .prj-legend { display: flex; flex-wrap: wrap; row-gap: 4px; }
  .prj .prj-legend i:first-child { margin-left: 0; }
}

/* Requirement owners and attribution (2026-10-27, decisions/2026-10-27-requirement-owners.md) */
.prj .prj-req-owners { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2, 8px); margin: 2px 0 10px; min-width: 0; }
.prj .prj-req-k { font-size: 12px; font-weight: 600; color: var(--p-muted); }
.prj .prj-req-ownv { min-width: 0; overflow-wrap: anywhere; }
.prj .prj-req-by { font-size: 12px; color: var(--p-muted); margin: 2px 0 6px; }
.prj .prj-thr-title .prj-req-by { margin: 4px 0 0; }
/* Owners as a drop-down (2026-10-28): the kit's cell select; the names in the cell's one ink, cut with an ellipsis, the caret at
   the end. Its menu (the kit's, in the body) carries a tick box per member. */
.prj .prj-req-ownsel { display: flex; min-width: 0; max-width: 100%; }
.prj .prj-req-ownsel .cad-sel { display: flex; min-width: 0; width: 100%; }
.prj .prj-req-ownsel .cad-rg-btn { width: 100%; min-width: 0; justify-content: space-between; font-weight: 400; }
.prj .prj-req-ownsel .cad-rg-btn > span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.prj .prj-req-ownsel.is-empty .cad-rg-btn > span:first-child { color: var(--p-muted); }
.prj .prj-req-owners .prj-req-ownv { flex: 1 1 auto; }
.prj .prj-req-owners .prj-req-ownsel .cad-sel { width: auto; max-width: 100%; }
.cad-sel-menu.prj-own-menu button { align-items: center; gap: 8px; }
.cad-sel-menu.prj-own-menu .prj-own-box { flex: 0 0 14px; width: 14px; height: 14px; box-sizing: border-box; border: 1px solid #a3a3a3; border-radius: 3px; background: #fff; display: inline-flex; align-items: center; justify-content: center; }
.cad-sel-menu.prj-own-menu .prj-own-box svg { width: 12px; height: 12px; fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; visibility: hidden; }
.cad-sel-menu.prj-own-menu button.prj-own-on .prj-own-box { background: var(--accent-text, #2b2134); border-color: var(--accent-text, #2b2134); }
.cad-sel-menu.prj-own-menu button.prj-own-on .prj-own-box svg { visibility: visible; }
.cad-sel-menu.prj-own-menu .prj-own-empty { padding: 8px 12px; font-size: 13px; color: #737373; }
/* Polish (2026-10-28, Will: "clunky"): the menu is as wide as the longest name and its tick (reqOwnPlace clears the kit's
   cell-wide min-width; eight rows show, then it scrolls); a name never wraps. In the grid the cell at rest is blank but for the
   kit's muted caret, as Review's; the button fills the cell, so the kit's grey box, shown only while the menu is open, spans
   the whole cell. */
.cad-sel-menu.prj-own-menu { min-width: 0; }
.cad-sel-menu.prj-own-menu button { white-space: nowrap; }
html body[data-cadence-ui="1.0"] #view .prj table[data-cadence-component="grid"] .prj-req-ownsel .cad-sel { width: 100% !important; }
html body[data-cadence-ui="1.0"] #view .prj table[data-cadence-component="grid"] .prj-req-ownsel .cad-sel > .cad-rg-btn { width: 100%; justify-content: flex-start; }
html body[data-cadence-ui="1.0"] #view .prj table[data-cadence-component="grid"] .prj-req-ownsel .cad-sel > .cad-rg-btn > span:first-child:empty { display: none; }
html body[data-cadence-ui="1.0"] #view .prj table[data-cadence-component="grid"] .prj-req-ownsel .cad-sel > .cad-rg-btn:not([aria-expanded="true"]):hover { background: transparent !important; }
html body[data-cadence-ui="1.0"] #view .prj table[data-cadence-component="grid"] .prj-req-ownsel .cad-sel > .cad-rg-btn[aria-expanded="true"] { background: #eee !important; }

/* Member polish (decisions/2026-10-27-project-member-polish.md).
   Figures: tabular only where numbers line up (number cells, counts, dates in their own cells). Inter's tabular feature gives
   the hyphen a figure's width, so "REQ-072", "Day-in-the-life" and "sign-off" read wide on labels, titles and refs. The kit
   sets the planning grids tabular; the Project grids' text cells set it back, their number cells keep it. */
html body[data-cadence-ui="1.0"] #view .prj :is(table.rwm-tbl, table.cad-grid) td:not(.num):not(.cad-rown):not(.prj-c-num):not(.prj-num-cell):not(.prj-c-date), html body[data-cadence-ui="1.0"] #view .prj :is(table.rwm-tbl, table.cad-grid) th:not(.num) { font-variant-numeric: normal; }
/* The cells a member edits (their status, their review) show the kit's cell-select caret at rest; read-only cells and Fit do not. */
html body[data-cadence-ui="1.0"] #view .prj table[data-cadence-component="grid"] .prj-sel-rest .cad-sel .cad-sel-caret { opacity: .75; }
html body[data-cadence-ui="1.0"] #view .prj table[data-cadence-component="grid"] .prj-sel-rest .cad-sel:is(:hover, :focus-within) .cad-sel-caret { opacity: 1; }
/* Team: the name, then the email on its own muted line. */
html body #view .prj table.prj-tbl-work td.prj-team-who .prj-sub2 { display: block !important; white-space: normal !important; margin-top: 1px; }
/* A drawer's choice field (the kit's single select) and its read-only value. */
.prj .prj-form .cad-sel { display: flex; }
.prj .prj-form .cad-sel > .cad-rg-btn { width: 100%; justify-content: space-between; }
.prj .prj-fsel-ro { display: block; padding: 6px 0; color: var(--p-ink); }
/* Tabs that do not fit the window fold into More at the end of the row (the kit's details.cad-more). */
.prj-strip-tabs > .prj-tab-more { position: relative; display: flex; align-items: flex-end; }
.prj-strip-tabs > .prj-tab-more > summary.prj-tab { list-style: none; display: inline-flex; align-items: center; gap: 4px; }
.prj-strip-tabs > .prj-tab-more > summary.prj-tab::-webkit-details-marker { display: none; }
.prj-strip-tabs .prj-tab-caret { font-size: 10px; color: #606b7a; }
.prj-strip-tabs > .prj-tab-more > .cad-more-menu { top: calc(100% + 6px); min-width: 180px; }
/* the folded tabs open over the Requirements toolbar below: that second strip sits one layer under the shell strip */
.prj .prj-reqbar { z-index: 24 !important; }
.prj-strip-tabs > .prj-tab-more > .cad-more-menu > .prj-tab { display: flex; width: 100%; margin: 0; padding: 8px 12px; border: 0; border-radius: 6px; font-size: 13px; color: #202631; text-align: left; }

/* What changed since the last visit (decisions/2026-10-27-project-digest.md): one plain line above the first card, in the muted ink;
   each count is a link, underlined, never coloured. */
.prj .prj-since { font-size: 13px; line-height: 1.5; color: var(--p-muted); margin: 0 0 var(--sp-2, 8px); overflow-wrap: anywhere; }
.prj .prj-since .prj-tl-link { color: inherit; text-decoration: underline; text-underline-offset: 2px; text-decoration-thickness: 1px; }
.prj .prj-since .prj-tl-link:hover, .prj .prj-since .prj-tl-link:focus-visible { color: var(--p-ink); }

/* Member polish batch 2 (decisions/2026-10-27-project-member-polish.md, 2026-10-28). */
/* A zero tile's mark is the status chip's dot, never a check mark (Will dropped the glyph on 10-25). */
.prj .prj-zero-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--p-ok); flex: none; align-self: center; }
/* The overview's two columns stack under 1100px, so the Milestones table fits its card at 1000 (it scrolls inside it below that). */
@media (max-width: 1100px) { .prj .prj-cols-40 { grid-template-columns: 1fr; } }
/* Summary: a number column's header sits over its numbers; the review and evidence cards read as label-value rows. */
.prj table.prj-tbl th.prj-thr-num, html body #view .prj table.prj-tbl th.prj-thr-num { text-align: right; }
.prj .prj-kvrows { display: flex; flex-direction: column; }
.prj .prj-kvrows .prj-kv { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 8px 0; border-bottom: 1px solid var(--p-rule); }
.prj .prj-kvrows .prj-kv:last-child { border-bottom: 0; }
.prj .prj-kvrows .prj-kv-l { margin: 0; font-size: 13px; line-height: 20px; }
.prj .prj-kvrows .prj-kv-v { text-align: right; font-variant-numeric: tabular-nums; }
/* The requirement page's review choices are the kit's segmented control. */
.prj .seg.prj-req-rev { margin: 4px 0 10px; }
