:root{color-scheme:light;--page: #f9f9f7;--surface-1: #fcfcfb;--surface-2: #ffffff;--text-primary: #0b0b0b;--text-secondary: #52514e;--text-muted: #898781;--border: #e1e0d9;--border-strong: #c3c2b7;--series-1: #2a78d6;--series-2: #eda100;--series-3: #e87ba4;--series-4: #008300;--accent: #2a78d6;--favorite: #eda100;--danger: #d03b3b;font-family:system-ui,-apple-system,Segoe UI,sans-serif}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--page: #0d0d0d;--surface-1: #1a1a19;--surface-2: #222221;--text-primary: #ffffff;--text-secondary: #c3c2b7;--text-muted: #898781;--border: #2c2c2a;--border-strong: #383835;--series-1: #3987e5;--series-2: #c98500;--series-3: #d55181;--series-4: #199e70;--accent: #3987e5;--favorite: #c98500;--danger: #e66767}}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--text-primary)}#root{min-height:100vh;display:flex;flex-direction:column}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font-family:inherit;font-size:inherit}.app-nav{display:flex;align-items:center;gap:1.5rem;padding:.9rem 1.5rem;border-bottom:1px solid var(--border);background:var(--surface-1)}.app-nav .brand{font-weight:700;color:var(--text-primary);margin-right:auto}.app-nav a{color:var(--text-secondary);font-weight:500}.app-nav a.active{color:var(--accent)}.user-menu{display:flex;align-items:center;gap:.75rem}.user-email{color:var(--text-muted);font-size:.85rem}.app-main{flex:1;padding:1.5rem;max-width:1200px;width:100%;margin:0 auto}.card{background:var(--surface-2);border:1px solid var(--border);border-radius:8px}.btn{border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text-primary);border-radius:6px;padding:.4rem .8rem;cursor:pointer}.btn:hover{border-color:var(--accent)}.btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}input[type=text],input[type=search],select{border:1px solid var(--border-strong);border-radius:6px;padding:.4rem .6rem;background:var(--surface-2);color:var(--text-primary);max-width:100%}.venue-row{display:flex;flex-wrap:wrap;gap:.4rem}.filter-bar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1.25rem;padding:1rem}.filter-bar .field{display:flex;flex-direction:column;gap:.25rem}.filter-bar label{font-size:.75rem;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.venue-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .65rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface-2);cursor:pointer;font-size:.85rem;color:var(--text-secondary)}.venue-chip .dot{width:8px;height:8px;border-radius:50%}.venue-chip.selected{border-color:var(--dot-color, var(--accent));color:var(--text-primary);font-weight:600}.table-scroll{overflow-x:auto}.paper-table{width:100%;border-collapse:collapse}.paper-table th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);padding:.6rem .9rem;border-bottom:1px solid var(--border)}.paper-table td{padding:.7rem .9rem;border-bottom:1px solid var(--border);vertical-align:top}.paper-table tr:hover td{background:var(--page)}.venue-tag{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;color:var(--text-secondary);font-weight:600}.venue-tag .dot{width:8px;height:8px;border-radius:50%}.tag-pill{display:inline-block;padding:.15rem .55rem;border-radius:999px;background:var(--page);border:1px solid var(--border);font-size:.75rem;color:var(--text-secondary);margin:.1rem .25rem .1rem 0}.topic-pill{display:inline-block;padding:.15rem .55rem;border-radius:999px;background:var(--accent-soft, rgba(42, 120, 214, .12));border:1px solid var(--accent, #2a78d6);font-size:.75rem;font-weight:600;color:var(--accent, #2a78d6);margin:.1rem .25rem .1rem 0}.icon-btn{background:none;border:none;cursor:pointer;font-size:1.1rem;color:var(--text-muted);padding:.1rem .3rem}.icon-btn.active{color:var(--favorite)}.pagination{display:flex;align-items:center;gap:.75rem;margin-top:1rem;justify-content:center;color:var(--text-secondary);font-size:.9rem}.detail-header{padding:1.5rem;margin-bottom:1.25rem}.detail-header h1{margin:0 0 .5rem;font-size:1.4rem}.detail-meta{color:var(--text-secondary);font-size:.95rem;margin-bottom:.5rem}.detail-authors{color:var(--text-secondary)}.detail-links{margin-top:.75rem;display:flex;gap:1rem}.detail-section{padding:1.25rem;margin-bottom:1.25rem}.detail-section h3{margin:0 0 .75rem;font-size:.85rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted)}.chip-input{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;border:1px solid var(--border-strong);border-radius:6px;padding:.4rem;background:var(--surface-2)}.chip-input input{border:none;outline:none;flex:1;min-width:120px;background:transparent;color:var(--text-primary)}.chip{display:inline-flex;align-items:center;gap:.3rem;background:var(--page);border:1px solid var(--border);border-radius:999px;padding:.15rem .5rem;font-size:.8rem}.chip button{border:none;background:none;cursor:pointer;color:var(--text-muted);font-size:.9rem;line-height:1;padding:0}.toggle-row{display:flex;gap:1.5rem}.toggle-row label{display:flex;align-items:center;gap:.4rem;cursor:pointer}.graph-controls{display:flex;gap:1.5rem;align-items:flex-end;flex-wrap:wrap;padding:1rem 1.25rem;margin-bottom:1rem}.graph-layout{display:grid;grid-template-columns:1fr 340px;gap:1rem;height:calc(100vh - 260px);min-height:420px}.graph-canvas{position:relative;overflow:hidden}.graph-sidebar{padding:1rem;overflow-y:auto}.graph-sidebar h3{margin-top:0;font-size:.95rem}.graph-sidebar .paper-item{padding:.6rem 0;border-bottom:1px solid var(--border)}.graph-sidebar .paper-item:last-child{border-bottom:none}.graph-sidebar .paper-title{font-size:.88rem;font-weight:600;margin-bottom:.2rem}.graph-sidebar .paper-meta{font-size:.78rem;color:var(--text-muted)}.legend{display:flex;gap:1rem;flex-wrap:wrap;padding:.6rem 1.25rem;font-size:.82rem;color:var(--text-secondary)}.legend .item{display:flex;align-items:center;gap:.35rem}.legend .dot{width:10px;height:10px;border-radius:50%}.empty-state,.loading-state{padding:2rem;text-align:center;color:var(--text-muted)}.lineage-empty p{margin:0 0 .75rem;color:var(--text-secondary)}.lineage-error{color:var(--danger)!important}.lineage-heading{margin:1.25rem 0 .2rem;font-size:1rem}.lineage-heading:first-child{margin-top:0}.lineage-hint{margin:0 0 .5rem;font-size:.85rem;color:var(--text-muted)}.lineage-list{margin:0;padding-left:1.4rem}.lineage-item{padding:.4rem 0}.lineage-title{font-weight:600;font-size:.93rem}.lineage-meta{font-size:.8rem;color:var(--text-muted);margin-top:.15rem}.lineage-badge{margin:0 0 0 .4rem;font-size:.7rem;padding:.05rem .45rem}.lineage-timeline{list-style:none;margin:0;padding:0 0 0 .75rem;border-left:2px solid var(--border-strong)}.lineage-timeline li{display:flex;gap:.75rem;padding:.25rem 0;font-size:.9rem;position:relative}.lineage-timeline li:before{content:"";position:absolute;left:calc(-.75rem - 5px);top:.6rem;width:8px;height:8px;border-radius:50%;background:var(--border-strong)}.lineage-timeline .lineage-current{font-weight:600}.lineage-timeline .lineage-current:before{background:var(--accent)}.lineage-year{flex:0 0 2.6rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.lineage-more{margin-top:1.25rem}.lineage-more summary{cursor:pointer;font-weight:600;margin-bottom:.5rem}.lineage-footer{margin-top:1.25rem;font-size:.78rem;color:var(--text-muted)}.timeline-legend{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem;font-size:.8rem;color:var(--text-secondary);margin-bottom:.4rem}.timeline-legend .item{display:flex;align-items:center;gap:.35rem}.timeline-legend .hint{color:var(--text-muted)}.timeline-canvas{position:relative;width:100%}.timeline-canvas svg{display:block;overflow:visible}.timeline-grid,.timeline-lane-sep{stroke:var(--border);stroke-width:1}.timeline-tick{fill:var(--text-muted);font-size:11px;text-anchor:middle;font-variant-numeric:tabular-nums}.timeline-lane-label{fill:var(--text-secondary);font-size:12px;font-weight:600}.timeline-lane-count{fill:var(--text-muted);font-weight:400}.timeline-path{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;opacity:.55}.timeline-link{stroke:var(--accent);stroke-width:1;opacity:.6}.timeline-dot{fill:var(--text-muted);stroke:var(--surface-2);stroke-width:2}.timeline-dot.backbone{fill:var(--accent)}.timeline-dot.target{fill:var(--surface-2);stroke:var(--accent);stroke-width:3}.timeline-hit{fill:transparent}.timeline-node{cursor:pointer;outline:none}.timeline-node:focus-visible .timeline-dot{stroke:var(--text-primary)}.timeline-node.dimmed{opacity:.25}.timeline-tooltip{position:absolute;transform:translate(-50%);width:260px;padding:.5rem .65rem;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:6px;box-shadow:0 4px 14px #0000001f;pointer-events:none;z-index:2}.timeline-tooltip .title{font-size:.85rem;font-weight:600;color:var(--text-primary)}.timeline-tooltip .meta{font-size:.75rem;color:var(--text-muted);margin-top:.15rem}.timeline-listview{margin-top:.5rem;font-size:.85rem}.timeline-listview summary{cursor:pointer;color:var(--text-secondary)}.timeline-listview-lane .lane{font-weight:600;margin-top:.5rem}.timeline-listview-lane ul{margin:.2rem 0 0;padding-left:1.2rem;color:var(--text-secondary)}
