/* Musnad module (M12–M15) — builds on the design system tokens in maqraa.css.
   Logical properties only so every layout works RTL and LTR. */

.musnad-nav { margin-block: 1.25rem 0; }

/* Workbench: checklist and registry candidates beside the document viewer */
.workbench { display: grid; gap: 1.25rem; grid-template-columns: 1fr; align-items: start; }
@media (min-width: 1100px) {
  .workbench { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
  .workbench .sticky { position: sticky; inset-block-start: 1rem; }
}
.doc-viewer { display: grid; gap: .75rem; }
.doc-viewer iframe, .doc-viewer .doc-image {
  inline-size: 100%; block-size: min(78vh, 900px); border: 1px solid var(--border); border-radius: var(--radius-sm);
  background: var(--surface-2);
}
.doc-viewer .doc-image { object-fit: contain; block-size: auto; max-block-size: 78vh; }
.doc-tabs { display: flex; flex-wrap: wrap; gap: .35rem; }
.doc-tabs a { padding: .3rem .7rem; border: 1px solid var(--border); border-radius: 999px; text-decoration: none; font-size: .85rem; color: var(--text-muted); }
.doc-tabs a[aria-current="true"] { background: var(--primary); color: var(--primary-contrast); border-color: var(--primary); }

/* Link navigator in the verifier workspace */
.link-nav { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.link-nav a { display: flex; gap: .6rem; align-items: center; justify-content: space-between; padding: .5rem .75rem;
  border: 1px solid var(--border); border-radius: var(--radius-sm); text-decoration: none; color: var(--text); background: var(--surface); }
.link-nav a:hover { border-color: var(--gold-500); }
.link-nav a[aria-current="true"] { border-color: var(--primary); box-shadow: inset 4px 0 0 var(--primary); }
[dir="rtl"] .link-nav a[aria-current="true"] { box-shadow: inset -4px 0 0 var(--primary); }
.link-nav .pos { font-weight: 700; color: var(--accent); min-inline-size: 1.6rem; }
.link-nav .names { flex: 1; font-size: .92rem; }

/* Person pair: link student / sheikh as two cards with an arrow between */
.link-pair { display: grid; gap: .6rem; grid-template-columns: 1fr auto 1fr; align-items: center; }
.link-pair .arrow { color: var(--accent); font-size: 1.4rem; }
.person-mini { border: 1px solid var(--border); border-radius: var(--radius-sm); padding: .6rem .8rem; background: var(--bg-elevated); }
.person-mini strong { font-family: var(--font-display); font-size: 1.08rem; display: block; }

/* Side-by-side comparison (duplicates, candidates) */
.compare { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.compare .card { margin: 0; }
.compare-table { inline-size: 100%; border-collapse: collapse; font-size: .92rem; }
.compare-table th, .compare-table td { padding: .45rem .6rem; border-block-end: 1px solid var(--border); text-align: start; vertical-align: top; }
.compare-table th { color: var(--text-muted); font-weight: 600; inline-size: 30%; }
.compare-table td.same { background: color-mix(in srgb, var(--success-soft) 70%, transparent); }
.score-meter { display: flex; align-items: center; gap: .5rem; }
.score-meter .progress { flex: 1; min-inline-size: 80px; }

/* Checklist */
.checklist { display: grid; gap: .45rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); }
.checklist label { display: flex; gap: .5rem; align-items: center; padding: .5rem .7rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--bg-elevated); font-weight: 500; }
.result-choice > div, .result-choice ul { display: grid; gap: .5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); list-style: none; padding: 0; margin: 0; }
.result-choice label { display: flex; gap: .5rem; align-items: center; border: 2px solid var(--border); border-radius: 12px; padding: .65rem .8rem; cursor: pointer; background: var(--surface); font-weight: 600; }
.result-choice label:has(input[value="documented"]:checked) { border-color: var(--success); background: var(--success-soft); }
.result-choice label:has(input[value="attested"]:checked) { border-color: var(--info); background: var(--info-soft); }
.result-choice label:has(input[value="unverified"]:checked) { border-color: var(--warning); background: var(--warning-soft); }

/* Neutral notices (FR-1211) */
.neutral-note { border-inline-start: 4px solid var(--accent); background: var(--accent-soft); color: var(--text); border-radius: var(--radius-sm); padding: .8rem 1rem; }

/* Messages thread */
.thread { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.thread li { padding: .7rem .9rem; border-radius: 12px; background: var(--surface-2); max-inline-size: 85%; }
.thread li.staff { background: var(--info-soft); }
.thread li.mine { margin-inline-start: auto; background: var(--green-50); }
.thread .meta { font-size: .78rem; color: var(--text-muted); display: block; margin-block-end: .2rem; }

/* Transition action panels */
.actions-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.action-card { border: 1px solid var(--border); border-radius: var(--radius); padding: 1rem; background: var(--bg-elevated); }
.action-card h3 { font-size: 1.05rem; margin-block-end: .5rem; }

/* Report page */
.report-head { display: grid; gap: 1.25rem; grid-template-columns: 1fr; align-items: center; }
@media (min-width: 760px) { .report-head { grid-template-columns: 1fr auto; } }
.report-head .qr svg { inline-size: 150px; block-size: 150px; display: block; }
.hash { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .78rem; word-break: break-all; }
.version-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.version-list li { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; justify-content: space-between; padding: .55rem .8rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface); }
.version-list li.current { border-color: var(--primary); }

/* Chain builder */
.chain-builder { counter-reset: link; list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.chain-builder li { display: grid; gap: .5rem; grid-template-columns: auto 1fr auto; align-items: center; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface); padding: .6rem .8rem; }
.chain-builder .pos { inline-size: 2rem; block-size: 2rem; border-radius: 50%; display: grid; place-items: center; background: var(--accent-soft); color: var(--gold-700); font-weight: 700; }
.chain-builder .terminal-row { background: color-mix(in srgb, var(--green-50) 80%, transparent); }
.chain-builder form { display: inline; }
.icon-action { inline-size: 34px; block-size: 34px; display: inline-grid; place-items: center; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); color: var(--text-muted); cursor: pointer; font-size: 1rem; }
.icon-action:hover { border-color: var(--gold-500); color: var(--primary); }
.pick-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .4rem; max-block-size: 360px; overflow-y: auto; }
.pick-list li a { display: flex; justify-content: space-between; gap: .5rem; padding: .5rem .75rem; border: 1px solid var(--border); border-radius: var(--radius-sm); text-decoration: none; color: var(--text); background: var(--surface); }
.pick-list li a:hover, .pick-list li a[aria-current="true"] { border-color: var(--primary); background: var(--green-50); }

.wizard { margin-block-end: 1.25rem; }
.wizard li a { color: inherit; text-decoration: none; }
.demo-ribbon { display: inline-block; font-size: .75rem; font-weight: 700; letter-spacing: .02em; padding: .1rem .5rem; border-radius: 6px; background: var(--warning-soft); color: var(--warning); border: 1px dashed var(--warning); }
.flag-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
details.inline-form > summary { cursor: pointer; color: var(--link); font-weight: 600; }
details.inline-form[open] > summary { margin-block-end: .6rem; }
.overflow-wrap { overflow-wrap: anywhere; }
