/* Relatórios e Auditoria.
   Page-scoped rules only; shared components live in ../app.css. Every class
   here starts with `ra-` so nothing leaks into another page. */

/* ---------- Relatórios ---------- */
.ra-kinds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 32px;margin:0 0 10px}
.ra-kinds>div{min-width:0}
.ra-kinds dt{font-weight:700;color:var(--ink);font-size:14px}
.ra-kinds dd{margin:2px 0 0;color:var(--sec);font-size:13.5px;line-height:1.5}
.ra-note{margin:0 0 24px;color:var(--sec);font-size:13.5px;line-height:1.5;max-width:90ch}

.ra-cycle+.ra-cycle{margin-top:20px}
.ra-cycle .panel-head h2.ttl{margin:0}
.ra-runs{list-style:none;margin:0;padding:0}
.ra-run{display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(190px,1fr) minmax(190px,1fr);
  gap:14px 28px;padding:18px 22px;border-top:1px solid var(--line-2)}
.ra-run-id{min-width:0}
.ra-run h3{margin:0 0 4px;font-size:15px;color:var(--ink)}
.ra-run-meta{margin:0 0 10px;color:var(--sec);font-size:13px}
.ra-run-meta a,.ra-older a,.ra-empty a,.ra-scope a{color:var(--accent-strong);font-weight:600;
  text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent);text-underline-offset:3px}
.ra-run-meta a:hover,.ra-older a:hover,.ra-empty a:hover,.ra-scope a:hover{text-decoration-color:currentColor}
.ra-file{min-width:0}
.ra-file-kind{margin:0 0 8px;font-size:13px;font-weight:700;color:var(--ink)}
.ra-file-meta{margin:6px 0 0;font-size:12.5px;color:var(--sec);line-height:1.45}
.ra-file-missing{margin:0;font-size:13px;font-weight:600;color:var(--bad-ink);line-height:1.45}
.ra-dl svg{flex:none}
.ra-run-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}
.ra-stale{flex:1 1 100%;margin:0;font-size:13px}
.ra-gen{margin:0}
.ra-older{font-size:13px;color:var(--sec)}
.ra-older summary,.ra-tech summary{cursor:pointer;min-height:24px;padding:2px 0;
  color:var(--accent-strong);font-weight:600;font-size:12.5px;width:max-content;max-width:100%}
.ra-older summary:hover,.ra-tech summary:hover{text-decoration:underline;text-underline-offset:3px}
.ra-older ul{list-style:none;margin:6px 0 0;padding:0 0 0 16px;display:grid;gap:4px}

.ra-empty{padding:28px 22px;text-align:left;max-width:72ch}
.ra-empty p{margin:0 0 6px;color:var(--sec);line-height:1.5}
.ra-empty p:last-child{margin-bottom:0}
.ra-empty strong{color:var(--ink);font-size:14.5px}

/* ---------- Auditoria ---------- */
.ra-audit-head .seg{flex:0 1 auto}
.ra-trail-head{flex-wrap:wrap;row-gap:8px}
.ra-trail-head h2.ttl{margin:0;font-size:15px}
.ra-count{color:var(--sec);font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}
.ra-trail-head .ra-export{margin-left:auto;font-size:14px;color:var(--ink)}
.ra-trail-head .ra-export:hover{color:var(--accent-strong)}
.ra-scope{margin:0;padding:0 22px 12px;color:var(--sec);font-size:13.5px;line-height:1.5;max-width:110ch}
.ra-scope:first-of-type{padding-top:2px}

.ra-filters{display:grid;grid-template-columns:minmax(180px,1.3fr) minmax(200px,1.4fr) minmax(150px,1fr) minmax(150px,1fr) auto;
  align-items:end;gap:14px 16px;padding:14px 22px 18px;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);
  background:var(--expanded)}
.ra-filter-actions{display:flex;flex-wrap:wrap;gap:8px}
.ra-filter-err{grid-column:1/-1;margin:0;font-size:13px;font-weight:600;color:var(--bad-ink)}

/* Audit tables: multi-line cells read from the top. */
.ra-table tbody td{vertical-align:top}
.ra-table .st{vertical-align:middle}
.ra-events{--table-min:880px}
.ra-runs-table{--table-min:1040px}
.ra-policy{--table-min:960px}
.ra-decisions{--table-min:940px}
.ra-notifications{--table-min:900px}
.ra-sources{--table-min:880px}

.ra-strong{display:block;font-weight:600;color:var(--ink)}
a.ra-strong{width:max-content;max-width:100%}
a.ra-strong:hover{text-decoration:underline;text-underline-offset:3px}
.ra-sub{display:block;margin-top:3px;color:var(--sec);font-size:12.5px;line-height:1.45}
.ra-reason{max-width:42ch;overflow-wrap:break-word}
.ra-type{min-width:120px;color:var(--ink)}
.ra-who-cell{min-width:170px}
.ra-who{display:block;font-weight:600;color:var(--ink)}
.ra-who.sys{font-weight:500;white-space:nowrap}
.ra-login{display:block;margin-top:2px;color:var(--sec);font-size:12.5px;overflow-wrap:break-word}
.ra-what{min-width:240px}
.ra-what a{color:var(--accent-strong);font-weight:600;text-decoration:underline;
  text-decoration-color:color-mix(in srgb,currentColor 40%,transparent);text-underline-offset:3px}
