/* ════════════════════════════════════════════════════════════════════
   theory-neg.css — Έκθεση & Λογοτεχνία (kind:'neg') — NEG-only bits.
   The engine reuses .tr-* / .syx-* from theory-syntax.css; here live
   only the new pieces: passage blocks, match columns, cite lines.
   ════════════════════════════════════════════════════════════════════ */

/* ── απόσπασμα κειμένου (stem των ασκήσεων passage/choice) ── */
.neg-passage {
  font-family: var(--f-serif);
  font-size: 18px;
  line-height: 1.7;
  color: var(--bone);
  border-left: 2px solid var(--line-hi);
  padding: 4px 0 4px 18px;
  margin: 10px 0 14px;
  max-width: 780px;
}
.neg-passage b { color: var(--gold); font-weight: 600; }
.neg-cite {
  font-family: var(--f-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--stone);
  margin-top: 8px;
}

/* ── αντιστοίχιση (match) ── */
.neg-match {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  max-width: 780px;
  margin-top: 10px;
}
.neg-mcol { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.neg-mhead {
  font-family: var(--f-mono);
  font-size: 9.5px;
  letter-spacing: 0.18em;
  color: var(--stone);
  margin-bottom: 2px;
}
.neg-mitem {
  font-family: var(--f-sans);
  font-size: 14.5px;
  line-height: 1.45;
  text-align: left;
  color: var(--bone);
  background: var(--inset);
  border: 1px solid var(--line-hi);
  border-radius: 8px;
  padding: 10px 13px;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, opacity .15s ease;
}
.neg-mitem:hover { border-color: var(--gold); background: color-mix(in srgb, var(--gold) 6%, transparent); }
.neg-mitem.sel { border-color: var(--gold); color: var(--gold); background: color-mix(in srgb, var(--gold) 10%, transparent); }
.neg-mitem.locked {
  border-color: var(--sage);
  color: var(--sage);
  background: color-mix(in srgb, var(--sage) 8%, transparent);
  cursor: default;
  opacity: .85;
}

/* worked example: τα chunks της έκθεσης είναι φράσεις, όχι λέξεις */
.neg-worked .syx-chunk { font-size: 17.5px; line-height: 2.1; }

@media (max-width: 720px) {
  .neg-match { grid-template-columns: 1fr; }
  .neg-passage { font-size: 16.5px; }
}

/* ════════════════════════════════════════════════════════════════════
   theory-neg-toc.css — «Περιεχόμενα» στο πλάι για τις θεματικές
   ενότητες της Έκθεσης (kind:'neg', viewTheory με 4+ κεφάλαια).
   Αντικαθιστά το chip-wall (.neg-chapnav). Οικογένεια: το sidebar των
   study modules (games/gnwsto/study.css .unit-link), μεταφρασμένο στα
   tokens του .tr ώστε να δουλεύει με ΟΛΕΣ τις παλέτες + το ☀/☾/◐.
   Προσάρτησέ το στο τέλος του css/theory-neg.css (ή φόρτωσέ το μετά).
   F-019: τα κεφαλαία είναι γραμμένα στην πηγή, όχι text-transform.
   ════════════════════════════════════════════════════════════════════ */

.ntoc-layout{display:grid;grid-template-columns:264px minmax(0,1fr);gap:0 44px;margin-top:30px;align-items:start}

/* ── το πλαϊνό ευρετήριο ── */
.ntoc-in{position:sticky;top:14px;max-height:calc(100vh - 28px);overflow-y:auto;overscroll-behavior:contain;padding:2px 8px 18px 0;scrollbar-width:thin;scrollbar-color:var(--line-hi) transparent}
.ntoc-in::-webkit-scrollbar{width:4px}
.ntoc-in::-webkit-scrollbar-thumb{background:var(--line-hi);border-radius:2px}
.ntoc-head{display:flex;align-items:baseline;gap:10px;width:100%;padding:4px 0 0;background:none;border:0;text-align:left;cursor:default;color:inherit}
.ntoc-head .lab{font-family:var(--f-mono);font-size:10.5px;font-weight:500;letter-spacing:.28em;color:var(--gold)}
.ntoc-head .cur{flex:1;min-width:0;font-family:var(--f-serif);font-size:15px;color:var(--bone);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:none}
.ntoc-head .pos{margin-left:auto;font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;color:var(--stone);white-space:nowrap}
.ntoc-head .chev{font-family:var(--f-mono);font-size:11px;color:var(--stone);transition:transform .2s;display:none}
.ntoc-meter{display:flex;align-items:center;gap:10px;margin-top:11px}
.ntoc-meter .track{flex:1;height:3px;border-radius:2px;background:var(--line-soft);overflow:hidden}
.ntoc-meter .track i{display:block;height:100%;width:0;background:var(--gold);border-radius:2px;transition:width .3s}
.ntoc-meter .mc{font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;color:var(--stone);white-space:nowrap}
.ntoc-list{display:flex;flex-direction:column;margin-top:12px}
.ntoc-it{display:flex;gap:11px;align-items:baseline;width:100%;text-align:left;background:transparent;border:0;border-left:3px solid transparent;padding:9px 10px 9px 12px;color:var(--stone);font-family:var(--f-sans);font-size:13.5px;line-height:1.35;cursor:pointer;transition:all .16s}
.ntoc-it:hover{color:var(--cream);background:color-mix(in srgb,var(--gold) 5%,transparent)}
.ntoc-it .n{font-family:var(--f-mono);font-size:11px;min-width:20px;color:var(--gold);opacity:.8;white-space:nowrap}
.ntoc-it .tt{flex:1;min-width:0}
.ntoc-it.active{color:var(--bone);background:color-mix(in srgb,var(--gold) 9%,transparent);border-left-color:var(--gold);font-weight:600}
.ntoc-it.seen:not(.active) .n::after{content:' ✓';font-size:9px;color:var(--sage)}

/* ── δεξιά στήλη ── */
.ntoc-main{min-width:0}
.ntoc-cite{font-family:var(--f-mono);font-size:10px;letter-spacing:.28em;color:var(--terra);margin-bottom:4px}
/* sticky μπάρα μέρους — μόνο σε κινητό */
.ntoc-bar{display:none;position:sticky;top:8px;z-index:5;align-items:center;gap:10px;margin:0 0 18px;padding:8px 10px;background:var(--panel);border:1px solid var(--line);border-radius:3px;box-shadow:0 4px 16px color-mix(in srgb,var(--ink,#000) 14%,transparent)}
.ntoc-bar .nb{width:34px;height:34px;flex-shrink:0;border:1px solid var(--line-soft);border-radius:2px;background:none;color:var(--cream);font-family:var(--f-mono);font-size:14px;cursor:pointer}
.ntoc-bar .nb:hover{border-color:var(--gold);color:var(--gold)}
.ntoc-bar .nb[disabled]{opacity:.35;pointer-events:none}
.ntoc-bar .mid{flex:1;min-width:0;display:flex;align-items:baseline;gap:9px;background:none;border:0;text-align:left;padding:0;cursor:pointer}
.ntoc-bar .mid .p{font-family:var(--f-mono);font-size:11px;color:var(--gold);white-space:nowrap}
.ntoc-bar .mid .t{font-family:var(--f-serif);font-size:14.5px;font-weight:600;color:var(--bone);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* πλοήγηση στο πόδι */
.ntoc-pager{display:flex;justify-content:space-between;gap:12px;margin-top:34px;padding-top:18px;border-top:1px solid var(--line-soft)}
.ntoc-pg{background:none;border:1px solid var(--line-soft);color:var(--cream);padding:11px 16px;border-radius:3px;font-size:13.5px;max-width:48%;min-width:0;text-align:left;cursor:pointer;transition:all .16s;font-family:var(--f-sans)}
.ntoc-pg.nx{text-align:right}
.ntoc-pg:hover{border-color:var(--gold);background:color-mix(in srgb,var(--gold) 6%,transparent)}
.ntoc-pg[disabled]{opacity:.35;pointer-events:none}
.ntoc-pg .lbl{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;color:var(--stone);margin-bottom:3px}
.ntoc-pg .pt{display:block;font-family:var(--f-serif);font-weight:600;color:var(--bone);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── κινητό (≤940, το breakpoint --bp-lg του tokens.css) ── */
@media (max-width:940px){
.ntoc-layout{display:block}
.ntoc{border:1px solid var(--line);border-radius:3px;background:var(--panel);overflow:hidden;margin-bottom:22px}
.ntoc-in{position:static;max-height:none;overflow:visible;padding:0 14px 4px}
.ntoc-head{cursor:pointer;padding:13px 0}
.ntoc-head .chev{display:block}
.ntoc:not(.open) .ntoc-head .cur{display:block}
.ntoc:not(.open) .ntoc-head .pos{display:none}
.ntoc:not(.open) .ntoc-meter,.ntoc:not(.open) .ntoc-list{display:none}
.ntoc.open .ntoc-head .chev{transform:rotate(180deg)}
.ntoc.open .ntoc-in{padding-bottom:14px}
.ntoc-it{min-height:44px;padding:11px 10px 11px 12px;font-size:14.5px}
.ntoc-bar{display:flex}
}

/* ΤΟ ΙΔΙΟ ΝΟΥΜΕΡΟ ΔΥΟ ΦΟΡΕΣ. Το πακέτο τύπωνε το «04 / 24» και στην
   κεφαλίδα (.ntoc-head .pos) και δίπλα στην μπάρα προόδου
   (.ntoc-meter .mc) — δύο σειρές τη μία κάτω από την άλλη, με 11px
   ανάμεσά τους. Μένει αυτό που εξηγεί την μπάρα· η κεφαλίδα κρατά
   μόνο τη λέξη «ΠΕΡΙΕΧΟΜΕΝΑ» (και, στο κινητό κλειστό, τον τρέχοντα
   τίτλο). Αν το διπλό ήταν σκόπιμο, σβήσε αυτόν τον κανόνα. */
.ntoc-head .pos { display: none; }

/* ΤΟ STICKY ΔΕΝ ΚΟΛΛΟΥΣΕ. Το .ntoc-layout έχει align-items:start, άρα το
   <aside> έπαιρνε ΑΚΡΙΒΩΣ το ύψος του περιεχομένου του — μετρημένο στον
   φυλλομετρητή: aside 932px, .ntoc-in 932px. Ένα sticky στοιχείο κολλάει
   μόνο όσο έχει χώρο να ταξιδέψει μέσα στο περιέχον μπλοκ του· με μηδέν
   περιθώριο, απλώς κυλούσε μαζί με τη σελίδα. Το aside τεντώνει τώρα σε
   όλο το ύψος της γραμμής (το ψηλό είναι η δεξιά στήλη), και το
   .ntoc-in μένει καπελωμένο στο 100vh — εκεί γεννιέται το ταξίδι. */
.ntoc { align-self: stretch; }
