/* KSIs and claims (#ksis, #claims, ksis.js): the app's tokens, so light and dark follow the theme. A status is a word and
   a coloured edge (never colour alone); tables scroll inside their own box on a phone (320 px reflow). */
.ks-page { max-width: 1100px; display: grid; gap: 18px; }
.ks-page > * { min-width: 0; }
.ks-page h2 { font-size: 18px; margin: 0 0 6px; }
.ks-scroll { position: relative; overflow-x: auto; max-width: 100%; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.ks-scroll:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
table.ks-table { border-collapse: collapse; width: 100%; font-size: 14px; }
table.ks-table th, table.ks-table td { text-align: left; padding: 6px 10px; border-bottom: 1px solid var(--line); overflow-wrap: break-word; vertical-align: top; }
.ks-st { display: inline-block; padding: 1px 8px; border-radius: 10px; border: 1px solid var(--line); border-left-width: 5px; font-size: 12.5px; font-weight: 600; color: var(--ink); background: var(--surface); white-space: nowrap; }
.ks-st-proven { border-left-color: var(--st-done); }
.ks-st-proven_with_limits { border-left-color: var(--accent); background: var(--accent-soft); }
.ks-st-failed { border-left-color: var(--st-blocked); }
.ks-st-not_proven { border-left-color: var(--st-not_started); }
.ks-limits { margin: 4px 0 0; padding-left: 18px; }
.ks-page p, .ks-page li { overflow-wrap: anywhere; }
/* in a cell, a word breaks only when it is longer than the column (an ARN): "anywhere" shrinks a column's minimum to one letter */
table.ks-table li { overflow-wrap: break-word; }
.ks-id { white-space: nowrap; } /* a KSI or claim ID never breaks at its hyphens */
.ks-rule { border: 1px solid var(--line); border-radius: 8px; padding: 10px 14px; background: var(--surface); }
.ks-rule > summary { cursor: pointer; font-size: 15px; font-weight: 600; display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; }
.ks-rule > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.ks-rule[open] > summary { margin-bottom: 8px; }
.ks-rcounts { font-weight: 400; font-size: 13.5px; }
.ks-rule + .ks-rule, .ks-folds + .ks-rule { margin-top: 8px; }
.ks-folds { margin: 0 0 8px; display: flex; gap: 8px; }
.ks-evidence { border: 1px solid var(--line); border-radius: 8px; padding: 10px 14px; min-width: 0; max-width: 100%; }
.ks-link { font: inherit; background: none; border: 0; padding: 0; color: var(--accent); cursor: pointer; text-decoration: underline; text-align: left; }
.ks-st-other { border-left-color: var(--support); }