.ra-what a:hover{text-decoration-color:currentColor}
.ra-params{display:block;margin-top:3px;color:var(--sec);font-size:12.5px}
.ra-param+.ra-param::before{content:" · "}
/* Codes stay in the brand face with tabular figures (the app has no mono
   face); the light chip is what marks them as identifiers. */
.ra-code{font-family:inherit;font-size:12.5px;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums;
  background:var(--neu-bg);padding:1px 6px;border-radius:4px;overflow-wrap:break-word}
.ra-code.nowrap{white-space:nowrap}
.ra-ds{font-family:inherit;font-size:13.5px;font-weight:700;color:var(--ink);overflow-wrap:break-word}
.ra-ref{font-size:12.5px;color:var(--sec);overflow-wrap:anywhere}
.ra-source{min-width:240px;max-width:340px}
/* Long registry notes: two lines here, the whole text in the details. */
.ra-about{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* Technical record, folded: one click away, never the main content. */
.ra-tech{margin-top:6px}
.ra-tech dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 14px;margin:8px 0 2px;
  padding:10px 12px;background:var(--expanded);border:1px solid var(--line-2);border-radius:var(--r-sm,8px);font-size:12.5px}
.ra-tech dl>div{display:contents}
.ra-tech dt{color:var(--sec);font-weight:600}
.ra-tech dd{margin:0;color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
/* In a narrow cell (or on a phone) each label sits above its value, so the
   value gets the whole width instead of a sliver beside the label. */
:is(.ra-source,.ra-diff,.ra-recipients) .ra-tech dl{display:block}
:is(.ra-source,.ra-diff,.ra-recipients) .ra-tech dd{margin:1px 0 6px}
:is(.ra-source,.ra-diff,.ra-recipients) .ra-tech dd:last-child{margin-bottom:0}
.ra-tech>p,.ra-tech>ul{margin:8px 0 2px;font-size:12.5px;color:var(--ink);overflow-wrap:anywhere}
.ra-tech>ul{list-style:none;padding:0}

/* Parametrizações: before → after. */
.ra-diff{min-width:220px}
.ra-before{color:var(--sec)}
.ra-after{color:var(--ink);font-weight:700}
.ra-arrow{color:var(--ter);padding:0 2px}
.ra-diff-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.ra-diff-line{margin:0 0 4px}
.ra-diff-tag{color:var(--sec);font-weight:600}
.ra-just{min-width:220px;max-width:46ch;line-height:1.5}
.ra-just-text{display:block}
.ra-just .ra-strong+.ra-just-text{margin-top:3px;color:var(--sec)}

/* Notificações. */
.ra-recipients{min-width:230px}
.ra-recipients ul{list-style:none;margin:0;padding:0}
.ra-recipients li{overflow-wrap:break-word}

/* Fontes lidas: one group per run. */
.ra-group th{padding:12px 20px;background:var(--expanded);border-top:1px solid var(--line);border-bottom:1px solid var(--line-2);
  text-align:left;font-weight:700;color:var(--ink);font-size:13.5px}
.ra-sources tbody:first-of-type .ra-group th{border-top:0}
.ra-group a{text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent);text-underline-offset:3px}
.ra-group a:hover{text-decoration-color:currentColor}
/* The run's label stays in view while the table scrolls sideways. */
.ra-group-in{position:sticky;left:20px;display:inline-block;max-width:calc(100vw - 72px)}
.ra-group-meta{display:inline-block;margin-left:10px;color:var(--sec);font-weight:500;font-size:12.5px}
.ra-none{color:var(--sec)}

@media (max-width:980px){
  .ra-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ra-filter-actions{grid-column:1/-1}
}
@media (max-width:860px){
  .ra-run{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ra-run-id{grid-column:1/-1}
}
@media (max-width:720px){
  .ra-kinds{grid-template-columns:minmax(0,1fr)}
  .ra-run{grid-template-columns:minmax(0,1fr);padding:16px}
  .ra-dl{width:100%}
  .ra-scope{padding:0 16px 12px}
  .ra-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:14px 16px 16px}
  .ra-filters>.field:nth-of-type(-n+2){grid-column:1/-1}
  .ra-filter-actions>.btn{flex:1 1 auto}
  .ra-trail-head .ra-export{margin-left:0;width:100%}
  .ra-audit-head .seg{flex:1 1 100%}
  .ra-group-meta{display:block;margin:2px 0 0}
  .ra-tech dl{display:block}
  .ra-tech dd{margin:1px 0 6px}
  .ra-tech dd:last-child{margin-bottom:0}
}
