/* Sovereign, batch 2: evidence, reporting and exchange, and the files that
   go out and come in.

   The screens of Send a file securely (ssn-), Lock a file for several
   people and Unlock a shared file (slk-), Clean files before sharing (scl-)
   and Check a file before opening it (sck-); and of the evidence locker
   (sek-), Test exported settings (sim-), the questionnaire answerer
   (sqn-), the trust page (stc-), the
   board report (sbd-), the compliance calendar (scc-) and team exchange
   (sxc-), with the pieces they share from the report kit (srk-) and the
   collector recipes (sco-).

   Linked once, from sovereign-suite.html, after sovereign-app.css and
   before pro.css; the Console does not load it. Every rule here names a
   class of this batch's own services, which each carry a prefix of their
   own, or an id on one of their screens; the shell's classes (sv-, svs-,
   svt-), and anything services of two batches both wear, are in
   sovereign-app.css. How the batches divide the Suite: the head of
   pro-code/sovereign-services.js. */

/* ------------------------------------------ Lock a file for several people */

.slk-names { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; margin-top: 14px; }
.slk-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.slk-pass { margin-top: 14px; }
.slk-pass[hidden] { display: none; }
.slk-total { justify-content: flex-end; }
.slk-pp { margin-top: 14px; }

/* ---------------------------------------------- Clean files before sharing */

