/* Integrity status chip and its dialog. The chip is a small square status button in the paper rows of
   exploration, library and citation map. It is operable, so it keeps the 34px control height and the
   --control-line border; its risk tint uses the shared state tokens in both themes.
   button.ex-integrity-badge outranks the generic .paper-explorer button rule loaded before this sheet.
   The dialog follows the other dialogs (.feature-modal, #scope-modal): --line-strong border and --shadow-pop. */
button.ex-integrity-badge { display: block; max-width: 100%; min-height: 34px; margin: 8px 0; padding: 6px 10px; border: 1px solid var(--control-line); border-radius: var(--radius); background: var(--surface-2); color: var(--ink-2); font-size: 12px; font-weight: 500; line-height: 1.45; text-align: left; cursor: pointer; transition: border-color var(--t-fast) var(--ease-out), background-color var(--t-fast) var(--ease-out), transform var(--t-fast) var(--ease-out); }
button.ex-integrity-badge:hover { border-color: var(--line-hover); }
button.ex-integrity-badge:active { transform: scale(.97); }
button.ex-integrity-badge:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
button.ex-integrity-badge[data-risk=alert] { border-color: var(--red-line); background: var(--red-soft); color: var(--red); }
button.ex-integrity-badge[data-risk=caution] { border-color: var(--amber-line); background: var(--amber-soft); color: var(--amber-ink); }
button.ex-integrity-badge[data-risk=no_major_risks] { border-color: var(--green-line); background: var(--green-wash); color: var(--green-strong); }
button.ex-integrity-badge[data-risk]:hover { border-color: currentColor; }
.ex-integrity-svg { cursor: pointer; }
.ex-integrity-svg:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }

.ex-integrity-dialog { max-width: min(640px, calc(100vw - 32px)); max-height: 85vh; overflow: auto; padding: 24px; border: 1px solid var(--line-strong); border-radius: var(--radius-frame); background: var(--surface); color: var(--ink); box-shadow: var(--shadow-pop); }
.ex-integrity-dialog::backdrop { background: var(--scrim); }
.ex-integrity-dialog h3 { margin: 0 0 12px; font-family: var(--font-display); font-size: 18px; font-weight: 600; line-height: 1.3; color: var(--ink); }
.ex-integrity-dialog p, .ex-integrity-dialog li { font-size: 13.5px; line-height: 1.6; color: var(--ink-2); overflow-wrap: anywhere; }
.ex-integrity-dialog ul { padding-left: 20px; }
.ex-integrity-dialog details { margin: 12px 0; }
.ex-integrity-dialog summary { cursor: pointer; font-size: 13.5px; font-weight: 600; color: var(--ink-2); }
.ex-integrity-dialog a { color: var(--green-strong); }
.ex-integrity-dialog label.check { margin: 16px 0; }
.ex-integrity-dialog button { margin: 8px 8px 0 0; }
.ex-integrity-dialog [data-integrity-error] { color: var(--red); }
@media (pointer: coarse) { button.ex-integrity-badge { min-height: 44px; } }
