/* PREVZATO z produkcniho index.html skriptem scripts/sync_lineage.py.
   NEEDITOVAT — oprava patri do produkce a pak sem pres npm run sync. */
/* ===== Lineage tab (scoped) ===== */
#lineageView{--serif:'Cormorant Garamond',serif;--sans:'DM Sans',sans-serif;--mono:'IBM Plex Mono',monospace;}
#lineageView .lineage-history{padding:8px 2px 4px;border-top:1px solid var(--line-strong);margin-top:6px;}
/* Tokens taken from the live Atlas (mtor-atlas.org) */
  #lineageView a{color:var(--teal-deep);text-decoration:none;border-bottom:1px solid rgba(108,168,178,.25)}
#lineageView a:hover{border-bottom-color:var(--teal)}
#lineageView :focus-visible{outline:2px solid var(--teal);outline-offset:3px}
#lineageView .wrap{max-width:1560px;margin:0 auto;padding:0 32px}
#lineageView header{padding:44px 0 26px;border-bottom:1px solid var(--line)}
#lineageView .eyebrow{font-family:var(--mono);font-size:var(--fs-micro,11px);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 12px}
#lineageView .eyebrow b{color:var(--teal);font-weight:600}
#lineageView h2{font-family:var(--serif);font-weight:700;font-size:var(--fs-display,clamp(30px,4.2vw,42px));line-height:1.1;margin:0 0 14px;letter-spacing:-0.01em}
#lineageView .lede{max-width:var(--measure,68ch);color:var(--ink-soft);margin:0 0 28px;font-size:var(--fs-lead,17px)}
#lineageView .lede strong{color:var(--ink);font-weight:600}
#lineageView .lede .hb{color:var(--tier-b);font-weight:600}
#lineageView .stats{display:flex;flex-wrap:wrap;gap:34px;margin:0}
#lineageView .stat .n{font-family:var(--serif);font-size:30px;font-weight:700;line-height:1;display:block}
#lineageView .stat .n.warn{color:var(--danger)}
#lineageView .stat .l{font-family:var(--mono);font-size:var(--fs-micro,11px);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-top:7px}
#lineageView .controls{padding:16px 0;display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-bottom:1px solid var(--line)}
#lineageView .chip{font-family:var(--mono);font-size:var(--fs-caption,13px);letter-spacing:.05em;background:var(--paper);color:var(--ink-soft);
        border:1px solid var(--line);border-radius:1px;padding:6px 12px;cursor:pointer}
#lineageView .chip:hover{border-color:var(--line-strong);color:var(--ink)}
#lineageView .chip[aria-pressed="true"]{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}
#lineageView .chip.solo{margin-left:auto}
#lineageView .chip.solo[aria-pressed="true"]{background:var(--tier-b);border-color:var(--tier-b)}
#lineageView main{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:28px;align-items:start;padding:0 0 50px}
#lineageView .canvas-wrap{margin:0 0 8px;}
#lineageView .canvas{height:min(70vh,620px);overflow:auto;border:1px solid var(--line);background:var(--paper);cursor:grab;position:relative;padding:18px;}
#lineageView .canvas.dragging{cursor:grabbing;user-select:none;}
#lineageView .lane-header-sticky{position:sticky;top:0;left:0;z-index:3;background:var(--paper);pointer-events:none;}
#lineageView .lhs-item{position:absolute;top:6px;transform:translateX(-50%);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#lineageView .lhs-item .idx{font-family:var(--mono);font-size:1em;letter-spacing:.12em;color:var(--teal);text-transform:uppercase;font-weight:500;}
#lineageView .lhs-item .nm{font-family:var(--mono);font-size:1em;letter-spacing:.12em;color:var(--ink);text-transform:uppercase;font-weight:500;}
#lineageView .lhs-item .nt{font-family:var(--sans);font-size:.95em;color:var(--ink-soft);display:block;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#lineageView .canvas svg{display:block}
/* rendered 1:1 and scrolled — never scaled down, so labels stay legible */
  #lineageView .hint{font-family:var(--mono);font-size:var(--fs-micro,11px);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 6px}
