:root{--ink:#1f2430;--muted:#6b7280;--bg:#f7f4ee;--card:#fff;--line:#e5e0d6;--accent:#7a4e1d;
 --gen5:#3b6ea5;--gen11:#2f8f6b;--event:#b5532c;--birth:#5a5a8c;--death:#555;--sp:#a46fb5;--lxx:#c79a2b;
 --heb:"SBL Hebrew","Ezra SIL","Noto Serif Hebrew","Cardo","David Libre","Times New Roman",serif;
 --grk:"SBL Greek","Gentium Plus","Cardo","Noto Serif",serif}
*{box-sizing:border-box}
body{margin:0;font:14px/1.45 "Inter","Segoe UI",system-ui,sans-serif;color:var(--ink);background:var(--bg)}
.top{display:flex;align-items:center;gap:18px;padding:10px 18px;background:#2b2118;color:#f3e9da;flex-wrap:wrap}
.brand{font-size:18px}.brand .sub{font-size:12px;opacity:.75;margin-left:6px}.logo{font-size:20px}
.tabs{display:flex;gap:4px;flex-wrap:wrap}
.tabs button,.tabs .navlink{background:transparent;border:1px solid #6b5640;color:#f3e9da;padding:5px 10px;border-radius:16px;cursor:pointer;font-size:13px;text-decoration:none}
.tabs button.on{background:#f3e9da;color:#2b2118}
.tabs button.planned{opacity:.55;border-style:dashed}
.layout{display:grid;grid-template-columns:260px 1fr;min-height:calc(100vh - 110px)}
.controls{padding:12px 14px;border-right:1px solid var(--line);background:#fbf9f5;overflow:auto}
.controls h3{margin:12px 0 6px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.controls label{display:block;margin:3px 0}.controls input[type=number]{width:90px;margin-left:6px}
.controls small{color:var(--muted)}.derived{font-size:10px;background:#fde7c7;color:#7a4e1d;padding:1px 5px;border-radius:8px}
.presets{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.presets button,#applyWin{font-size:12px;padding:3px 7px;border:1px solid var(--line);background:#fff;border-radius:6px;cursor:pointer}
.legend div{display:flex;align-items:center;gap:6px;margin:2px 0;font-size:12px}
.sw{display:inline-block;width:22px;height:10px;border-radius:3px;background:#999}
.sw.stated{background:#2b2118}.sw.computed{background:var(--gen5)}.sw.harmonized{background:repeating-linear-gradient(45deg,var(--gen11),var(--gen11) 4px,#9ad3bd 4px,#9ad3bd 8px)}
.sw.range{background:repeating-linear-gradient(90deg,#e7b59e,#e7b59e 3px,#fff 3px,#fff 6px);border:1px dashed var(--event)}
.sw.variant{background:transparent;border:2px dashed var(--lxx)}
main{padding:12px 16px;overflow-x:clip;min-width:0}
.view{display:none}.view.on{display:block}
#timeline{background:#fff;border:1px solid var(--line);border-radius:10px;min-height:520px}
.hint{color:var(--muted);font-size:12px}
.vis-item{border-radius:6px;font-size:12px;border-width:1px}
.vis-item.life.gen5{background:var(--gen5);border-color:#2b5480;color:#fff}
.vis-item.life.gen11{background:var(--gen11);border-color:#1f6b4f;color:#fff}
.vis-item.harmonized{background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.18),rgba(255,255,255,.18) 6px,transparent 6px,transparent 12px)}
.vis-item.birth{background:#eceaf7;border-color:var(--birth);color:var(--birth)}
.vis-item.death{background:#eee;border-color:var(--death)}
.vis-item.event{background:#fbe3d8;border-color:var(--event);color:#7a2f12}
.vis-item.range{background:repeating-linear-gradient(90deg,#f6d3c3,#f6d3c3 4px,#fff4ee 4px,#fff4ee 8px);border:1px dashed var(--event);color:#7a2f12}
.vis-item.var-sp{background:rgba(164,111,181,.12);border:2px dashed var(--sp);color:#5d2f6b}
.vis-item.var-lxx{background:rgba(199,154,43,.12);border:2px dashed var(--lxx);color:#6b4d00}
.vis-item.vis-selected{box-shadow:0 0 0 3px #ffd36b}
.vis-labelset .vis-label .vis-inner{font-weight:600;font-size:12px}
.vis-time-axis .vis-text{font-size:11px}
.he{font-family:var(--heb);direction:rtl;font-size:20px;line-height:1.7}
.grc{font-family:var(--grk);font-size:16px}
/* modal */
.modal{position:fixed;inset:0;background:rgba(30,22,14,.45);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;z-index:50;overflow:auto}
.modal.hidden{display:none}
.modal-card{background:var(--card);border-radius:14px;max-width:820px;width:100%;padding:20px 24px;position:relative;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.close{position:absolute;right:12px;top:8px;border:0;background:none;font-size:26px;cursor:pointer;color:var(--muted)}
.modal h2{margin:0 0 4px;font-size:20px}.modal .date{font-size:15px;color:var(--accent);font-weight:600}
.badge{display:inline-block;font-size:11px;padding:1px 8px;border-radius:10px;margin-left:6px;vertical-align:middle;background:#e8eef7;color:#2b5480}
.badge.harmonized{background:#dff3ea;color:#1f6b4f}.badge.range{background:#fbe3d8;color:#7a2f12}.badge.variant{background:#fff3d6;color:#6b4d00}.badge.epoch{background:#2b2118;color:#fff}
.deriv{white-space:pre-wrap;background:#faf7f1;border-left:3px solid var(--accent);padding:8px 10px;border-radius:4px;font-size:13px;margin:10px 0}
.cite{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:10px 0}
.cite .ref{font-weight:700}.cite .role{color:var(--muted);font-size:12px;margin-left:6px}
.cite .eng{margin:6px 0}.cite .links a{font-size:12px;margin-right:12px}
.cite mark{background:#ffe7a3;border-radius:3px;padding:0 2px}
.basis{font-size:12px;color:var(--muted)}
.variants table{border-collapse:collapse;width:100%;font-size:13px}.variants td,.variants th{border-bottom:1px solid var(--line);padding:4px 6px;text-align:left;vertical-align:top}
details summary{cursor:pointer;color:var(--accent);font-size:12px}
/* tree */
.tree-wrap{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:auto}
.tree-wrap svg text{font-size:12px}
.node rect{fill:#fff;stroke:#b8ad9b;rx:8}
.node.gen5 rect{stroke:var(--gen5);fill:#eef4fb}.node.gen11 rect{stroke:var(--gen11);fill:#ecf7f2}.node.lxx rect{stroke:var(--lxx);stroke-dasharray:4 3;fill:#fffaf0}
.node{cursor:pointer}.node .heb{font-family:var(--heb);font-size:14px}
.link{fill:none;stroke:#b8ad9b;stroke-width:1.4}.link.spouse{stroke-dasharray:3 3;stroke:#c08}
/* table */
table.gen{border-collapse:collapse;background:#fff;font-size:13px;width:100%}
table.gen th,table.gen td{border:1px solid var(--line);padding:4px 8px;text-align:right}
table.gen th{background:#f1ebe0;position:sticky;top:0}
table.gen td.n{text-align:left;font-weight:600}table.gen td.diff{background:#fff3d6}
table.gen .he{font-size:15px}
.names{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.namecard{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer}
.namecard .he{font-size:22px;float:right}.namecard small{color:var(--muted)}
.planned-box{background:#fff;border:1px dashed var(--accent);border-radius:12px;padding:24px;max-width:720px}
.foot{font-size:11px;color:var(--muted);padding:8px 16px;border-top:1px solid var(--line)}
.vis-item.flood{border-color:#1d4e89;color:#1d4e89;font-weight:700}
.vis-item.vis-dot.flood{border-width:6px}

/* phase 3 */
#cats label.sub{padding-left:16px;font-size:12px}
.vis-item.l-patriarchs{background:#e3effa;border-color:#4a78a8}
.vis-item.l-exodus{background:#f6e9d8;border-color:#a8743a}
.vis-item.l-kings{background:#efe1f3;border-color:#7d4a91}
.vis-item.reign{background:#f3e3c0;border-color:#9a6a12}
.vis-item.range.seq-opp{background:#f6d7d2;border-color:#b0483a}
.vis-item.range.seq-rest{background:#dceedd;border-color:#4b8a50}
.vis-item.range.seq-rule{background:#e4e4f4;border-color:#5a5aa0}
.vis-item.range.seq-over{background:repeating-linear-gradient(45deg,#f6c7c0,#f6c7c0 6px,#fff 6px,#fff 12px);border-color:#b0302a;color:#7a1a14;font-weight:600}
.vis-item.anchor{border-width:2px;font-weight:700}
.vis-item.book{border-style:solid;border-width:1px;font-weight:600}
.vis-item.covered{background:repeating-linear-gradient(90deg,#eee,#eee 4px,#fafafa 4px,#fafafa 8px);border:1px dashed #999;color:#555;font-style:italic}
.sw.fuzzy{background:linear-gradient(to right,rgba(122,63,156,.15),rgba(122,63,156,.85),rgba(122,63,156,.06))}
.node.promise rect{fill:#eef3fb;stroke:#4a78a8}
.books{padding:6px 14px 30px}
.bkcat{border-left:6px solid;padding-left:8px;margin:18px 0 8px}
.bkcat small{font-weight:400;color:#777;margin-left:6px}
.bookgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.bookcard{background:#fff;border:1px solid var(--line);border-left:6px solid #999;border-radius:8px;padding:8px 10px;cursor:pointer}
.bookcard:hover{box-shadow:0 2px 8px rgba(0,0,0,.1)}
.bookcard.stub{cursor:default;opacity:.6;border-left-color:#ccc}
.bookcard .cov{color:#666;font-style:italic}
ul.bk{margin:4px 0 8px 18px;padding:0}
ul.bk li{margin:4px 0}
ul.trad li{color:#5a4a30}
table.wr td{padding:2px 10px 2px 0}
.cite.flash{outline:3px solid #f0c040}

/* Phase 4 — Judges reconstruction */
.vis-item.pl-stated { background: #2f6f9f; border-color: #1d4f75; color: #fff; }
.vis-item.pl-implied { background: #8fb7d6; border-color: #4f7fa6; color: #10283b; }
.vis-item.pl-assumed { background: #f3e2b3; border-color: #b08a2e; color: #3d2e05; border-style: dashed; }
.vis-item.slack { background-image: repeating-linear-gradient(45deg, rgba(0,0,0,.08) 0 6px, transparent 6px 12px); }
.vis-item.pl-stated.slack { background-color: #5d8fb5; }
.sw.pl-stated { background: #2f6f9f; } .sw.pl-implied { background: #8fb7d6; } .sw.pl-assumed { background: #f3e2b3; border: 1px dashed #b08a2e; }
.sw.slack { background: repeating-linear-gradient(45deg, #ccc 0 3px, #fff 3px 6px); }
.badge.pl-stated { background: #2f6f9f; color: #fff; } .badge.pl-implied { background: #cfe1ef; color: #10283b; } .badge.pl-assumed { background: #f3e2b3; color: #3d2e05; }
.placement { margin: 8px 0; padding: 8px 10px; border-left: 4px solid #8fb7d6; background: #f5f9fc; border-radius: 4px; }
.placement.pl-assumed { border-left-color: #b08a2e; background: #fdf8ea; } .placement.pl-stated { border-left-color: #2f6f9f; }
.placement div { margin: 4px 0; }
#jtimeline { border: 1px solid #ddd; background: #fff; }
.jnotes { padding: 8px 4px 24px; } .jnotes h2 { margin: 12px 0 4px; } .jnotes h3 { margin: 14px 0 6px; font-size: 15px; }
.jgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; } @media (max-width: 1100px) { .jgrid { grid-template-columns: 1fr; } }
ol.chain li { margin-bottom: 6px; font-size: 13.5px; }
table.jt { border-collapse: collapse; width: 100%; font-size: 13px; } table.jt td, table.jt th { border-bottom: 1px solid #e5e5e5; padding: 4px 6px; text-align: left; vertical-align: top; }
table.jt tr.chosen { background: #eef6ee; } table.jt.rows tr[data-id] { cursor: pointer; } table.jt.rows tr[data-id]:hover { background: #f3f7fb; }
p.decided { margin: 4px 0; font-size: 13px; }
bdi.hei { font-family: "SBL Hebrew", "Ezra SIL", "Noto Serif Hebrew", serif; font-size: 1.1em; unicode-bidi: isolate; }
.oq { margin: 8px 0; padding: 6px 10px; background: #fff3e0; border-left: 4px solid #e08a00; border-radius: 4px; font-size: 13.5px; }
.dec { margin: 8px 0; padding: 6px 10px; background: #e8f5ec; border-left: 4px solid #2e8b57; border-radius: 4px; font-size: 13.5px; }
.badge.oqb { background: #ffe0b2; color: #6b3d00; } .badge.decb { background: #d4eddc; color: #1f5a37; } ul.oql li { font-size: 13.5px; margin-bottom: 4px; }

/* ---- Phase 5: kings, prophets, calendar ---- */
.vis-item.k-judah { background:#f4e6c8; border-color:#a77a1f; }
.vis-item.k-israel { background:#dfe8f6; border-color:#3f6aa8; }
.vis-item.k-egypt, .vis-item.k-assyria, .vis-item.k-babylon, .vis-item.k-persia { background:#ece6f3; border-color:#7c5aa6; }
.vis-item.k-events { background:#f6dddd; border-color:#a33; }
.vis-item.hasoq { box-shadow: inset 0 -3px 0 #d9822b; }
b.oqmark { color:#d9822b; }
.vis-item.prophet { background:#e3f1e6; border-color:#2f7d4a; }
.vis-item.prophet.writing { background:#cfe9d6; font-weight:600; }
.vis-item.ctx { background:#f3f3f3; border-color:#bbb; color:#555; font-size:11px; }
.vis-item.dated, .vis-item.event[id^="cal:"] { }
table.resid tr.bad td { background:#fbe3d9; } table.resid tr.warn td { background:#fff6d6; } table.resid tr.ok td { background:#eef8ef; }
#ktimeline, #ptimeline { border-bottom:1px solid #ddd; }
.calpanel { border:1px solid #c9b27a; background:#fffaf0; border-radius:8px; padding:8px 12px; margin:8px 0; }
.calpanel h3 { margin:2px 0 6px; }
.calgrid { display:grid; grid-template-columns: repeat(3, 1fr); gap:6px 14px; font-size:14px; }
.mstrip { display:flex; gap:2px; margin:8px 0 4px; } .mstrip span { flex:1; text-align:center; font-size:11px; padding:2px 0; background:#eee; border-radius:3px; }
.mstrip span.on { background:#a77a1f; color:#fff; font-weight:700; }
.famlink{display:inline-block;padding:3px 10px;border:1px solid #7a4e1d;border-radius:14px;text-decoration:none;color:#7a4e1d;font-size:13px}
#ktimeline .vis-item.vis-point,#ptimeline .vis-item.vis-point,#timeline .vis-item.vis-point.k-events,#timeline .vis-item.vis-point.dated{color:#3a2a1a}

/* Phase 6 — kings readability + K2 co-regencies */
#ktimeline .vis-item.reign, #timeline .vis-item.reign.k-judah, #timeline .vis-item.reign.k-israel { color:#1d1405; font-size:12px; border-left-width:3px; }
#ktimeline .vis-item.reign.k-judah, #timeline .vis-item.reign.k-judah { background:#f4e6c8; border-color:#8a6214; }
#ktimeline .vis-item.reign.k-israel, #timeline .vis-item.reign.k-israel { background:#dfe8f6; border-color:#2f5a94; color:#0f1f38; }
#ktimeline .vis-item.reign.pl-stated, #timeline .vis-item.reign.pl-stated { border-left-color:#1d4f75; }
#ktimeline .vis-item.reign.pl-implied, #timeline .vis-item.reign.pl-implied { border-left-color:#4f7fa6; border-left-style:double; border-left-width:4px; }
#ktimeline .vis-item.reign .vis-item-overflow { overflow:visible; }
#ktimeline .vis-item.reign .vis-item-content, #timeline .vis-item.reign .vis-item-content { padding:1px 3px; white-space:nowrap; }
#ktimeline .vis-item.reign small, #timeline .vis-item.reign small { color:#4a3a20; }
.vis-item.coreg { background:repeating-linear-gradient(45deg,#fbd9a8 0 5px,#fff4e0 5px 10px) !important; border:1px dashed #b5651d !important; color:#4a2600 !important; font-size:11.5px; }
#ktimeline .vis-item.coreg .vis-item-overflow { overflow:visible; }
table.resid tr.built td { background:#eef0fb; font-style:italic; }
#ktimeline .vis-label .vis-inner { font-size:12.5px; }
/* point items carrying a placement class: keep the label dark on the white canvas (was white-on-white) */
#timeline .vis-item.vis-point[class*="pl-"], #ktimeline .vis-item.vis-point[class*="pl-"] { color:#2a2010; background:transparent; }
/* ---------------- Phase 7: third-tier box; Kings & Governments (kings.js) ---------------- */
.tt3{background:#fff7e6;border-left:4px solid #c98a1b;padding:6px 10px;margin:8px 0;border-radius:4px;font-size:13px}
.tt3 b{color:#7a4e1d}
.kv{position:relative;user-select:none;-webkit-user-select:none;background:#fffdf8;border:1px solid var(--line);border-radius:6px}
.kvtools{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:6px 8px;border-bottom:1px solid var(--line);font-size:12.5px}
.kvtools button{padding:3px 9px;border:1px solid #cfc6b4;background:#fff;border-radius:5px;cursor:pointer;font-size:12.5px}
.kvtools button:hover{background:#f3ead8}.kvtools .sep{width:10px}
.kvzl{color:var(--muted);margin-left:6px}.kvleg{margin-left:auto;color:var(--muted)}
.kvleg .sw{display:inline-block;width:18px;height:10px;border-radius:2px;vertical-align:middle;margin:0 2px 0 8px;border:1px solid #8a6214;background:#f4e6c8}
.kvleg .sw.co{background:repeating-linear-gradient(45deg,#fbd9a8 0 4px,#fff4e0 4px 8px);border:1px dashed #b5651d;height:7px}
.kvleg .sw.x{background:#ece6f5;border-color:#6d5a99;border-style:dashed}
.kvbody{display:flex;overflow:hidden}
.kvlabels{position:relative;flex:0 0 196px;border-right:1px solid var(--line);background:#faf6ee}
.kvrl{position:absolute;left:0;right:0;padding:4px 8px;font-size:12.5px;line-height:1.2;overflow:hidden;box-sizing:border-box;border-bottom:1px solid #efe9dd}
.kvrl small{display:block;color:var(--muted);font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kvrl b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kvrl small.ov{color:#b5651d}
.kvrl.x3 b::after{content:" ③";color:#6d5a99;font-weight:normal}
.kvrl.axis{border:0;color:var(--muted)}
.kvplot{position:relative;flex:1;overflow:hidden;cursor:grab;touch-action:none}.kvplot.drag{cursor:grabbing}
.kvsvg{display:block;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.kvsvg .kvband{fill:#fffdf8}.kvsvg .kvband.odd{fill:#f8f4ec}.kvsvg .kvband.x3{fill:#f7f5fb}.kvsvg .kvband.odd.x3{fill:#f1eef8}
.kvsvg .kvgrid{stroke:#ebe5d8;stroke-width:1}
.kvsvg .kvtick{font-size:11px;fill:#5b5345}.kvsvg .kvtick.bc{fill:#9a8f7a;font-size:10px}
.kvsvg .kvmark{stroke:#b5651d;stroke-dasharray:3 3;stroke-width:1}.kvsvg .kvmarkt{font-size:10.5px;fill:#b5651d}
.kvsvg .kvbar{fill:#f4e6c8;stroke:#8a6214;stroke-width:1;cursor:pointer}
.kvsvg .kvbar.israel{fill:#dfe8f6;stroke:#2f5a94}
.kvsvg .kvbar.united{fill:#efe1f0;stroke:#7b3f7f}
.kvsvg .kvbar.egypt,.kvsvg .kvbar.assyria,.kvsvg .kvbar.babylon,.kvsvg .kvbar.persia{fill:#e8efe3;stroke:#4f7a3f}
.kvsvg .kvbar.x3{fill:#ece6f5;stroke:#6d5a99;stroke-dasharray:4 2}
.kvsvg .kvbar.prophets{fill:#fde9dc;stroke:#b3542a}
.kvsvg .kvbar.events{fill:#eef0f2;stroke:#69737d}
.kvsvg .kvbar.coreg,.kvsvg .kvbar.subl.judah,.kvsvg .kvbar.subl.israel{fill:url(#none);fill:#fbd9a8;stroke:#b5651d;stroke-dasharray:3 2}
.kvsvg .kvbar.hasoq{stroke-width:1.6}
.kvsvg .kvbar:hover{filter:brightness(.93);stroke-width:2}
.kvsvg .kvlink{stroke:#b5651d;stroke-width:1;stroke-dasharray:2 2;fill:none}
.kvsvg .kvlab{font-size:11.5px;fill:#1d1405;pointer-events:none}.kvsvg .kvlab.out{fill:#5b5345}.kvsvg .kvlab.pt{font-size:11px;fill:#2a2010}
.kvsvg .oqm,.kvleg .oqm{fill:#d9822b;color:#d9822b;font-weight:bold}
.kvsvg .kvpt{fill:#7a4e1d;stroke:#fff;stroke-width:1;cursor:pointer}.kvsvg .kvpt.x3{fill:#6d5a99}
.kvtip{position:absolute;z-index:20;max-width:380px;background:#1f2430;color:#fff;padding:6px 9px;border-radius:6px;font-size:12px;pointer-events:none;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.kvtip small{color:#cfd3dc}.kvtip.hidden{display:none}
@media (max-width:820px){.kvlabels{flex-basis:108px}.kvrl small{display:none}.kvleg{display:none}}
.kvrl.idle{padding:1px 8px;color:#9a8f7a}.kvrl.idle small{display:none}.kvrl.idle b{font-weight:500;font-size:11px}
/* Phase 7b: main timeline labels never spill out of their bar (fitted in app.js) */
#timeline .vis-item.vis-range .vis-item-overflow{overflow:hidden}
#timeline .vis-item.vis-range .vis-item-content{white-space:nowrap;padding:1px 4px;font-size:12px}

/* Phase 7b — overview navigator */
#navwrap{position:sticky;top:0;z-index:20;background:#fbfaf7;padding:4px 0 4px;border-bottom:1px solid #e3ddd0;margin-bottom:6px}
#navstrip{position:relative;height:72px;user-select:none;-webkit-user-select:none;touch-action:none;cursor:pointer;background:#fff;border:1px solid #d9d2c3;border-radius:6px;overflow:hidden}
#navstrip .navsvg{display:block;position:absolute;left:0;top:0}
#navstrip .nb{fill:#e9e3d6}#navstrip .nb1{fill:#f2ede3}
#navstrip .nbt{font:9.5px system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;fill:#8a8070;pointer-events:none}
#navstrip .nax{stroke:#9b9283;stroke-width:1}
#navstrip .naxt{font:10px system-ui,sans-serif;fill:#6d6457}
#navstrip .nmk{stroke:#7a2e1f;stroke-width:2}
#navstrip .nml{font:10px system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;fill:#4a2a20}
#navstrip .navwin{position:absolute;top:0;bottom:0;background:rgba(40,90,160,.18);border:1.5px solid rgba(40,90,160,.75);border-radius:4px;cursor:grab;box-sizing:border-box;min-width:26px}
#navstrip.dragging .navwin{cursor:grabbing;background:rgba(40,90,160,.26)}
#navstrip .navwin:focus-visible{outline:3px solid #f0b400;outline-offset:1px}
#navstrip .navh{position:absolute;top:0;bottom:0;width:10px;cursor:ew-resize;background:rgba(40,90,160,.35)}
#navstrip .navh.l{left:-1px;border-radius:3px 0 0 3px}#navstrip .navh.r{right:-1px;border-radius:0 3px 3px 0}
#navstrip .navh::after{content:"";position:absolute;left:4px;top:24px;bottom:24px;border-left:2px solid rgba(255,255,255,.9)}
.navhint{font-size:11px;color:#7a7266;margin-top:2px}
@media (max-width:700px){.navhint{display:none}#navstrip .navh{width:14px}}
.view:not(#view-timeline){overflow-x:auto}
@media (max-width:760px){.layout{grid-template-columns:1fr}.layout>main{order:1}.layout>.controls{order:2;border-right:0;border-top:1px solid var(--line)}main{padding:8px}}
@media (max-width:760px){#timeline .vis-labelset .vis-label .vis-inner{max-width:92px;font-size:11px;padding:3px 4px;white-space:normal}#timeline .vis-labelset .vis-label small{display:none}}
/* Phase 7c — collapsible category menu, shared-lane legends, Psalms row */
#cats .catrow{display:flex;align-items:flex-start;gap:2px}
#cats .catrow label{flex:1;margin:3px 0}
#cats .disc,#cats .disc0{flex:0 0 22px;width:22px;height:22px;margin-top:1px}
#cats .disc{border:0;background:none;cursor:pointer;color:var(--accent);font-size:13px;padding:0;border-radius:4px}
#cats .disc:hover,#cats .disc:focus-visible{background:#efe8da}
#cats .catkids{margin:0 0 4px 24px;border-left:2px solid #eee4d2;padding-left:4px}
#cats .catkids label.sub{padding-left:0}
#cats .catkids[hidden]{display:none}
@media (max-width:760px){#cats .disc,#cats .disc0{flex-basis:32px;width:32px;height:32px;font-size:16px}#cats label{padding:4px 0}}
#timeline .vis-label .lg{display:flex;flex-wrap:wrap;gap:1px 6px;margin-top:3px;max-width:190px;font-weight:400}
#timeline .vis-label .lg span{font-size:10px;color:#555;white-space:nowrap;display:inline-flex;align-items:center;gap:3px}
#timeline .vis-label .lg i{display:inline-block;width:10px;height:8px;border:1px solid;border-radius:2px}
#timeline .vis-item.psalm{opacity:.82}
#timeline .vis-item.psalm:hover{opacity:1;z-index:3}
@media (max-width:760px){#timeline .vis-label .lg{display:none}}
.srcline{font-size:12px;color:var(--muted);margin:2px 0 4px}
/* Phase 7e — main date axis, gridlines, united kingdom, folded events */
.maxis{position:relative;height:30px;background:#fff;border:1px solid #d9d2c3;border-radius:6px;margin-top:4px;overflow:hidden;font-size:11px}
.maxis.two{height:40px}
.maxis.bottom{margin:4px 0 0}
.maxis .mxlab{position:absolute;left:6px;top:4px;color:#7a7266;font-size:10px;line-height:1.25}
.maxis i{position:absolute;bottom:0;width:1px;background:#9b9283}.maxis i.mn{height:5px;background:#c9c0b0}.maxis i.mj{height:10px;background:#5b5347}
.maxis.bottom i{top:0;bottom:auto}
.maxis .mt{position:absolute;top:3px;transform:translateX(-50%);white-space:nowrap;text-align:center;line-height:1.2;pointer-events:none}
.maxis .mt b{display:block;font-weight:700;color:#2b2118;font-size:11.5px}.maxis .mt span{display:block;color:#7a4e1d;font-size:10.5px}
.maxis.bottom .mt{top:7px}
#mgrid{position:absolute;inset:0;pointer-events:none;z-index:0}
#mgrid i{position:absolute;top:0;bottom:0;width:1px;background:rgba(80,70,50,.06)}#mgrid i.mj{background:rgba(80,70,50,.14)}
#timeline .vis-grid.vis-vertical{display:none}
#timeline .vis-time-axis .vis-text{display:none}
#timeline .vis-item.kev.vis-point,#timeline .vis-item.kev .vis-item-content{color:#8a1f1f}
#timeline .vis-item.kev.vis-dot{border-color:#a33}
#timeline .vis-item.kev.vis-range{border-color:#a33}
#timeline .vis-item.kunited{background:#efe1f3;border-color:#7d4a91;color:#2f1838}
/* Phase 8: people lines Adam → Jesus — generation slots (no stated lifespan) are dashed and lightly hatched */
#timeline .vis-item.lslot { background-image: repeating-linear-gradient(135deg, rgba(255,255,255,.45) 0 4px, transparent 4px 9px); }
#timeline .vis-item.lslot.pl-implied { border-style: dotted; }

/* Line of Descent: neighbouring parents' connector buses are told apart by hue (track 0 = the line of promise) */
#tree path.link.t1{stroke:#2f7f86}#tree path.link.t2{stroke:#a0306a}#tree path.link.t3{stroke:#7a8a2e}
