/* Requirement library, IDS editor, Capitolato, bSDD. */
.specl { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--s-4); align-items: start; padding: var(--s-3) var(--pad-card); border-bottom: var(--rule); text-decoration: none; color: inherit; }
.specl:hover { background: var(--npb-soft); }
.specl .t { font-weight: 600; }
.specl .d { font-size: var(--t-13); color: var(--ink-2); margin-top: 2px; }
.fk { font: 600 var(--t-11)/1 var(--font-mono); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--npb-ink); }
.editor { display: grid; grid-template-columns: 260px minmax(0, 1fr) 400px; gap: var(--s-4); align-items: start; }
.editor > * { min-width: 0; }
.elist a { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--s-2); padding: 8px var(--s-3); border-bottom: var(--rule); text-decoration: none; color: inherit; font-size: var(--t-14); }
.elist a:hover { background: var(--npb-soft); }
.elist a[aria-current="true"] { background: var(--ink); color: var(--on-primary); }
.elist a[aria-current="true"] .code { color: var(--on-drench-muted); }
.frow { display: grid; grid-template-columns: 132px minmax(0, 1fr) auto; gap: var(--s-3); align-items: start; padding: var(--s-3); border: var(--rule-strong); background: var(--surface); }
.frow + .frow { border-top: 0; }
.frow .ff { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: var(--s-2); }
.frow .ff .input, .frow .ff .select { height: var(--h-ctl-sm); font-size: var(--t-13); }
.frow .ff label { font-size: var(--t-11); font-weight: 600; color: var(--muted); display: grid; gap: 3px; }
.facet-h { display: flex; justify-content: space-between; align-items: center; margin: var(--s-4) 0 var(--s-2); }
.xml { margin: 0; padding: var(--s-3); max-height: 360px; overflow: auto; background: var(--surface-2); border-top: var(--rule); font: 400 11.5px/1.55 var(--font-mono); white-space: pre; color: var(--ink-2); }
.xml .tg { color: var(--npb-ink); } .xml .av { color: var(--ink); font-weight: 600; }
.locked { pointer-events: none; opacity: 0.6; }
.clause { display: grid; grid-template-columns: 64px minmax(0, 1fr) 220px; gap: var(--s-4); align-items: start; padding: var(--s-3) var(--pad-card); border-bottom: var(--rule); }
.clause .num { font: 700 var(--t-18)/1.2 var(--font-display); }
.clause .it { font-weight: 500; }
.clause .en { font-size: var(--t-13); color: var(--muted); margin-top: 2px; }
.clause.unmapped { background: var(--danger-soft); }
.matrix { border-collapse: collapse; font-size: var(--t-12); }
.matrix th, .matrix td { border: var(--rule); width: 30px; height: 26px; text-align: center; padding: 0; }
.matrix th { font: 600 var(--t-11)/1 var(--font-mono); background: var(--surface-2); }
.matrix td.r { text-align: left; padding: 0 var(--s-2); width: auto; white-space: nowrap; font-family: var(--font-mono); }
.matrix td.on { background: var(--ink); }
.matrix td.gap { background: var(--danger-soft); }
.bres { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--s-3); align-items: center; padding: var(--s-3) var(--pad-card); border-bottom: var(--rule); cursor: pointer; }
.bres:hover { background: var(--npb-soft); }
.bres[aria-selected="true"] { background: var(--npb-soft); box-shadow: inset 0 0 0 1px var(--npb-ink); }
@media (max-width: 1200px) { .editor { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .clause { grid-template-columns: 1fr; } .frow { grid-template-columns: 1fr; } .specl { grid-template-columns: auto minmax(0, 1fr); } .specl .ratio { grid-column: 2; } }
.frow > div:first-child { min-width: 0; overflow-wrap: anywhere; }
