/* Privacy Scanner — report UI. Builds on tools.css tokens.
   Findings are conveyed with icon + text + a category word, never colour alone. */

.scan-progress { display: flex; align-items: center; gap: 0.7rem; padding: 1.1rem 0.25rem; color: var(--text-secondary); }
.scan-progress .spinner { flex: none; }
.scan-stage { font-size: 0.95rem; }

/* summary header */
.scan-head { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--partition); }
.scan-file { display: flex; align-items: center; gap: 0.7rem; min-width: 0; }
.scan-file .fic { flex: none; width: 2.4rem; height: 2.4rem; display: grid; place-items: center; border-radius: 0.6rem; background: rgba(52,211,153,0.1); color: var(--green); }
.scan-file b { display: block; color: var(--text-primary); font-size: 0.98rem; word-break: break-word; }
.scan-file span { display: block; color: var(--text-faint); font-size: 0.82rem; }
.scan-count { margin-left: auto; text-align: right; }
.scan-count .n { font-size: 1.6rem; font-weight: 700; line-height: 1; color: var(--text-primary); }
.scan-count .lbl { font-size: 0.8rem; color: var(--text-muted); }

/* category chips */
.scan-cats { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.9rem 0 0.2rem; }
.cat-chip { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.8rem; font-weight: 600; padding: 0.25rem 0.6rem; border-radius: 999px; border: 1px solid var(--seam); color: var(--text-secondary); }
.cat-chip .dot { width: 0.55rem; height: 0.55rem; border-radius: 50%; flex: none; }
.cat-chip.high .dot { background: var(--red); }
.cat-chip.review .dot { background: var(--amber); }
.cat-chip.info .dot { background: var(--text-faint); }
.cat-chip.clean { color: var(--green); border-color: rgba(52,211,153,0.4); }

/* accordion sections */
.scan-sec { border: 1px solid var(--partition); border-radius: 0.7rem; margin-top: 0.8rem; overflow: hidden; background: var(--chamber); }
.scan-sec > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 0.6rem; padding: 0.85rem 1rem; font-weight: 600; color: var(--text-primary); }
.scan-sec > summary::-webkit-details-marker { display: none; }
.scan-sec > summary:focus-visible { outline: 2px solid var(--green); outline-offset: -2px; }
.scan-sec > summary .chev { margin-left: auto; transition: transform 0.15s var(--ease, ease); color: var(--text-faint); flex: none; }
.scan-sec[open] > summary .chev { transform: rotate(90deg); }
.scan-sec .sec-count { font-size: 0.78rem; font-weight: 600; color: var(--text-muted); background: var(--partition); border-radius: 999px; padding: 0.1rem 0.5rem; }
.scan-sec-body { padding: 0.25rem 1rem 0.9rem; }

/* individual finding */
.finding-row { border-top: 1px solid var(--partition); padding: 0.75rem 0; }
.finding-row:first-child { border-top: none; }
.finding-main { display: flex; align-items: flex-start; gap: 0.65rem; }
.finding-ico { flex: none; width: 1.3rem; height: 1.3rem; margin-top: 0.1rem; }
.finding-ico.high { color: var(--red); }
.finding-ico.review { color: var(--amber); }
.finding-ico.info { color: var(--text-muted); }
.finding-ico.ok { color: var(--green); }
.finding-text { min-width: 0; flex: 1; }
.finding-title { color: var(--text-primary); font-weight: 600; font-size: 0.94rem; display: flex; flex-wrap: wrap; gap: 0.4rem 0.6rem; align-items: baseline; }
.finding-tag { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; color: var(--text-faint); }
.finding-tag.high { color: var(--red); }
.finding-tag.review { color: var(--amber); }
.finding-val { margin-top: 0.2rem; color: var(--text-secondary); font-size: 0.9rem; word-break: break-word; }
.finding-val .mono { font-family: var(--mono, monospace); }
.finding-desc { margin-top: 0.25rem; color: var(--text-muted); font-size: 0.85rem; line-height: 1.45; }
.finding-actions { margin-top: 0.55rem; display: flex; flex-wrap: wrap; gap: 0.5rem; }

/* expandable value (e.g. GPS) */
.finding-more { margin-top: 0.4rem; }
.finding-more > summary { cursor: pointer; color: var(--green); font-size: 0.85rem; font-weight: 600; list-style: none; display: inline-flex; align-items: center; gap: 0.3rem; }
.finding-more > summary::-webkit-details-marker { display: none; }
.finding-more > summary:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; border-radius: 3px; }
.finding-more[open] > summary { margin-bottom: 0.35rem; }

/* domain list (metadata / file info rows) */
.kv-row { display: flex; gap: 0.75rem; padding: 0.5rem 0; border-top: 1px solid var(--partition); font-size: 0.9rem; }
.kv-row:first-child { border-top: none; }
.kv-row .k { flex: none; width: 9.5rem; color: var(--text-faint); font-weight: 600; }
.kv-row .v { color: var(--text-secondary); min-width: 0; word-break: break-word; }

/* before / after */
.ba-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin: 0.6rem 0; }
.ba-col { border: 1px solid var(--partition); border-radius: 0.6rem; padding: 0.7rem 0.8rem; }
.ba-col h4 { margin: 0 0 0.45rem; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-faint); }
.ba-col.after { border-color: rgba(52,211,153,0.4); }
.ba-line { font-size: 0.86rem; color: var(--text-secondary); padding: 0.15rem 0; word-break: break-word; }
.ba-line .g { color: var(--green); }
.ba-line .r { color: var(--amber); }

.scan-note { font-size: 0.85rem; color: var(--text-muted); margin-top: 0.75rem; line-height: 1.5; }
.scan-limit { margin-top: 0.8rem; font-size: 0.82rem; color: var(--text-faint); line-height: 1.5; border-top: 1px dashed var(--partition); padding-top: 0.75rem; }

.scan-actions-bar { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1rem; }

@media (max-width: 560px) {
  .kv-row { flex-direction: column; gap: 0.1rem; }
  .kv-row .k { width: auto; }
  .ba-grid { grid-template-columns: 1fr; }
  .scan-count { margin-left: 0; text-align: left; }
}
