/* public/desk-shape-b-p5.css
 *
 * ⛔ TRANSCRIBED VERBATIM from the signed-off P5 canonical, lines 500-560 of
 * docs/ui/mockups_live/p5_admin_mockup.html
 * sha256 5441082763dccd09e09b071a176771361366cffc3eb013109ca381a17f61e7f2
 * (121,894 bytes, 1,917 lines, added 03f7d131, the ONLY version of that file).
 *
 * ⛔ DECLARATIONS ARE UNCHANGED, BYTE FOR BYTE. The ONE edit is the selector
 * prefix: every top-level `.p5-*` / `.modal-*` selector is scoped under
 * `.shape-b-p4-root`, which is exactly what `desk-shape-b-p4.css` already does
 * to its own rules. The mockup is a standalone page and needs no scope; this
 * stylesheet ships alongside P1-P4's, so an unscoped `.modal-box` would reach
 * surfaces the canonical never governed.
 *
 * ⚠ NOTHING IS ADDED. No value is "corrected", no rule is merged, no missing
 * state is filled in. Where the canonical has no rule, this file has none.
 */
.shape-b-p4-root .p5-block{margin-top:8px;padding:10px 12px;background:var(--surface);
  border:1px solid var(--border-soft);border-radius:8px}
.shape-b-p4-root .p5-block .detail-section-label{margin-top:0}
.shape-b-p4-root .p5-row{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:5px 0;font-size:var(--fs-small)}
.shape-b-p4-root .p5-row + .p5-row{border-top:1px solid var(--border-soft)}
.shape-b-p4-root .p5-label{color:var(--text)}
.shape-b-p4-root .p5-status{margin-left:8px;font-size:var(--fs-meta)}
.shape-b-p4-root .p5-status.st-not-started{color:var(--text-secondary);font-style:italic}
.shape-b-p4-root .p5-status.st-running{color:var(--text-secondary)}
.shape-b-p4-root .p5-status.st-ready{color:var(--state-success);font-weight:600}
.shape-b-p4-root .p5-status.st-failed{color:var(--field-error);font-weight:600}
.shape-b-p4-root .p5-view-link{font:600 var(--fs-small) var(--font-ui);color:var(--accent-ink);
  background:none;border:none;cursor:pointer;text-decoration:underline;padding:0}
.shape-b-p4-root .p5-view-link:disabled{color:var(--text-secondary);text-decoration:none;cursor:default}

/* Modal — explicitly not the drawer pattern. */
.shape-b-p4-root .modal-scrim{position:fixed;inset:0;background:rgba(20,16,8,.45);display:none;
  align-items:center;justify-content:center;z-index:50;padding:24px}
.shape-b-p4-root .modal-scrim.open{display:flex}
.shape-b-p4-root .modal-box{background:var(--surface);border-radius:12px;max-width:640px;width:100%;
  max-height:84vh;display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(20,16,8,.3)}
.shape-b-p4-root .modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  padding:18px 20px;border-bottom:1px solid var(--border-soft)}
.shape-b-p4-root .modal-title{font:600 17px var(--font-ui);color:var(--text)}
.shape-b-p4-root .modal-subtitle{font:400 var(--fs-small) var(--font-ui);color:var(--text-secondary);margin-top:3px}
.shape-b-p4-root .modal-close{flex-shrink:0;width:28px;height:28px;border-radius:50%;border:1px solid var(--border-strong);
  background:var(--field);color:var(--text-secondary);cursor:pointer;font-size:13px}
.shape-b-p4-root .modal-close:hover{color:var(--text);border-color:var(--text-secondary)}
.shape-b-p4-root .modal-body{padding:18px 20px;overflow-y:auto}

.shape-b-p4-root .p5-batch{margin-bottom:18px}
.shape-b-p4-root .p5-batch:last-child{margin-bottom:0}
.shape-b-p4-root .p5-batch-heading{font:600 var(--fs-body) var(--font-ui);color:var(--text)}
.shape-b-p4-root .p5-batch-meta{font:400 var(--fs-meta) var(--font-ui);color:var(--text-secondary);margin-bottom:8px}
.shape-b-p4-root .p5-signal-summary{font-size:var(--fs-small);line-height:1.5;color:var(--text);margin-bottom:8px}
.shape-b-p4-root .p5-signal{padding:9px 10px;background:var(--ivory-brand);border-radius:6px;margin-bottom:6px}
.shape-b-p4-root .p5-signal-head{display:flex;align-items:center;gap:8px;margin-bottom:3px}
.shape-b-p4-root .p5-signal-label{font:600 var(--fs-small) var(--font-ui);color:var(--text)}
.shape-b-p4-root .p5-intel-tag{font:600 10px var(--font-ui);text-transform:uppercase;letter-spacing:.04em;
  padding:2px 6px;border-radius:4px}
.shape-b-p4-root .p5-intel-tag.verified{background:var(--surface);color:var(--state-success);border:1px solid var(--state-success)}
.shape-b-p4-root .p5-intel-tag.transitioned{background:var(--state-pending-tint);color:var(--state-mutation-ink)}
.shape-b-p4-root .p5-intel-tag.null-signal{background:var(--field);color:var(--text-secondary);border:1px solid var(--border-strong)}
.shape-b-p4-root .p5-signal-hook{font-size:var(--fs-small);line-height:1.5;color:var(--text);font-style:italic;margin-bottom:3px}
.shape-b-p4-root .p5-signal-source{font-size:var(--fs-meta);color:var(--accent-ink)}

.shape-b-p4-root .p5-coverage{display:inline-block;font:600 10px var(--font-ui);text-transform:uppercase;
  letter-spacing:.04em;padding:2px 7px;border-radius:4px;margin-bottom:10px}
.shape-b-p4-root .p5-coverage.success{background:var(--surface);color:var(--state-success);border:1px solid var(--state-success)}
.shape-b-p4-root .p5-coverage.thin{background:var(--state-pending-tint);color:var(--state-mutation-ink)}
.shape-b-p4-root .p5-coverage.no-findings{background:var(--field);color:var(--text-secondary);border:1px solid var(--border-strong)}
.shape-b-p4-root .p5-statement{padding:10px 12px;border:1px solid var(--border-soft);border-radius:6px;margin-bottom:8px}
.shape-b-p4-root .p5-statement-text{font-size:var(--fs-small);line-height:1.5;color:var(--text)}
.shape-b-p4-root .p5-statement-cites{font-size:var(--fs-meta);color:var(--text-secondary);margin-top:4px}
.shape-b-p4-root .p5-failure{padding:12px;background:var(--field);border:1px solid var(--field-error);border-radius:6px;
  color:var(--field-error);font-size:var(--fs-small);line-height:1.5}
.shape-b-p4-root .p5-failure b{text-transform:uppercase;letter-spacing:.03em;font-size:var(--fs-meta)}
.shape-b-p4-root .p5-empty{padding:12px;border:1px dashed var(--border-strong);border-radius:6px;
  color:var(--text-secondary);font-size:var(--fs-small);line-height:1.5;font-style:italic}
</style>
