:root{--bg: #14161e;--bg-2: #1a1d27;--bg-3: #232735;--line: #2e3344;--text: #e8eaf2;--text-dim: #9aa1b5;--accent: #ffd166;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px}.app{height:100%;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:10px 18px;background:var(--bg-2);border-bottom:1px solid var(--line)}.app-title{font-size:17px;margin:0;white-space:nowrap}.app-logo{margin-inline-end:4px}.app-nav{display:flex;gap:4px}.app-nav button,.era-toggle button{background:transparent;color:var(--text-dim);border:1px solid var(--line);padding:6px 14px;cursor:pointer;font-size:13px}.app-nav button:first-child,.era-toggle button:first-child{border-radius:8px 0 0 8px}.app-nav button:last-child,.era-toggle button:last-child{border-radius:0 8px 8px 0}[dir=rtl] .app-nav button:first-child,[dir=rtl] .era-toggle button:first-child{border-radius:0 8px 8px 0}[dir=rtl] .app-nav button:last-child,[dir=rtl] .era-toggle button:last-child{border-radius:8px 0 0 8px}.app-nav button.active,.era-toggle button.active{background:var(--accent);border-color:var(--accent);color:#1a1404;font-weight:600}.app-controls{margin-inline-start:auto;display:flex;align-items:center;gap:12px}.era-toggle{display:flex}.lang-select{background:var(--bg-3);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:13px}.app-intro{margin:10px 18px 0;color:var(--text-dim);max-width:1000px;line-height:1.45}.app-main{flex:1;min-height:0;display:flex}.page-area{flex:1;min-width:0;display:flex;flex-direction:column}.timeline-page{flex:1;min-height:0;display:flex;flex-direction:column;padding:10px 18px 6px}.tl-toolbar{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-bottom:6px}.tl-search{position:relative}.tl-search input{background:var(--bg-3);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:7px 12px;width:230px;font-size:13px}.tl-search-results{position:absolute;top:105%;inset-inline-start:0;z-index:30;background:var(--bg-3);border:1px solid var(--line);border-radius:8px;list-style:none;margin:0;padding:4px;width:230px;box-shadow:0 8px 24px #00000080}.tl-search-results button{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;color:var(--text);padding:7px 8px;cursor:pointer;border-radius:6px;font-size:13px;text-align:start}.tl-search-results button:hover{background:var(--bg-2)}.tl-zoom{display:flex;align-items:center;gap:8px;color:var(--text-dim);font-size:13px}.tl-zoom input{width:140px;accent-color:var(--accent)}.tl-legend{display:flex;gap:16px;color:var(--text-dim);font-size:12.5px}.legend-item{display:inline-flex;align-items:center;gap:6px}.legend-swatch{width:22px;height:10px;border-radius:3px;display:inline-block}.legend-swatch.exact{background:var(--accent)}.legend-swatch.est{background:repeating-linear-gradient(-45deg,var(--accent) 0 5px,transparent 5px 9px);border:1px dashed var(--accent);opacity:.85}.tl-hint{color:var(--text-dim);font-size:12.5px;margin:0 0 8px}.tl-scroll{flex:1;min-height:0;overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--bg-2)}.tl-axis{position:sticky;top:0;z-index:10;background:linear-gradient(var(--bg-2) 86%,transparent)}.tick-line{stroke:var(--line)}.tick-label{fill:var(--text-dim);font-size:10.5px}.event-dot{fill:var(--accent)}.event-label{fill:var(--accent);font-size:10.5px}.tl-body{position:relative;padding-bottom:14px}.tl-events-overlay{position:absolute;top:0;bottom:0;right:0;pointer-events:none}.event-line{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed rgba(255,209,102,.32)}.tl-row{display:flex;align-items:center;transition:opacity .18s}.tl-row.dim{opacity:.18}.tl-row.sel .tl-name-text{color:var(--accent);font-weight:600}.tl-name{position:sticky;left:0;z-index:5;flex:none;display:flex;align-items:center;gap:7px;height:100%;padding:0 10px 0 12px;background:var(--bg-2);border-right:1px solid var(--line);cursor:pointer;white-space:nowrap;overflow:hidden}.tl-name:hover .tl-name-text{color:var(--accent)}.tl-name-text{overflow:hidden;text-overflow:ellipsis;font-size:12.5px}.tl-name-years{margin-left:auto;color:var(--text-dim);font-size:11px}.dot{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block}.tl-track{position:relative;flex:none;height:100%}.tl-bar{position:absolute;top:5px;height:16px;border-radius:4px;background:var(--bar-color);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:filter .12s}.tl-bar:hover{filter:brightness(1.25)}.tl-bar.est{background:repeating-linear-gradient(-45deg,var(--bar-color) 0 5px,transparent 5px 9px);border:1px dashed var(--bar-color);opacity:.8}.tl-bar-label{font-size:10px;color:#0a0a0ed9;font-weight:700;pointer-events:none}.tl-bar.est .tl-bar-label{color:var(--text);text-shadow:0 0 4px #000}.tl-sources{color:var(--text-dim);font-size:11.5px;line-height:1.45;margin:8px 2px 4px}.tree-page{flex:1;min-height:0;display:flex;flex-direction:column;padding:10px 18px}.tree-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.tree-buttons{display:flex;gap:6px}.tree-buttons button{background:var(--bg-3);color:var(--text);border:1px solid var(--line);border-radius:8px;width:34px;height:30px;cursor:pointer;font-size:14px}.tree-buttons button:hover{border-color:var(--accent)}.tree-view{flex:1;min-height:0;border:1px solid var(--line);border-radius:10px;background:radial-gradient(circle at 1px 1px,rgba(255,255,255,.05) 1px,transparent 0) 0 0/26px 26px,var(--bg-2);overflow:hidden;cursor:grab;touch-action:none}.tree-view:active{cursor:grabbing}.tree-svg{width:100%;height:100%;display:block}.tree-edge{fill:none;stroke:#4a5168;stroke-width:1.4}.tree-node rect{fill:var(--bg-3);stroke-width:1.4;cursor:pointer;transition:filter .12s}.tree-node:hover rect{filter:brightness(1.35)}.tree-node.sel rect{fill:#3a3320;stroke-width:2.4}.node-name{fill:var(--text);font-size:12px;font-weight:600;pointer-events:none}.node-years{fill:var(--text-dim);font-size:10px;pointer-events:none}.node-name-big{fill:var(--text);font-size:19px;font-weight:600;pointer-events:none}.gen-label{fill:#444b61;font-size:11px;text-anchor:middle}.detail{position:relative;width:340px;flex:none;overflow-y:auto;background:var(--bg-2);border-inline-start:1px solid var(--line);padding:16px 18px 24px}.detail-close{position:absolute;top:8px;inset-inline-end:10px;background:none;border:none;color:var(--text-dim);font-size:22px;cursor:pointer;line-height:1}.detail-close:hover{color:var(--text)}.detail-head{display:flex;align-items:center;gap:9px}.detail-head .dot{width:11px;height:11px}.detail-head h2{margin:0;font-size:19px}.detail-group{font-size:12px;margin:4px 0 12px 20px;letter-spacing:.03em;text-transform:uppercase}.badge-est{color:var(--text-dim);text-transform:none}.detail-facts{display:flex;gap:10px;margin:0 0 12px}.detail-facts>div{flex:1;background:var(--bg-3);border-radius:8px;padding:8px 10px}.detail-facts dt,.detail-family dt{color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.detail-facts dd,.detail-family dd{margin:0;font-size:13px}.enoch-note{display:block;color:var(--accent);font-size:11px}.detail-note{color:var(--text);font-size:13px;line-height:1.5;background:var(--bg-3);border-inline-start:3px solid var(--accent);border-radius:6px;padding:9px 11px;margin:0 0 12px}.detail-family{margin:0 0 14px}.detail-family>div{margin-bottom:9px}.refs{color:var(--text-dim)}.plink{background:none;border:none;padding:0;color:#8ecbff;cursor:pointer;font-size:13px;text-decoration:none}.plink:hover{text-decoration:underline}.plain-names{color:var(--text-dim)}.overlap-list h3{font-size:13px;margin:0 0 8px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.overlap-list ul{list-style:none;margin:0;padding:0}.overlap-list li{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:4px 0;border-bottom:1px solid rgba(46,51,68,.6)}.overlap-years{color:var(--text-dim);font-size:11.5px;white-space:nowrap}@media(max-width:900px){.detail{position:fixed;inset-inline-end:0;top:0;bottom:0;z-index:50;box-shadow:-12px 0 30px #00000080}}