.scl-drop { margin-bottom: 18px; }
.scl-table[hidden] { display: none; }
.scl-table { border: 1px solid var(--sv-line); border-radius: var(--radius-lg); background: var(--paper-raised); overflow: hidden; }
.scl-head, .scl-row { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.6fr) auto; gap: 16px; align-items: start; padding: 12px 14px; }
.scl-head { padding: 8px 14px; font-size: var(--text-2xs); font-weight: 650; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-faint); border-bottom: 1px solid var(--sv-line); background: var(--paper); }
.scl-row + .scl-row { border-top: 1px solid var(--sv-line); }
.scl-name { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.scl-name .svs-hint { margin: 0 0 0 24px; font-size: var(--text-2xs); }
.scl-found ul { margin: 0; padding: 0; list-style: none; font-size: var(--text-2xs); line-height: 1.5; color: var(--ink-soft); }
.scl-found li b { color: var(--ink); font-weight: 600; }
.scl-found li.scl-serious b { color: var(--danger); }
.scl-found li.scl-none { color: var(--ink-faint); }
.scl-state { display: flex; align-items: center; gap: 4px; }
.scl-state { flex-wrap: wrap; justify-content: flex-end; }
.scl-state .svs-tag { white-space: normal; max-width: 220px; line-height: 1.35; }
#clActions[hidden] { display: none; }

/* ------------------------------------------ Check a file before opening it */

/* Check a file: the verdict */
.sck-verdict { padding: 18px 20px; border-radius: var(--radius-lg); border: 1px solid var(--sv-line); background: var(--paper-raised); }
.sck-verdict h2 { margin: 4px 0 6px; font-size: var(--text-lg); letter-spacing: -0.01em; }
.sck-verdict p { margin: 0; color: var(--ink-soft); line-height: 1.55; }
.sck-level { display: inline-block; font-size: var(--text-2xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 3px 8px; border-radius: var(--radius-pill); }
.sck-ok .sck-level { background: var(--good-soft); color: var(--ink); }
.sck-note .sck-level { background: var(--accent-soft); color: var(--accent-strong); }
.sck-care { border-color: var(--warn); }
.sck-care .sck-level { background: var(--warn-soft); color: var(--warn); }
.sck-stop { border-color: var(--danger); background: var(--danger-soft); }
.sck-stop .sck-level { background: var(--danger); color: var(--on-danger); }
.sck-hash { font-size: var(--text-2xs); color: var(--ink-soft); }
.sck-list { list-style: none; margin: 0; padding: 0; border: 1px solid var(--sv-line); border-radius: var(--radius-lg); background: var(--paper-raised); }
.sck-f { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 12px; padding: 12px 14px; }
.sck-f + .sck-f { border-top: 1px solid var(--sv-line); }
.sck-f b { font-size: var(--text-xs); }
.sck-f p { margin: 3px 0 0; font-size: var(--text-2xs); color: var(--ink-soft); line-height: 1.5; overflow-wrap: anywhere; }
.sck-tool { align-self: start; font-family: var(--font-mono); font-size: var(--text-2xs); padding: 3px 6px; border-radius: var(--radius-sm); background: var(--paper-inset); border: 1px solid var(--sv-line); color: var(--ink-soft); text-align: center; }
.sck-f2 .sck-tool { border-color: var(--warn); color: var(--warn); }
.sck-f3 .sck-tool { border-color: var(--danger); color: var(--danger); }
.sck-f3 b { color: var(--danger); }
.sck-what { margin: 0 0 14px; padding-left: 16px; font-size: var(--text-2xs); line-height: 1.55; color: var(--ink-soft); }
.sck-what li { margin-bottom: 6px; }
.sck-what b { font-family: var(--font-mono); font-size: var(--text-2xs); color: var(--ink); }

/* -------------------------------------------------------------- On a phone */

@media (max-width: 640px) {
  .slk-three { grid-template-columns: 1fr; }
  .scl-head { display: none; }
  .scl-row { grid-template-columns: 1fr; gap: 8px; }
  .sck-f { grid-template-columns: 1fr; gap: 6px; }
  .sck-tool { justify-self: start; }
}

/* ---------------------------------------------------- Send a file securely */

.ssn-words { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 14px; }
.ssn-words[hidden], #snOwnBox[hidden] { display: none; }
#snOwnBox { margin-top: 14px; }
.ssn-phrase { display: inline-block; padding: 9px 12px; border: 1px solid var(--sv-line); border-radius: var(--sv-r); background: var(--paper-inset); font-family: var(--font-mono); font-size: var(--text-sm); line-height: 1.5; color: var(--ink); overflow-wrap: anywhere; }
.ssn-note { margin-top: 18px; max-width: 452px; }
.ssn-pass { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-top: 18px; }
.ssn-pass .svs-label { flex-basis: 100%; margin: 0; }
.ssn-pass .sv-btn svg { width: 13px; height: 13px; }
.ssn-steps { margin: 0; padding-left: 20px; color: var(--ink-soft); font-size: var(--text-xs); line-height: 1.6; }
.ssn-steps li { margin-bottom: 6px; }
.ssn-steps b { color: var(--ink); }
.ssn-keys { margin-top: 14px; }
.ssn-keys[hidden], #snPassBox[hidden] { display: none; }
.ssn-keys .svs-field { margin-top: 12px; }
.ssn-book { margin: 6px 0 4px; }
.ssn-book .svw-opt { margin-top: 6px; }
.ssn-book code { font-family: var(--font-mono); font-size: var(--text-2xs); color: var(--ink-faint); }
.ssn-sub { margin-top: 14px; }

/* ------------------------------------------------ Shared by the reports */

/* The report kit's fields: signing with the organisation's key, and who
   the reports are from. */
.srk-sign { margin-top: 16px; }
.srk-sign .svw-opt b { color: var(--ink); }
.srk-sign-fields { margin: 8px 0 0 26px; }
.srk-sign-fields[hidden] { display: none; }
.srk-sign-fields .svs-field { margin-top: 10px; }
.srk-profile { margin-bottom: 14px; }

/* Collector recipes: a command to run, what it reads, where it goes. */
.sco-tools { margin-bottom: 14px; }
.sco-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.sco-item { border: 1px solid var(--sv-line); border-radius: var(--radius-lg); background: var(--paper-raised); padding: 14px 16px; min-width: 0; }
.sco-top { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; }
.sco-top b { font-size: var(--text-sm); }
.sco-tool { font-family: var(--font-mono); font-size: var(--text-2xs); padding: 2px 6px; border-radius: var(--radius-sm); background: var(--paper-inset); border: 1px solid var(--sv-line); color: var(--ink-soft); }
.sco-reads { margin: 6px 0 10px; font-size: var(--text-xs); line-height: 1.5; color: var(--ink-soft); }
.sco-cmd { margin: 0; padding: 10px 12px; border-radius: var(--sv-r); background: var(--paper-inset); border: 1px solid var(--sv-line); font-family: var(--font-mono); font-size: var(--text-2xs); line-height: 1.55; color: var(--ink); white-space: pre-wrap; overflow-wrap: anywhere; }
.sco-cmd:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
.sco-facts { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 3px 12px; margin: 10px 0 0; font-size: var(--text-2xs); }
.sco-facts dt { color: var(--ink-faint); }
.sco-facts dd { margin: 0; color: var(--ink-soft); overflow-wrap: anywhere; }
.sco-facts code, .sco-item .svs-hint code { font-family: var(--font-mono); font-size: var(--text-2xs); }
.sco-acts { margin-top: 10px; }
.sco-foot { margin-top: 14px; }

/* --------------------------------------------------------- Evidence locker */

/* Tabs across the screen, as a strip: the one open is underlined. */
.sek-tabs, .sqn-tabs { display: flex; flex-wrap: wrap; gap: 2px; border-bottom: 1px solid var(--sv-line); margin: 0 0 18px; }
.sek-tab, .sqn-tab { appearance: none; background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; padding: 10px 12px; min-height: 40px; font: inherit; font-size: var(--text-xs); font-weight: 600; color: var(--ink-soft); cursor: pointer; }
.sek-tab:hover, .sqn-tab:hover { color: var(--ink); }
.sek-tab[aria-selected="true"], .sqn-tab[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--ink); }
.sek-tab:focus-visible, .sqn-tab:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
.sek-panel[hidden] { display: none; }

.sek-sample { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 10px 14px; margin-bottom: 14px; border: 1px solid var(--warn); border-radius: var(--radius-md); background: var(--warn-soft); font-size: var(--text-xs); }
.sek-sample p { margin: 0; }
.sek-sample[hidden] { display: none; }
.sek-bar { align-items: center; }
.sek-find { flex: 1 1 200px; max-width: 320px; }
.sek-control { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 12px 0 0; font-size: var(--text-xs); }
.sek-control[hidden] { display: none; }

.sek-list, .sek-snaps, .sek-rqs { list-style: none; margin: 16px 0 0; padding: 0; }
.sek-item { display: grid; grid-template-columns: minmax(0, 1fr) 190px; gap: 10px 16px; align-items: start; padding: 14px 0; border-bottom: 1px solid var(--sv-line); }
.sek-item:first-child { border-top: 1px solid var(--sv-line); }
.sek-what { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.sek-what b { font-size: var(--text-sm); }
.sek-what p { margin: 2px 0 0; font-size: var(--text-2xs); line-height: 1.5; color: var(--ink-soft); }
.sek-file { display: inline-flex; align-items: center; gap: 6px; font-size: var(--text-2xs); color: var(--ink-soft); min-width: 0; }
.sek-file svg { width: 13px; height: 13px; flex: none; }
.sek-file span { overflow-wrap: anywhere; }
.sek-nofile { color: var(--ink-faint); }
.sek-sha { font-family: var(--font-mono); font-size: var(--text-2xs); color: var(--ink-faint); overflow-wrap: anywhere; word-break: break-all; }
.sek-ctls { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.sek-ctl { appearance: none; font: inherit; font-family: var(--font-mono); font-size: var(--text-2xs); padding: 2px 7px; min-height: 24px; border-radius: var(--radius-pill); border: 1px solid var(--sv-line); background: var(--paper-inset); color: var(--ink); cursor: pointer; }
.sek-ctl:hover { border-color: var(--rule-strong); }
.sek-ctl:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
.sek-noctl { font-size: var(--text-2xs); color: var(--warn); }
.sek-when { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; font-size: var(--text-2xs); color: var(--ink-soft); }
.sek-when .svs-tag { white-space: normal; }
.sek-expired .sek-what b { color: var(--danger); }
.sek-due .sek-when .svs-tag { background: var(--warn-soft); color: var(--ink); }
.sek-replaced .sek-what, .sek-replaced .sek-when { opacity: .75; }
.sek-acts { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; }
.sek-acts .sv-btn svg { width: 13px; height: 13px; }
.sek-nothing { padding: 16px 0; color: var(--ink-faint); font-size: var(--text-xs); }
.sek-empty { margin-top: 18px; padding: 18px 20px; border: 1px solid var(--sv-line); border-radius: var(--radius-lg); background: var(--paper-raised); }
.sek-empty p { margin: 0 0 12px; font-size: var(--text-xs); line-height: 1.55; color: var(--ink-soft); }
.sek-empty[hidden], .sek-form[hidden], .sek-map[hidden], .sek-compare[hidden] { display: none; }

.sek-form { margin-top: 18px; padding: 18px 20px; border: 1px solid var(--rule-strong); border-radius: var(--radius-lg); background: var(--paper-raised); }
.sek-form h2 { margin: 0 0 12px; font-size: var(--text-md); }
.sek-drop { margin: 4px 0 8px; }
.sek-dropped { margin: 0 0 8px; font-size: var(--text-2xs); color: var(--ink-soft); overflow-wrap: anywhere; }
.sek-dropped code { font-size: var(--text-2xs); word-break: break-all; }
.sek-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 14px; margin: 14px 0; }
.sek-wide { grid-column: 1 / -1; }

.sek-map { margin: 16px 0; padding: 16px 18px; border: 1px solid var(--rule-strong); border-radius: var(--radius-lg); background: var(--paper-raised); }
.sek-map h3 { margin: 0 0 12px; font-size: var(--text-sm); }
.sek-mapcols { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px 14px; margin: 12px 0; }
.sek-rqsum p { margin: 16px 0 0; font-size: var(--text-xs); color: var(--ink-soft); }
.sek-rq { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; margin-bottom: 10px; border: 1px solid var(--sv-line); border-radius: var(--radius-lg); background: var(--paper-raised); }
.sek-rqhead { display: flex; gap: 8px; align-items: center; }
.sek-ref { max-width: 110px; font-family: var(--font-mono); }
.sek-status { max-width: 220px; margin-left: auto; }
.sek-rqfields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.sek-rqev { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.sek-rqev .svs-label { flex-basis: 100%; margin: 0; }
.sek-chip { display: inline-flex; align-items: center; gap: 4px; padding: 2px 4px 2px 10px; border-radius: var(--radius-pill); border: 1px solid var(--sv-line); background: var(--paper); font-size: var(--text-2xs); }
.sek-chip button { appearance: none; border: 0; background: none; padding: 4px; border-radius: 50%; color: var(--ink-soft); cursor: pointer; display: grid; place-items: center; min-width: 24px; min-height: 24px; }
.sek-chip button svg { width: 12px; height: 12px; }
.sek-chip button:hover { background: var(--sv-hover); color: var(--ink); }
.sek-chip button:focus-visible { outline: 2px solid var(--focus); }
.sek-link { max-width: 260px; }
.sek-sugg { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: var(--text-2xs); color: var(--ink-faint); }

.sek-snapnew { margin-bottom: 4px; }
.sek-snap { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 10px 16px; padding: 12px 0; border-bottom: 1px solid var(--sv-line); }
.sek-snap > div:first-child { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1 1 320px; }
.sek-snap span { font-size: var(--text-2xs); color: var(--ink-soft); }
.sek-compare { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--sv-line); }
.sek-compare h3 { margin: 0 0 10px; font-size: var(--text-sm); }
.sek-diff { border: 1px solid var(--sv-line); border-radius: var(--radius-md); padding: 10px 14px; margin-top: 8px; background: var(--paper-raised); font-size: var(--text-xs); }
.sek-diff summary { cursor: pointer; color: var(--ink-soft); }
.sek-diff summary b { color: var(--ink); }
.sek-diff ul { margin: 8px 0 0; padding-left: 18px; line-height: 1.55; }
.sek-d-added::marker { color: var(--good); }
.sek-d-removed::marker { color: var(--danger); }
.sek-d-changed::marker, .sek-d-setting::marker { color: var(--warn); }

.sek-period { margin-top: 12px; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); }
.sek-snappick { margin-top: 12px; }
.sek-missing { margin-top: 14px; padding: 12px 14px; border: 1px solid var(--sv-line); border-radius: var(--radius-md); background: var(--paper-raised); font-size: var(--text-xs); }
.sek-missing p { margin: 0 0 8px; color: var(--ink-soft); }
.sek-missing ul { margin: 0 0 10px; padding-left: 18px; }
.sek-missing li { overflow-wrap: anywhere; }
.sek-got svg { width: 13px; height: 13px; color: var(--good); vertical-align: -2px; margin-right: 4px; }
.sek-sums { margin: 12px 0; padding: 10px 12px; max-height: 220px; overflow: auto; border: 1px solid var(--sv-line); border-radius: var(--sv-r); background: var(--paper-inset); font-family: var(--font-mono); font-size: var(--text-2xs); line-height: 1.5; white-space: pre; }
.sek-seal { margin-top: 26px; }
.sek-pass { font-family: var(--font-mono); flex: 1 1 260px; width: auto; }

@media (max-width: 640px) {
  .sek-item { grid-template-columns: 1fr; gap: 10px; }
  .sek-fields, .sek-rqfields, .sek-period { grid-template-columns: 1fr; }
  .sek-find { max-width: none; }
  .sek-status { max-width: none; }
  .sek-rqhead { flex-wrap: wrap; }
  .sek-tab, .sqn-tab { padding: 10px 9px; }
}

/* ------------------------------------------- Answer a security questionnaire */

.sqn-panel[hidden], .sqn-map[hidden] { display: none; }
.sqn-who { margin-bottom: 16px; }
.sqn-map { margin: 16px 0; padding: 16px 18px; border: 1px solid var(--rule-strong); border-radius: var(--radius-lg); background: var(--paper-raised); }
.sqn-map h3 { margin: 0 0 12px; font-size: var(--text-sm); }
.sqn-mapcols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 14px; margin: 12px 0; }
.sqn-bar { align-items: center; }
.sqn-list { list-style: none; margin: 16px 0 0; padding: 0; }
.sqn-q { display: flex; flex-direction: column; gap: 10px; padding: 16px 18px; margin-bottom: 12px; border: 1px solid var(--sv-line); border-left: 3px solid var(--rule-strong); border-radius: var(--radius-lg); background: var(--paper-raised); }
.sqn-q.sqn-done { border-left-color: var(--good); }
.sqn-text { margin: 0; font-size: var(--text-sm); font-weight: 600; line-height: 1.5; }
.sqn-n { display: inline-block; margin-right: 8px; font-family: var(--font-mono); font-size: var(--text-2xs); font-weight: 500; color: var(--ink-faint); }
.sqn-match { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: var(--text-2xs); color: var(--ink-soft); }
.sqn-match b { color: var(--ink); font-weight: 600; }
.sqn-match .sv-btn { margin-left: auto; }
.sqn-nomatch { color: var(--warn); }
.sqn-starter { background: var(--warn-soft); color: var(--ink); }
.sqn-alts[hidden] { display: none; }
.sqn-alts { padding: 10px 12px; border-radius: var(--radius-md); background: var(--paper-inset); border: 1px solid var(--sv-line); font-size: var(--text-2xs); }
.sqn-alts ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.sqn-alts .svs-hint { margin: 8px 0 0; }
.sqn-ans { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 12px; align-items: start; }
.sqn-long textarea { min-height: 76px; }
.sqn-cite { margin: 0; font-size: var(--text-2xs); line-height: 1.5; color: var(--ink-faint); }
.sqn-acts { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; }
.sqn-check { margin: 0; }
.sqn-none { padding: 16px 0; color: var(--ink-faint); font-size: var(--text-xs); list-style: none; }
.sqn-dom { flex: 0 1 220px; }
.sqn-find { flex: 1 1 200px; max-width: 320px; }
.sqn-lib h3 { margin: 22px 0 8px; font-size: var(--text-xs); font-weight: 650; letter-spacing: .05em; text-transform: uppercase; color: var(--ink-faint); }
.sqn-entry { border: 1px solid var(--sv-line); border-radius: var(--radius-md); background: var(--paper-raised); margin-bottom: 8px; }
.sqn-entry summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 14px; cursor: pointer; font-size: var(--text-xs); min-height: 44px; box-sizing: border-box; }
.sqn-entry summary:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; border-radius: var(--radius-md); }
.sqn-entry[open] summary { border-bottom: 1px solid var(--sv-line); }
.sqn-entry .svs-actions { padding: 0 14px 12px; align-items: center; }
.sqn-efields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; padding: 12px 14px; }
.sqn-wide { grid-column: 1 / -1; }

