/* Private analysis page — inherits tokens from radar.css */
.vault-body { background: var(--paper); }
.vault-main { padding-block: clamp(40px, 6vw, 80px) clamp(60px, 8vw, 110px); }

.gate {
  max-width: 640px;
  margin: 0 auto;
  padding: clamp(30px, 5vw, 52px);
  border: 1px solid var(--line);
  background: var(--surface);
  box-shadow: 0 24px 60px -48px rgba(23, 33, 30, .55);
}
.gate h1 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.9rem, 4vw, 2.6rem);
  font-weight: 500;
  line-height: 1.25;
}
.gate-note { margin: 18px 0 0; color: var(--muted); font-size: .95rem; line-height: 1.85; }
.gate-form { display: grid; gap: 14px; margin-top: 30px; }
.field { display: grid; gap: 8px; }
.field span { color: var(--muted); font-size: .78rem; letter-spacing: .04em; }
.field input {
  min-height: 46px;
  padding: 10px 14px;
  border: 1px solid var(--line);
  border-radius: 3px;
  background: #fff;
  color: var(--ink);
}
.field input:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
.gate-form .button { justify-self: start; min-width: 160px; }
.gate-status { min-height: 22px; margin: 18px 0 0; color: var(--muted); font-size: .86rem; }
.gate-status.error { color: var(--red); }

.vault-bar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--line);
}
.vault-bar p { margin: 0; }
#vault-summary { color: var(--muted); font-size: .92rem; }

.vault-section { padding-top: clamp(40px, 6vw, 64px); }
.vault-section .section-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 26px; }
.vault-section .section-heading h2 { margin: 0; font-family: var(--serif); font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 500; }
.vault-section .section-heading > p { max-width: 460px; margin: 0; color: var(--muted); font-size: .88rem; line-height: 1.8; }

.vault-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 18px; }
.vault-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 22px;
  border: 1px solid var(--line);
  background: var(--surface);
}
.vault-card h3 { margin: 0; font-family: var(--serif); font-size: 1.18rem; font-weight: 600; }
.vault-card p { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.75; }
.card-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.pill {
  display: inline-flex;
  align-items: center;
  padding: 2px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font-size: .70rem;
  white-space: nowrap;
}
.pill.whitelist { border-color: var(--green); color: var(--green); background: var(--green-soft); }
.pill.attended { border-color: var(--amber); color: var(--amber); background: #f6ecd9; }
.tag-row { display: flex; flex-wrap: wrap; gap: 6px; }
.tag { padding: 1px 8px; background: var(--paper-deep); color: var(--muted); font-size: .70rem; }
.fit-row { display: grid; gap: 7px; margin-top: 2px; }
.fit-row small { color: var(--muted); font-size: .72rem; letter-spacing: .04em; }
.fit-links { display: flex; flex-wrap: wrap; gap: 6px; }
.fit-chip { padding: 3px 9px; border: 1px dashed var(--line); color: var(--green); font-size: .74rem; }
.evidence { color: var(--muted); font-size: .74rem; }

.vault-list { display: grid; gap: 10px; }
.vault-row {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr) auto;
  gap: 20px;
  align-items: center;
  padding: 16px 20px;
  border: 1px solid var(--line);
  background: var(--surface);
}
.row-score { display: flex; flex-direction: column; align-items: flex-start; }
.row-score strong { font-family: var(--serif); font-size: 1.55rem; font-weight: 500; line-height: 1.1; }
.row-score span { color: var(--muted); font-size: .66rem; }
.row-main { display: grid; gap: 7px; min-width: 0; }
.row-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.row-title { margin: 0; font-size: 1rem; font-weight: 600; line-height: 1.45; }
.row-title a { color: var(--ink); text-decoration: none; }
.row-title a:hover { color: var(--green); }
.row-source { color: var(--muted); font-size: .74rem; white-space: nowrap; }
.vault-empty { color: var(--muted); font-size: .9rem; }

@media (max-width: 720px) {
  .vault-row { grid-template-columns: 64px minmax(0, 1fr); }
  .row-source { display: none; }
  .vault-section .section-heading { flex-direction: column; align-items: flex-start; }
  .vault-bar { flex-direction: column; align-items: flex-start; }
}
