/* Fit: the detail:fit and talks:fit slots. Owned by Stream I. Colours from tokens.css only. */

.fit-card { display: grid; gap: 14px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); min-width: 0; }
.fit-card h4 { font-size: .9rem; margin: 0 0 4px; }
.fit-card h5 { font-size: .85rem; margin: 0 0 2px; }
.fit-sub { margin-top: 6px; }

.fit-score { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 6px; }
.fit-num { font-family: var(--font-mono); font-weight: 500; font-size: 2rem; line-height: 1.1; color: var(--accent); }
.fit-of { color: var(--muted); font-size: .85rem; }
.fit-word { margin-left: auto; font-weight: 600; }

.fit-block { display: grid; gap: 2px; }
.fit-reasons, .fit-notes, .fit-points { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.fit-reasons li { display: grid; grid-template-columns: 1.1em 1fr; gap: 4px; overflow-wrap: anywhere; }
.fit-glyph { font-family: var(--font-mono); font-weight: 500; text-align: center; }
.fit-for .fit-glyph { color: var(--st-accepted-fg); }
.fit-against .fit-glyph { color: var(--st-rejected-fg); }
.fit-notes { list-style: disc; padding-left: 18px; }
.fit-points { list-style: disc; padding-left: 18px; gap: 2px; }

/* Talk and event rows: a <details> whose summary carries the title and the score. */
.fit-talks { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.fit-talk { border: 1px solid var(--line); border-radius: 8px; background: var(--ground); }
.fit-talk > summary {
  display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; padding: 6px 10px; cursor: pointer; list-style: none;
}
.fit-talk > summary::-webkit-details-marker { display: none; }
.fit-talk > summary::before { content: '▸'; color: var(--muted); flex: none; }
.fit-talk[open] > summary::before { content: '▾'; }
.fit-talk-title { flex: 1; min-width: 0; overflow-wrap: anywhere; font-weight: 600; }
.fit-talk .small { font-weight: 400; }
.fit-talk .pill { flex: none; }
.fit-talk > :not(summary) { margin: 0 10px 10px; }
.fit-urgent { color: var(--urgent); }
.fit-soon { color: var(--soon); }
.fit-more { justify-self: start; margin-top: 6px; }

/* "Why am I seeing this?" */
.fit-why > summary { display: flex; align-items: center; min-height: 44px; cursor: pointer; color: var(--accent); font-size: .85rem; }
.fit-why-body { display: grid; gap: 6px; padding: 2px 0 6px; font-size: .85rem; }
.fit-why-body p { margin: 0; }
.fit-not { font-weight: 600; }

.fit-explain-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.fit-explain-result { display: grid; gap: 10px; margin-top: 8px; }
.fit-error { color: var(--urgent); margin: 6px 0 0; }

.fit-read-box:empty { display: none; }

@media (max-width: 480px) {
  .fit-explain-row { grid-template-columns: 1fr; }
  .fit-word { margin-left: 0; flex-basis: 100%; }
}

.fit-score-box, .fit-talks-box, .fit-read-box { display: grid; gap: 10px; min-width: 0; }

/* The score taken apart: three blocks, each factor with its words and points. */
.fit-what { margin: 0; }
.fit-gist { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: .92rem; }
.fit-gist li { padding-left: 10px; border-left: 3px solid var(--line); }
.fit-gist-best { border-left-color: var(--accent); }
.fit-gist-unknown { color: var(--muted); }
.fit-parts { display: grid; gap: 14px; }
.fit-part-group h4 { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin: 0; }
.fit-part-sum, .fit-part-pts { font-family: var(--font-mono); font-weight: 500; font-size: .8rem; color: var(--muted); white-space: nowrap; }
.fit-part-note { margin: 0 0 4px; }
.fit-part-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.fit-part { display: grid; gap: 2px; padding-left: 10px; border-left: 3px solid var(--line); }
.fit-part-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; }
.fit-part-label { font-weight: 600; }
.fit-part-state { font-size: .8rem; color: var(--muted); }
.fit-part-pts { margin-left: auto; }
.fit-part-detail { font-size: .85rem; color: var(--muted); overflow-wrap: anywhere; }
/* The border is a second cue next to the word, never the only one. */
.fit-part-match { border-left-color: var(--st-accepted-fg); }
.fit-part-partial { border-left-color: var(--st-waitlisted-fg); }
.fit-part-miss { border-left-color: var(--st-rejected-fg); }
.fit-part-unknown { border-left-style: dashed; }

.fit-how > summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2px 10px; min-height: 44px; cursor: pointer; color: var(--accent); font-size: .85rem; }
.fit-how[open] > summary { margin-bottom: 6px; }