#lineageView .zoom-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 8px;}
#lineageView .zoom-bar .hint{margin:0;}
#lineageView .zoom-controls{display:flex;gap:4px;flex-shrink:0;}
#lineageView .zoom-btn{min-width:32px;text-align:center;font-weight:700;padding:5px 10px;}
#lineageView .lane-rule{stroke:var(--line);stroke-width:1}
#lineageView .lane-head{font-family:var(--mono);font-size:11px;letter-spacing:.12em;fill:var(--ink);text-transform:uppercase;font-weight:500}
#lineageView .lane-head .idx{fill:var(--teal)}
#lineageView .lane-note{font-family:var(--sans);font-size:11.5px;fill:var(--ink-soft)}
#lineageView .yr{font-family:var(--mono);font-size:11px;fill:var(--ink-soft)}
#lineageView .yr-rule{stroke:var(--line);stroke-dasharray:1 5}
#lineageView .edge{fill:none;stroke:var(--line-strong);stroke-opacity:.5}
#lineageView .edge.converges{stroke:var(--teal);stroke-opacity:.6}
#lineageView .edge.contradicts{stroke:var(--danger);stroke-opacity:.85;stroke-dasharray:7 5}
#lineageView .edge.opens{stroke:var(--teal);stroke-opacity:.4;stroke-dasharray:2 4}
#lineageView .edge.lit{stroke-opacity:1;stroke-width:2.6}
#lineageView .edge.dim{stroke-opacity:.08}
#lineageView .node{cursor:pointer}
#lineageView .node .glyph{stroke:rgba(0,0,0,.45);stroke-width:1}
#lineageView .node .hit{fill:transparent}
#lineageView .node.t-a .glyph{fill:var(--tier-a)}
#lineageView .node.t-b .glyph{fill:var(--tier-b)}
#lineageView .node.t-c .glyph{fill:var(--tier-c)}
#lineageView .node.t-d .glyph{fill:var(--tier-d)}
#lineageView .node.nul .glyph{fill:var(--paper);stroke:var(--danger);stroke-width:2.4}
#lineageView .node.rev .glyph{fill:var(--paper);stroke:var(--danger);stroke-width:2}
#lineageView .node.bud .glyph{fill:none;stroke:var(--teal);stroke-width:1.5;stroke-dasharray:3 3}
#lineageView .card{fill:var(--paper-raised);stroke:var(--line);stroke-width:1}
#lineageView .node.t-b .card{stroke:rgba(47,111,168,.55)}
#lineageView .node.nul .card, #lineageView .node.rev .card{stroke:rgba(180,68,46,.5)}
#lineageView .node.bud .card{fill:none;stroke:rgba(108,168,178,.3);stroke-dasharray:3 3}
#lineageView .tether{fill:none;stroke:var(--line);stroke-width:1}
#lineageView .lbl{font-family:var(--sans);font-size:13px;font-weight:500;fill:var(--ink)}
#lineageView .card-yr{font-family:var(--mono);font-size:10px;fill:var(--ink-soft)}
#lineageView .node.bud .lbl{fill:var(--teal-deep);font-style:italic}
#lineageView .node:hover .card, #lineageView .node.sel .card{fill:#FAF8F5;stroke:var(--ink)}
#lineageView .node.sel .glyph{stroke:var(--ink);stroke-width:2.4}
#lineageView .node.dim{opacity:.16}
#lineageView .bud-pulse{transform-box:fill-box;transform-origin:center;animation:lineagePulse 3.4s ease-in-out infinite}
#lineageView .gap-band{fill:var(--danger);fill-opacity:.045;stroke:var(--danger);stroke-opacity:.3;stroke-dasharray:3 4}
#lineageView .gap-lbl{font-family:var(--mono);font-size:11px;letter-spacing:.12em;fill:var(--danger);text-transform:uppercase;font-weight:500}
#lineageView .gap-sub{font-family:var(--sans);font-size:12px;fill:var(--ink-soft)}
#lineageView .panel{position:sticky;top:18px;background:var(--paper-raised);border:1px solid var(--line);border-radius:1px;
         padding:20px;box-shadow:0 1px 5px rgba(0,0,0,.06);min-height:300px}