/* ---------------------------------------------------------- Publish a trust page */

.stc-gap { margin-top: 14px; }
.stc-fw { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 12px; padding: 12px 44px 12px 14px; margin-bottom: 10px; border: 1px solid var(--sv-line); border-radius: var(--radius-md); background: var(--paper-raised); }
.stc-says { grid-column: 1 / -1; margin: 0; font-size: var(--text-2xs); line-height: 1.5; color: var(--ink-soft); }
.stc-x { position: absolute; top: 8px; right: 8px; }
.stc-practices { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.stc-practice { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 8px; align-items: start; }
.stc-practice > input { width: 18px; height: 18px; margin: 10px 0 0; accent-color: var(--ink); }
.stc-practice > div { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.stc-back { font-size: var(--text-2xs); color: var(--ink-faint); }
.stc-backed { color: var(--good); }
.stc-subs { display: grid; gap: 8px; margin-bottom: 10px; }
.stc-sub { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.stc-issues, .stc-words { padding: 10px 14px; margin-bottom: 12px; border-radius: var(--radius-md); font-size: var(--text-xs); line-height: 1.5; }
.stc-issues { border: 1px solid var(--danger); background: var(--danger-soft); }
.stc-words { border: 1px solid var(--warn); background: var(--warn-soft); }
.stc-issues ul, .stc-words ul { margin: 6px 0 0; padding-left: 18px; }
.stc-preview[hidden] { display: none; }
.stc-preview { margin-top: 16px; border: 1px solid var(--rule-strong); border-radius: var(--radius-lg); overflow: hidden; background: var(--paper); }
.stc-preview iframe { display: block; width: 100%; height: 560px; border: 0; }
.stc-pack { margin-top: 24px; }
.stc-pass { font-family: var(--font-mono); flex: 1 1 260px; width: auto; }

/* ------------------------------------------------------------------ Board report */

.sbd-gap { margin-top: 12px; }
.sbd-figs { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 10px; }
.sbd-fig { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border: 1px solid var(--sv-line); border-radius: var(--radius-md); background: var(--paper-raised); }
.sbd-fig b { font-size: var(--text-xl); line-height: 1.2; font-variant-numeric: tabular-nums; }
.sbd-fig span { font-size: var(--text-xs); font-weight: 600; }
.sbd-fig small { font-size: var(--text-2xs); line-height: 1.45; color: var(--ink-faint); }
.sbd-bad b { color: var(--danger); }
.sbd-unknown { font-size: var(--text-sm); font-weight: 600; color: var(--ink-faint); }
.sbd-ready { margin-top: 14px; }
.sbd-h { margin: 20px 0 8px; font-size: var(--text-xs); font-weight: 650; }
.sbd-rows { display: grid; gap: 8px; margin-bottom: 8px; }
.sbd-row { display: grid; gap: 8px 10px; align-items: end; padding: 10px 12px; border: 1px solid var(--sv-line); border-radius: var(--radius-md); background: var(--paper-raised); }
.sbd-incidents { grid-template-columns: 150px minmax(0, 2fr) 130px minmax(0, 1.5fr) auto; }
.sbd-risks { grid-template-columns: minmax(0, 2fr) 130px minmax(0, 1fr) minmax(0, 1.5fr) auto; }
.sbd-decisions { grid-template-columns: minmax(0, 2.5fr) minmax(0, 1fr) 150px auto; }
.sbd-trend { list-style: none; margin: 0 0 8px; padding: 0; }
.sbd-trend li { display: flex; justify-content: space-between; gap: 10px; padding: 4px 0; font-size: var(--text-2xs); color: var(--ink-soft); border-top: 1px solid var(--sv-line); }
.sbd-trend li:first-child { border-top: 0; }
.sbd-trend b { color: var(--ink); font-variant-numeric: tabular-nums; }

/* ------------------------------------------------------------ Compliance calendar */

.scc-empty, .scc-sample { margin-bottom: 16px; }
.scc-empty { padding: 18px 20px; border: 1px solid var(--sv-line); border-radius: var(--radius-lg); background: var(--paper-raised); }
.scc-empty p { margin: 0 0 12px; font-size: var(--text-xs); line-height: 1.55; color: var(--ink-soft); }
.scc-empty[hidden], .scc-sample[hidden], .scc-form[hidden] { display: none; }
.scc-sample { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 10px 14px; border: 1px solid var(--warn); border-radius: var(--radius-md); background: var(--warn-soft); font-size: var(--text-xs); }
.scc-sample p { margin: 0; }
.scc-sum { margin: 0; font-size: var(--text-xs); color: var(--ink-soft); }
.scc-list { list-style: none; margin: 16px 0 0; padding: 0; }
.scc-act { display: grid; grid-template-columns: minmax(0, 1fr) 170px; gap: 10px 16px; align-items: start; padding: 14px 0; border-bottom: 1px solid var(--sv-line); }
.scc-act:first-child { border-top: 1px solid var(--sv-line); }
.scc-what { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.scc-what b { font-size: var(--text-sm); }
.scc-what > span { font-size: var(--text-2xs); color: var(--ink-soft); }
.scc-what p { margin: 2px 0 0; font-size: var(--text-2xs); line-height: 1.5; color: var(--ink-soft); }
.scc-last { font-size: var(--text-2xs); color: var(--ink-faint); }
.scc-over .scc-what b { color: var(--danger); }
.scc-soon .scc-due .svs-tag { background: var(--warn-soft); color: var(--ink); }
.scc-due { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.scc-due .svs-tag { white-space: normal; }
.scc-acts { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; }
.scc-record { grid-column: 1 / -1; padding: 14px 16px; border: 1px solid var(--rule-strong); border-radius: var(--radius-lg); background: var(--paper-raised); }
.scc-record h3 { margin: 0 0 10px; font-size: var(--text-sm); }
.scc-record .svs-field { margin-bottom: 10px; }
.scc-drop { margin-top: 4px; }
.scc-form { margin-top: 16px; padding: 18px 20px; border: 1px solid var(--rule-strong); border-radius: var(--radius-lg); background: var(--paper-raised); }
.scc-form h2 { margin: 0 0 12px; font-size: var(--text-md); }
.scc-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 14px; }
.scc-wide { grid-column: 1 / -1; }
.scc-h { margin: 28px 0 10px; font-size: var(--text-sm); }
.scc-year { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.scc-month { padding: 10px 12px; border: 1px solid var(--sv-line); border-radius: var(--radius-md); background: var(--paper-raised); min-width: 0; }
.scc-month h3 { margin: 0 0 6px; font-size: var(--text-2xs); font-weight: 650; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-faint); }
.scc-month ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; font-size: var(--text-2xs); line-height: 1.4; }
.scc-month li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 4px; }
.scc-month li span { font-variant-numeric: tabular-nums; color: var(--ink-faint); }
.scc-month li.scc-late { grid-template-columns: 1fr; color: var(--danger); }
.scc-month li.scc-late span { font-weight: 650; color: var(--danger); }
.scc-free { margin: 0; font-size: var(--text-2xs); color: var(--ink-faint); }

/* --------------------------------------------------- Exchange registers with your team */

.sxc-gap { margin-top: 16px; }
.sxc-regs, .sxc-book { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 2px; }
.sxc-regs .svw-opt, .sxc-book .svw-opt { margin: 0; }
.sxc-book code { font-size: var(--text-2xs); color: var(--ink-faint); }
.sxc-review[hidden] { display: none; }
.sxc-review { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--sv-line); }
.sxc-review h2 { margin: 0 0 6px; font-size: var(--text-md); }
.sxc-reg { margin-top: 14px; padding: 12px 14px; border: 1px solid var(--sv-line); border-radius: var(--radius-lg); background: var(--paper-raised); }
.sxc-reg h3 { margin: 0; font-size: var(--text-sm); }
.sxc-reghead { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.sxc-reghead h3 { margin-right: auto; }
.sxc-changes { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 4px; }
.sxc-changes .svw-opt { margin: 0; align-items: flex-start; }
.sxc-changes .svw-opt > span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sxc-kind { font-size: var(--text-2xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--ink-faint); }
.sxc-added .sxc-kind { color: var(--good); }
.sxc-changed .sxc-kind, .sxc-setting .sxc-kind { color: var(--warn); }
.sxc-removed .sxc-kind { color: var(--danger); }
.sxc-fields { font-family: var(--font-mono); font-size: var(--text-2xs); line-height: 1.5; color: var(--ink-soft); overflow-wrap: anywhere; }
.sxc-log { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 6px; font-size: var(--text-2xs); }
.sxc-log li { display: flex; flex-direction: column; gap: 1px; }
.sxc-log span { color: var(--ink-faint); }

/* ------------------------------------------------- Test exported settings */

.sim-where { margin-top: 14px; }
.sim-said-bad small { color: var(--danger); }
.sim-said-busy small { color: var(--ink-faint); }
.sim-import { margin-top: 14px; padding: 14px 16px 6px; border: 1px solid var(--sv-line); border-radius: var(--radius-lg); background: var(--paper-raised); }
.sim-import:first-child { margin-top: 0; }
.sim-ihead { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.sim-iname { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.sim-iname b { font-size: var(--text-sm); overflow-wrap: anywhere; }
.sim-iname b span { font-weight: 500; color: var(--ink-soft); }
.sim-iname small { font-size: var(--text-2xs); color: var(--ink-faint); overflow-wrap: anywhere; }
.sim-src { align-self: flex-start; font-family: var(--font-mono); font-size: var(--text-2xs); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-faint); }
.sim-count { flex: none; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.sim-mono { font-family: var(--font-mono); font-size: var(--text-2xs); }
.sim-facts { margin-top: 12px; }
.sim-checks { margin-top: 12px; }
.sim-check:last-child { border-bottom: 0; }
.sim-detail { padding: 0 0 12px 90px; display: flex; flex-direction: column; gap: 8px; }
.sim-detail > * { margin: 0; }
.sim-subjects { max-height: 220px; overflow: auto; }
.sim-subjects li { overflow-wrap: anywhere; }
.sim-cites dd { color: var(--ink-soft); }
.sim-ctl code { font-size: var(--text-2xs); }
.sim-task { display: flex; gap: 6px; align-items: flex-start; color: var(--ink-soft); }
.sim-task svg { flex: none; width: 14px; height: 14px; margin-top: 2px; color: var(--good); }
.sim-taskform { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 11rem) auto; gap: 10px; align-items: end; }
.sim-taskform .svs-field { margin: 0; }
.sim-iacts { margin: 4px 0 8px; }
.sim-allacts { margin-top: 14px; }
.sim-empty { padding: 16px 18px; }
.sim-empty p { margin: 0; font-size: var(--text-sm); color: var(--ink-soft); }
.sim-empty p b { color: var(--ink); }
.sim-fams { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 6px; font-size: var(--text-xs); }
.sim-fams li { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 8px; align-items: baseline; }
.sim-fams .sci-when { font-size: var(--text-2xs); }
.svs-big.sim-bad { color: var(--danger); }
.sim .svs-list li { flex-wrap: wrap; }
.sim-pacts { margin-left: auto; display: flex; flex-wrap: wrap; gap: 6px; }
.sim-code { min-height: 12rem; font-size: var(--text-2xs); line-height: 1.5; }
.sim-contract { margin-top: 10px; }
.sim-contract summary { cursor: pointer; font-size: var(--text-xs); color: var(--ink-soft); }
.sim-contract code { font-size: var(--text-2xs); overflow-wrap: anywhere; }

@media (max-width: 640px) {
  .sim-import { padding: 12px 12px 4px; }
  .sim-ihead { flex-direction: column; }
  .sim-count { justify-content: flex-start; }
  .sim-detail { padding-left: 0; }
  .sim-taskform { grid-template-columns: 1fr; }
  .sim-taskform .sv-btn { justify-self: start; }
  .svs-list li .sim-pacts { margin-left: 0; }
}

@media (max-width: 1100px) {
  .scc-year { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .stc-fw { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sbd-incidents, .sbd-risks, .sbd-decisions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sbd-row > .sv-iconbtn { justify-self: end; grid-column: -2; }
}
@media (max-width: 640px) {
  .sqn-mapcols, .sqn-efields, .sqn-ans { grid-template-columns: 1fr; }
  .sqn-match .sv-btn { margin-left: 0; }
  .sqn-find { max-width: none; }
  .stc-fw, .stc-sub { grid-template-columns: 1fr; }
  .stc-sub { padding-bottom: 8px; border-bottom: 1px solid var(--sv-line); }
  .stc-preview iframe { height: 460px; }
  .sbd-incidents, .sbd-risks, .sbd-decisions { grid-template-columns: 1fr; }
  .scc-act { grid-template-columns: 1fr; gap: 8px; }
  .scc-fields { grid-template-columns: 1fr; }
  .scc-year { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
