/* VIOLET TOOLS - shared styles for the hand-authored tool pages under /tools/.
   Master tokens only (tokens.css): no new colors, no webfonts, no emdashes.
   The strict CSP (style-src 'self') forbids inline style blocks and attributes, so
   everything the tool pages need, including the print rules, lives here. */

/* Tool pages reuse .block spacing but read better a little tighter at the top. */
.t-hero { padding-bottom: 24px; }
.t-hero .hero-sub { max-width: 62ch; }
.t-tool { padding-top: 24px; }
.t-cta { padding-top: 8px; }

/* ── Fields + fieldsets ── */
.t-field { display: flex; flex-direction: column; gap: 6px; margin: 14px 0 0; }
.t-label {
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--faint); font-weight: 500;
}
.t-field input[type="text"] {
  font-family: inherit; font-size: 16px; color: var(--text);
  background: var(--surface); border: 1px solid var(--line-strong); border-radius: var(--r-sm);
  padding: 11px 14px; width: 100%; max-width: 560px; transition: border-color var(--t);
}
.t-field input[type="text"]:focus { outline: none; border-color: var(--accent); }
.t-field input[type="text"]::placeholder { color: var(--faint); }

.t-modes {
  border: 0; margin: 14px 0 0; padding: 0;
  display: flex; gap: 18px; flex-wrap: wrap; align-items: center;
}
.t-modes legend { padding: 0; margin: 0 0 8px; float: left; width: 100%; }
.t-radio {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; color: var(--muted); cursor: pointer;
}
.t-radio input { accent-color: var(--accent); }

/* ── Verdict panel: the live formula + bits readout ── */
.t-verdict {
  border: 1px solid var(--line); border-left: 2px solid var(--accent);
  border-radius: var(--r-sm); background: var(--surface);
  padding: 14px 16px; margin: 18px 0 16px;
}
.t-formula { font-family: var(--mono); font-size: 13px; color: var(--muted); margin: 0 0 6px; }
.t-bits { font-size: 15px; color: var(--text); margin: 0; }
.t-bits span { font-family: var(--serif); font-size: 34px; line-height: 1; color: var(--text); }
.t-pool { font-size: 13px; color: var(--faint); margin: 6px 0 0; min-height: 1.2em; }

/* ── Cards + notes shared across tool pages ── */
.t-card {
  border: 1px solid var(--line); border-radius: var(--r); background: var(--surface);
  box-shadow: var(--shadow); padding: 16px 18px;
}
.t-card p { font-size: 14.5px; line-height: 1.65; color: var(--muted); margin: 0 0 12px; }
.t-card p:last-child { margin-bottom: 0; }
.t-card .k-list { margin: 0; }
.t-note { font-size: 13px; line-height: 1.6; color: var(--faint); margin: 10px 0 0; max-width: 66ch; }
.t-links { font-size: 14px; }
.t-cap {
  caption-side: top; text-align: left; font-size: 12.5px; line-height: 1.5;
  color: var(--faint); padding: 10px 12px 8px;
}

/* ── Worksheet checkboxes (threat model): plain labeled boxes that read as a paper
   checklist with or without JS. ── */
.t-checks { border: 0; margin: 14px 0 0; padding: 0; display: grid; gap: 12px; }
.t-checks legend { padding: 0; margin: 0 0 8px; float: left; width: 100%; }
.t-check {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 14.5px; line-height: 1.6; color: var(--muted); cursor: pointer; max-width: 66ch;
}
.t-check input { flex: none; margin-top: 4px; accent-color: var(--accent); }
.t-check strong { color: var(--text); font-weight: 600; }

/* ── Question fieldsets (voice privacy): one question per fieldset, radio options that
   read as a paper form with or without JS. Option labels reuse .t-check. ── */
.t-q { border: 0; margin: 22px 0 0; padding: 0; display: grid; gap: 10px; }
.t-q legend {
  padding: 0; margin: 0 0 8px; float: left; width: 100%;
  font-size: 15.5px; line-height: 1.5; font-weight: 600; color: var(--text); max-width: 66ch;
}

/* ── Assembled summary (threat model): sentences, not scores. ── */
.t-summary h3 { font-size: 16px; color: var(--text); margin: 18px 0 6px; }
.t-summary h3:first-child { margin-top: 0; }
.t-summary p { font-size: 14.5px; line-height: 1.65; color: var(--muted); margin: 0 0 8px; }
.t-summary p:last-child { margin-bottom: 0; }
.t-gap { border-left: 2px solid var(--line-strong); padding-left: 10px; color: var(--faint); }
.t-actions { margin-top: 16px; }
button.btn-primary { font-family: inherit; border: 0; cursor: pointer; }

/* ── Print: worksheets and checklists must survive on paper. Chrome, live-only widgets,
   and the capture CTA drop out; the static math, caveat, and table content remain. ── */
@media print {
  :root {
    --bg: #ffffff; --surface: #ffffff; --surface-2: #f2f2f2; --surface-3: #e8e8e8;
    --text: #000000; --muted: #333333; --faint: #555555;
    --line: #bbbbbb; --line-strong: #999999; --shadow: none;
  }
  .k-top, .foot, .skip, .k-cta-block, .t-cta, .t-actions { display: none !important; }
  body { background: #ffffff; color: #000000; }
  body::before { display: none; }
  .block { padding: 12px 0; max-width: none; }
  .t-card, .t-verdict { box-shadow: none; border-color: #999999; }
  .k-scroll { overflow: visible; border-color: #999999; }
  .k-table th, .k-table td { border-color: #999999; }
  a { color: inherit; text-decoration: underline; }
}