#lineageView .panel .empty{color:var(--ink-soft)}
#lineageView .badge{display:inline-block;font-family:var(--mono);font-size:var(--fs-micro,11px);letter-spacing:.1em;text-transform:uppercase;
         padding:3px 7px;border-radius:1px;margin:0 5px 9px 0;border:1px solid var(--line);color:var(--ink-soft)}
#lineageView .badge.tier{color:var(--paper);border:none}
#lineageView .badge.tier.a{background:var(--tier-a)}
#lineageView .badge.tier.b{background:var(--tier-b)}
#lineageView .badge.tier.c{background:var(--tier-c)}
#lineageView .badge.tier.d{background:var(--tier-d)}
#lineageView .badge.tier.q{background:var(--teal)}
#lineageView .panel h2{font-family:var(--serif);font-size:19px;font-weight:700;line-height:1.25;margin:5px 0 6px}
#lineageView .cite{font-family:var(--mono);font-size:var(--fs-caption,13px);color:var(--ink-soft);margin:0 0 14px;line-height:1.6}
#lineageView .panel h3{font-family:var(--mono);font-size:var(--fs-micro,11px);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin:15px 0 5px;font-weight:600}
#lineageView .panel p{margin:0;font-size:var(--fs-small,15px)}
#lineageView .open-note{color:var(--danger)}
#lineageView .rel{font-size:var(--fs-caption,13px);margin:4px 0;color:var(--ink-soft);cursor:pointer}
#lineageView .rel:hover{color:var(--ink)}
#lineageView .rel .r{font-family:var(--mono);font-size:var(--fs-micro,11px);letter-spacing:.06em;color:var(--teal-deep);margin-right:6px}
#lineageView .rel .r.contradicts{color:var(--danger)}
#lineageView .links{margin-top:15px;padding-top:12px;border-top:1px solid var(--line);font-family:var(--mono);font-size:var(--fs-micro,11px)}
#lineageView .legend{display:flex;flex-wrap:wrap;gap:22px;padding:0 0 36px;font-family:var(--mono);font-size:var(--fs-caption,13px);color:var(--ink-soft)}
#lineageView .legend div{display:flex;align-items:center;gap:7px}
#lineageView .sw{width:12px;height:12px;border-radius:1px;display:inline-block}
#lineageView footer{border-top:1px solid var(--line);padding:22px 0 60px;color:var(--ink-soft);font-size:var(--fs-small,15px);max-width:80ch}
#lineageView code{font-family:var(--mono);font-size:var(--fs-caption,13px);background:#F3F1EE;padding:1px 4px}
@media (max-width:1000px){
#lineageView main{grid-template-columns:1fr}
#lineageView .panel{position:static}
#lineageView .wrap{padding:0 18px}
}
@media (prefers-reduced-motion:reduce){
#lineageView *{animation:none!important;transition:none!important}
}
/* The single biggest source of mobile overflow in this codebase.
   Grid and flex children default to min-width:auto, which refuses to
   shrink below their content — so one 940px SVG stretched .center,
   .rail-left and #entityDetail to 964px at every width.
   Measured before this rule: 619-674px of horizontal overflow on the
   Pathway tab, 1696-1751px on Timeline. */
.grid>*,.mx-grid>*,.intro-cols>*,.oq-wrap>*,.evidence-grid>*,
.about-flex>*,#lineageView main>*,.mx-head>*,.studies-head>*,
.topbar>*,.bio-head>*,.ipy-row>*,
.studies-head-right>*,.mx-routebar>*{min-width:0;}
@media (max-width:768px){
/* the timeline's zoom chips were 32px squares - below the 44px minimum */
  #lineageView .zoom-btn,#lineageView .chip.zoom-btn{min-width:44px;min-height:44px;font-size:15px;
    display:inline-flex;align-items:center;justify-content:center;}
#lineageView .zoom-controls{gap:8px;}
#lineageView .zoom-bar{flex-wrap:wrap;gap:8px;}
#lineageView .canvas{height:min(62vh,460px);touch-action:pan-x pan-y;}
}
@media (max-width:430px){
#lineageView .canvas{height:min(58vh,400px);}
}