:root {
  --bg: #f2f4f7;
  --surface: #ffffff;
  --surface-soft: #f7f8fa;
  --ink: #171a1f;
  --muted: #717781;
  --line: #e5e7eb;
  --accent: #df4f3f;
  --accent-dark: #bf382e;
  --accent-soft: #fff0ed;
  --navy: #172338;
  --blue: #4f6ef7;
  --green: #34a477;
  --yellow: #e3a62f;
  --shadow: 0 12px 35px rgba(27, 32, 43, .07);
  --radius: 20px;
  --sidebar: 248px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--bg); font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif; line-height: 1.55; }
button, input, select, textarea { color: inherit; font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; }
body.dark { --bg:#12161d; --surface:#1a2029; --surface-soft:#222a35; --ink:#edf0f5; --muted:#9da7b6; --line:#303946; --accent-soft:#3b2424; --shadow:0 14px 40px rgba(0,0,0,.22); }

.sidebar { position: fixed; z-index: 20; inset: 0 auto 0 0; width: var(--sidebar); padding: 30px 20px 20px; background: var(--navy); color: #fff; display: flex; flex-direction: column; }
.brand { display: flex; gap: 12px; align-items: center; padding: 0 12px 33px; }
.brand strong { display: block; font-size: 18px; letter-spacing: .2px; }
.brand small { display: block; color: #8995aa; font-size: 9px; letter-spacing: 1.5px; margin-top: 1px; }
.brand-mark { width: 34px; height: 34px; display: grid; place-content: center; position: relative; transform: rotate(-8deg); }
.brand-mark i { position: absolute; width: 8px; border-radius: 9px; background: var(--accent); left: 13px; }
.brand-mark i:nth-child(1) { height: 32px; top: 1px; transform: rotate(45deg); }
.brand-mark i:nth-child(2) { height: 25px; top: 5px; transform: rotate(-45deg); }
.brand-mark i:nth-child(3) { width: 7px; height: 7px; border-radius: 50%; left: 25px; top: 2px; background: #fff; }
nav { display: grid; gap: 7px; }
nav a { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border-radius: 11px; color: #9da7b8; font-size: 14px; transition: .2s ease; }
nav a span { width: 20px; text-align: center; font-size: 18px; }
nav a:hover { color: #fff; background: rgba(255,255,255,.06); }
nav a.active { color: #fff; background: var(--accent); box-shadow: 0 8px 22px rgba(223,79,63,.25); }
.sidebar-foot { margin-top: auto; display: flex; gap: 8px; align-items: center; border-top: 1px solid rgba(255,255,255,.1); padding-top: 20px; }
.data-status { min-width: 0; display: flex; gap: 9px; align-items: center; flex: 1; }
.data-status strong,.data-status small { display: block; }
.data-status strong { font-size: 11px; font-weight: 600; }.data-status small { color:#8490a4; font-size:9px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background:#52d795; box-shadow:0 0 0 4px rgba(82,215,149,.12); }
.sidebar .ghost-btn { color:#fff; border-color:rgba(255,255,255,.16); }

main { margin-left: var(--sidebar); min-height: 100vh; }
.topbar { height: 92px; padding: 20px 4.2vw; display:flex; align-items:center; justify-content:space-between; background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(12px); position:sticky; top:0; z-index:10; border-bottom:1px solid transparent; }
.topbar h1 { margin:0; font-size:23px; line-height:1.2; }.eyebrow { color:var(--accent); font-weight:750; letter-spacing:1.6px; font-size:9px; text-transform:uppercase; }.topbar .eyebrow { margin:0 0 5px; color:var(--muted); }
.top-actions,.control-row,.hero-actions,.conference-toggles { display:flex; align-items:center; gap:12px; }
.global-search,.table-search { min-width:300px; height:42px; border:1px solid var(--line); border-radius:10px; background:var(--surface); display:flex; align-items:center; gap:9px; padding:0 12px; color:var(--muted); }
.global-search input,.table-search input { min-width:0; flex:1; border:0; outline:0; background:transparent; font-size:13px; }
kbd { border:1px solid var(--line); border-radius:5px; padding:1px 5px; font-size:9px; color:var(--muted); background:var(--surface-soft); }
.primary-btn,.ghost-btn,.text-btn,.icon-btn { border:0; display:inline-flex; align-items:center; justify-content:center; gap:7px; font-weight:650; }
.primary-btn { padding:11px 17px; border-radius:9px; background:var(--accent); color:#fff; font-size:13px; box-shadow:0 7px 18px rgba(223,79,63,.2); transition:.2s; }
.primary-btn:hover { background:var(--accent-dark); transform:translateY(-1px); }.primary-btn.wide { width:100%; margin-top:14px; }
.ghost-btn { padding:9px 13px; border:1px solid var(--line); background:transparent; border-radius:9px; color:var(--muted); }
.text-btn { padding:5px; background:transparent; color:var(--accent); font-size:12px; }.icon-btn { width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--muted);font-size:18px; }

.page { display:none; padding: 10px 4.2vw 58px; animation:fadeUp .35s ease; }.page.active { display:block; }
@keyframes fadeUp { from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none} }
.panel { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.hero { min-height:318px; position:relative; overflow:hidden; display:grid; grid-template-columns:1.08fr .92fr; background:linear-gradient(130deg,#fff 2%,#f7f0ed 58%,#eef1f6 100%); }
body.dark .hero { background:linear-gradient(130deg,#1c232d,#2a2021 60%,#1c2634); }
.hero-copy { padding:44px 50px; position:relative; z-index:2; }.pill { display:inline-flex; padding:5px 10px; border-radius:99px; color:var(--accent); background:var(--accent-soft); font-size:9px; letter-spacing:1.3px; font-weight:750; }
.hero h2,.about-hero h2 { margin:16px 0 13px; font-size:37px; line-height:1.26; letter-spacing:-1.3px; }.hero h2 em,.about-hero h2 em { color:var(--accent); font-style:normal; }.hero-copy p { max-width:560px; margin:0 0 24px; color:var(--muted); font-size:13px; }
.hero-visual { min-height:318px; position:relative; }.hero-visual svg { width:100%;height:100%;position:absolute;inset:0; }.hero-line { stroke:#c8ccd3;stroke-width:1;opacity:.65}.hero-node { fill:#fff;stroke:#cfd4db;stroke-width:1.5}.hero-node.hot{fill:var(--accent);stroke:#f7afa5}.orb{position:absolute;border-radius:50%;filter:blur(4px)}.orb-a{width:180px;height:180px;background:rgba(223,79,63,.11);right:50px;top:30px}.orb-b{width:120px;height:120px;background:rgba(62,96,160,.11);left:50px;bottom:10px}
.floating-chip { position:absolute; z-index:2; padding:9px 12px; border-radius:9px; background:rgba(255,255,255,.88); color:#30343b; backdrop-filter:blur(5px); box-shadow:0 7px 22px rgba(30,34,42,.12); font-size:11px; }.floating-chip b{color:var(--green);margin-left:7px}.chip-a{right:12%;top:18%}.chip-b{left:9%;top:51%}.chip-c{right:21%;bottom:13%}
.stats-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:18px 0; }.stat-card { padding:19px 20px; display:flex;align-items:center;gap:14px;box-shadow:none; }.stat-icon { width:41px;height:41px;border-radius:11px;display:grid;place-items:center;background:var(--surface-soft);font-size:18px;color:var(--accent)}.stat-card strong{display:block;font-size:23px;line-height:1.1}.stat-card small{color:var(--muted);font-size:10px}.stat-card i{font-style:normal;margin-left:auto;color:var(--green);font-size:9px;background:#ebf8f2;border-radius:20px;padding:3px 6px}
.dashboard-grid { display:grid;grid-template-columns:1.05fr .95fr;gap:18px; }.ranking-panel,.graph-panel,.recent-panel,.chart-panel,.race-panel,.table-panel,.queue-panel,.methodology { padding:25px; }.section-head { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.section-head h3{margin:2px 0 0;font-size:17px}.section-head select,select { padding:8px 31px 8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:11px;outline:none}.muted{color:var(--muted);font-size:11px;margin:-8px 0 8px}
.ranking-list{display:grid;gap:9px}.rank-row{display:grid;grid-template-columns:22px 130px 1fr 31px;align-items:center;gap:9px;font-size:11px}.rank-no{color:var(--muted);font-weight:700;text-align:center}.rank-row:nth-child(-n+3) .rank-no{color:var(--accent)}.rank-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-track{height:7px;background:var(--surface-soft);border-radius:9px;overflow:hidden}.rank-bar{height:100%;background:linear-gradient(90deg,var(--accent),#f08b70);border-radius:9px;animation:barGrow .6s ease both}@keyframes barGrow{from{width:0!important}}.rank-value{text-align:right;color:var(--muted)}
.ranking-controls{display:flex;align-items:center;gap:8px}.ranking-tabs{display:flex;padding:3px;border-radius:8px;background:#f1f5f9}.ranking-tabs button{height:28px;padding:0 9px;border:0;border-radius:6px;background:transparent;color:#64748b;font-size:9px}.ranking-tabs button.active{background:#fff;color:#2563eb;box-shadow:0 2px 7px rgba(15,23,42,.08)}.ranking-method{margin:-6px 0 12px;color:var(--muted);font-size:9px}.attention-empty{min-height:205px;display:grid;place-content:center;gap:7px;color:var(--muted);text-align:center}.attention-empty strong{color:var(--ink);font-size:13px}.attention-empty span{font-size:10px}
.keyword-graph{height:287px;position:relative;overflow:hidden;border-radius:14px;background:radial-gradient(circle at center,var(--accent-soft),transparent 57%)}.keyword-graph svg{width:100%;height:100%}.graph-edge{stroke:var(--line);stroke-width:1}.graph-node{cursor:pointer;transform-box:fill-box;transform-origin:center;transition:transform .22s ease,filter .22s ease}.graph-node:hover,.graph-node:focus{transform:scale(1.18);filter:brightness(1.08) drop-shadow(0 7px 8px rgba(37,99,235,.28));outline:none}.graph-node:hover circle,.graph-node:focus circle{stroke:#fff;stroke-width:3}.graph-node text{pointer-events:none;font-weight:650}.legend{display:flex;gap:15px;justify-content:center;margin-top:10px;color:var(--muted);font-size:9px}.legend span:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--dot);margin-right:5px}
.recent-panel{margin-top:18px}.paper-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.paper-card{padding:17px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft);cursor:pointer;transition:.2s}.paper-card:hover{transform:translateY(-2px);border-color:#d8aaa4}.paper-card h4{font-size:12px;line-height:1.45;margin:10px 0 8px}.paper-meta{color:var(--muted);font-size:9px}.conf-badge{display:inline-flex;padding:3px 7px;border-radius:5px;font-size:8px;font-weight:800;color:#fff}.conf-badge.CVPR{background:var(--accent)}.conf-badge.ICCV{background:var(--blue)}.conf-badge.ECCV{background:var(--green)}.conf-badge.other{background:var(--yellow)}

.page-intro{display:flex;align-items:flex-end;justify-content:space-between;margin:10px 0 22px}.page-intro h2{margin:0 0 5px;font-size:28px}.page-intro p{margin:0;color:var(--muted);font-size:12px}.compact{margin-top:0}.chart-panel{margin-top:5px}.conference-toggles label{font-size:10px;color:var(--muted)}.conference-toggles input{accent-color:var(--accent)}.trend-chart{height:340px}.trend-chart svg{width:100%;height:100%;overflow:visible}.grid-line{stroke:var(--line);stroke-dasharray:3 5}.axis-text{fill:var(--muted);font-size:9px}.trend-bar{cursor:pointer;opacity:.88;transition:opacity .18s}.trend-bar:hover{opacity:1}.chart-tooltip{position:fixed;z-index:40;background:#172338;color:#fff;padding:8px 10px;border-radius:7px;font-size:10px;pointer-events:none;box-shadow:var(--shadow)}.race-panel{margin-top:18px}.race-year{font-size:36px;color:var(--line)}.race-chart{display:grid;gap:11px;min-height:240px}.race-row{display:grid;grid-template-columns:155px 1fr 35px;gap:11px;align-items:center;font-size:11px}.race-bar{height:22px;border-radius:5px;background:linear-gradient(90deg,var(--bar-color),color-mix(in srgb,var(--bar-color) 60%,#fff));transition:width .7s ease;min-width:4px}.timeline{height:4px;background:var(--line);margin:24px 5px 5px;position:relative;border-radius:4px}.timeline span{position:absolute;top:-6px;width:14px;height:14px;border:3px solid var(--surface);background:var(--line);border-radius:50%;transform:translateX(-50%)}.timeline span.active{background:var(--accent)}
.race-title-row{display:flex;align-items:center;gap:12px;margin-top:2px}.race-title-row h3{margin:0}.race-title-row .primary-btn{height:34px;padding:0 12px;border-radius:8px;box-shadow:none;font-size:12px}.race-speed-label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10px}.race-speed-label select{height:34px;padding:0 25px 0 9px}.race-hint{margin:7px 0 0;color:var(--muted);font-size:11px}.race-row{width:100%;border:0;background:transparent;color:var(--ink);text-align:left}.race-row:hover{color:#2563eb}.not-held-label{font-size:7px;fill:#94a3b8}

.table-panel{padding-bottom:14px}.table-tools{display:flex;gap:10px;margin-bottom:18px}.table-search{flex:1;min-width:220px}.table-tools select{min-width:110px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:11px}th{text-align:left;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.7px;padding:10px;border-bottom:1px solid var(--line)}td{padding:14px 10px;border-bottom:1px solid var(--line);vertical-align:middle}td:first-child{color:var(--muted);white-space:nowrap}.paper-title-cell{max-width:330px}.paper-title-cell strong{display:block;font-size:11px;margin-bottom:3px}.paper-title-cell small{color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.keyword-tags{display:flex;gap:4px;flex-wrap:wrap;max-width:260px}.tag{font-size:8px;padding:3px 6px;border-radius:5px;background:var(--surface-soft);color:var(--muted)}.row-actions{display:flex;gap:4px}.row-actions button{border:0;background:transparent;color:var(--muted);font-size:13px;padding:5px;border-radius:5px}.row-actions button:hover{background:var(--surface-soft);color:var(--accent)}.pagination{display:flex;justify-content:space-between;align-items:center;padding:15px 5px 0;color:var(--muted);font-size:10px}.pagination button{width:27px;height:27px;border:1px solid var(--line);background:var(--surface);border-radius:6px;margin-left:4px;font-size:10px}.pagination button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.empty-state{text-align:center!important;color:var(--muted);padding:50px!important}

.import-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.import-card{padding:28px;position:relative}.import-card h3{font-size:20px;margin:4px 0}.import-card>p{color:var(--muted);font-size:11px;margin:0 0 22px}.step{position:absolute;right:25px;top:17px;font-size:38px;color:var(--line);font-weight:800}.import-card label,dialog label{display:block;color:var(--muted);font-size:10px;margin:11px 0}.import-card input,.import-card textarea,dialog input,dialog textarea,dialog select{display:block;width:100%;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);padding:10px;margin-top:6px;outline:none;font-size:12px;resize:vertical}.import-card input:focus,.import-card textarea:focus,dialog input:focus,dialog textarea:focus{border-color:var(--accent)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dropzone{border:1px dashed #cfd3da;border-radius:10px;display:grid;place-items:center;text-align:center;position:relative;padding:17px;color:var(--muted);margin-top:10px}.dropzone strong{font-size:10px}.dropzone small{font-size:8px}.dropzone input{position:absolute;inset:0;opacity:0;cursor:pointer}.dropzone.dragging{border-color:var(--accent);background:var(--accent-soft)}.import-result{margin-top:13px;padding:11px;border-radius:8px;background:var(--surface-soft);font-size:10px}.queue-panel{margin-top:18px}.import-log{display:grid;gap:8px}.log-row{display:flex;align-items:center;justify-content:space-between;padding:10px;border-radius:8px;background:var(--surface-soft);font-size:10px}.log-row small{color:var(--muted)}

.about-hero{text-align:center;padding:46px 20px}.about-hero h2{font-size:38px}.about-hero p{color:var(--muted)}.about-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.about-grid article{padding:26px}.about-grid h3{font-size:15px;margin:15px 0 5px}.about-grid p{font-size:11px;color:var(--muted);margin:0}.feature-icon{display:grid;width:38px;height:38px;border-radius:10px;place-items:center;background:var(--accent-soft);color:var(--accent);font-size:18px}.methodology{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:20px}.pipeline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pipeline span{padding:8px 10px;background:var(--surface-soft);border-radius:7px;font-size:9px}.pipeline b{color:var(--accent)}.conference-info{margin-top:18px;display:grid;grid-template-columns:repeat(3,1fr);overflow:hidden}.conf{padding:25px;border-right:1px solid var(--line)}.conf:last-child{border:0}.conf strong,.conf span,.conf small{display:block}.conf strong{font-size:25px;color:var(--accent)}.conf span{font-size:11px;font-weight:650}.conf small{color:var(--muted);font-size:9px;margin-top:4px}.danger-link{display:block;margin:24px auto 0;border:0;background:transparent;color:var(--accent);font-size:10px}

dialog{width:min(590px,90vw);border:1px solid var(--line);border-radius:17px;background:var(--surface);color:var(--ink);padding:0;box-shadow:0 30px 80px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(12,18,28,.58);backdrop-filter:blur(3px)}dialog form,#paper-detail{padding:26px}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start}.dialog-head h3{margin:2px 0;font-size:21px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.detail-head{padding-right:38px}.detail-head h2{font-size:22px;line-height:1.35}.detail-close{position:absolute;right:20px;top:20px}.detail-abstract{color:var(--muted);font-size:12px;line-height:1.8;margin:18px 0}.toast-region{position:fixed;z-index:100;right:23px;bottom:23px;display:grid;gap:8px}.toast{background:#172338;color:#fff;padding:11px 15px;border-radius:9px;box-shadow:var(--shadow);font-size:11px;animation:toastIn .25s ease}.toast.error{background:#9d322a}@keyframes toastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

@media(max-width:1050px){:root{--sidebar:205px}.hero{grid-template-columns:1fr}.hero-visual{display:none}.dashboard-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.paper-cards{grid-template-columns:1fr 1fr}.global-search{display:none}.import-grid{grid-template-columns:1fr}.methodology{display:block}.pipeline{margin-top:15px}}
@media(max-width:700px){:root{--sidebar:0}.sidebar{position:fixed;inset:auto 10px 10px;width:calc(100% - 20px);height:58px;padding:7px;border-radius:14px;flex-direction:row;box-shadow:0 10px 35px rgba(0,0,0,.3)}.brand,.sidebar-foot{display:none}.sidebar nav{display:flex;width:100%;justify-content:space-around}.sidebar nav a{font-size:0;display:grid;place-items:center;padding:7px 12px}.sidebar nav a span{font-size:19px}.topbar{height:75px;padding:14px 18px}.topbar .eyebrow{display:none}.topbar h1{font-size:19px}.top-actions>a{padding:9px;font-size:0}.top-actions>a:before{content:'＋';font-size:17px}.page{padding:8px 14px 85px}.hero-copy{padding:30px 24px}.hero h2,.about-hero h2{font-size:29px}.stats-grid{grid-template-columns:1fr 1fr}.stat-card{padding:14px}.paper-cards,.about-grid,.conference-info{grid-template-columns:1fr}.paper-cards .paper-card:nth-child(3){display:none}.table-tools{flex-wrap:wrap}.table-search{width:100%;flex-basis:100%}.page-intro{align-items:flex-start}.control-row{align-items:stretch;flex-direction:column}.race-row{grid-template-columns:110px 1fr 25px}.methodology{padding:20px}.pipeline b{transform:rotate(90deg)}.conference-info .conf{border-right:0;border-bottom:1px solid var(--line)}}

/* Visual alignment with the CVTNA Modao prototype. The application remains hand-written. */
:root {
  --bg: #f6f7f9;
  --accent: #2563eb;
  --accent-dark: #1d4ed8;
  --accent-soft: #eff6ff;
  --blue: #4f46e5;
  --green: #059669;
  --yellow: #f59e0b;
  --radius: 16px;
}

.sidebar { display: none; }
main { margin-left: 0; min-height: 100vh; }
.topbar { height: 80px; padding: 0 max(32px, 6.25vw); background: #fff; border-bottom: 1px solid #e5e7eb; position: sticky; top: 0; }
.site-logo { flex: 0 0 auto; color: #111827; font-size: 28px; font-weight: 800; letter-spacing: 1px; margin-right: 52px; }
#main-nav { display: flex; align-items: stretch; gap: 42px; height: 80px; }
#main-nav a { position: relative; display: flex; align-items: center; padding: 0; border-radius: 0; color: #374151; font-size: 16px; font-weight: 500; }
#main-nav a:hover { color: #2563eb; background: transparent; }
#main-nav a.active { color: #2563eb; background: transparent; box-shadow: none; }
#main-nav a.active::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: #2563eb; }
.top-actions { margin-left: auto; gap: 12px; }
.global-search { width: min(430px, 32vw); min-width: 300px; height: 42px; padding: 0; gap: 0; overflow: hidden; border-radius: 8px; border-color: #cbd5e1; }
.global-search > span { padding-left: 13px; }
.global-search input { height: 40px; padding: 0 12px; font-size: 13px; }
#global-search-submit { height: 40px; padding: 0 17px; border: 0; color: #fff; background: #2563eb; font-size: 13px; font-weight: 650; }
.top-actions > .primary-btn { height: 42px; padding: 0 17px; border-radius: 8px; background: #2563eb; box-shadow: none; }
.guide-btn { height: 42px; padding: 0 17px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #93c5fd; border-radius: 8px; color: #2563eb; background: #fff; font-size: 14px; font-weight: 650; cursor: pointer; }
.guide-btn:hover { border-color: #2563eb; background: #eff6ff; }
.account-btn { height: 42px; min-width: 58px; padding: 0 13px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; color: #fff; background: #111827; font-size: 13px; font-weight: 650; }
.account-btn.signed-in { max-width: 100px; overflow: hidden; color: #2563eb; background: #eff6ff; text-overflow: ellipsis; white-space: nowrap; }
.theme-toggle { width: 38px; height: 38px; padding: 0; }
.page { width: min(1680px, calc(100% - 64px)); margin: 0 auto; padding: 32px 0 58px; }
.panel { border-color: #e5e7eb; box-shadow: 0 6px 20px rgba(15,23,42,.06); }
.hero { min-height: 292px; background: #fff; grid-template-columns: 1.08fr .92fr; }
.hero-copy { padding: 28px 0 24px 60px; }
.hero .pill { color: #2563eb; background: #eff6ff; font-size: 14px; letter-spacing: 0; padding: 0 15px; height: 32px; }
.hero h2 { margin: 10px 0 6px; font-size: 40px; line-height: 1.28; letter-spacing: -.7px; }
.hero h2 em { color: #2563eb; }
.hero-copy p { max-width: 710px; font-size: 16px; line-height: 1.65; }
.hero-actions { margin-top: 14px; }
.hero-actions .primary-btn { background: #2563eb; border-radius: 8px; box-shadow: none; }
.hero-actions .text-btn { color: #2563eb; font-size: 14px; }
.hero-visual { min-height: 252px; margin: 20px 20px 20px 0; border-radius: 16px; background: #eff6ff; overflow: hidden; position: relative; padding: 20px 30px; }
.hero-visual-label { color: #64748b; font-size: 13px; letter-spacing: 1.2px; font-weight: 650; }
.conference-tiles { height: calc(100% - 25px); display: flex; align-items: center; justify-content: space-between; gap: 26px; }
.conference-tile { width: 31%; min-height: 126px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; border: 1px solid #dbeafe; border-radius: 12px; background: #fff; box-shadow: 0 8px 18px rgba(37,99,235,.12); text-align: center; transition: transform .2s, box-shadow .2s; }
.conference-tile:hover { transform: translateY(-4px); box-shadow: 0 12px 24px rgba(37,99,235,.18); }
.conference-tile strong { font-size: 28px; line-height: 1; }
.conference-tile span { color: #64748b; font-size: 13px; line-height: 1.45; }
.conference-tile.cvpr strong { color: #2563eb; }
.conference-tile.iccv strong { color: #7c3aed; }
.conference-tile.eccv strong { color: #059669; }
.orb-a { background: rgba(37,99,235,.09); }
.orb-b { background: rgba(96,165,250,.15); }
.hero-node.hot { fill: #2563eb; stroke: #93c5fd; }
.floating-chip { color: #374151; }
.stats-grid { gap: 24px; margin: 20px 0; }
.stat-card { min-height: 100px; padding: 20px; border-radius: 16px; box-shadow: 0 6px 20px rgba(15,23,42,.06); }
.stat-icon { color: #2563eb; background: #eff6ff; }
.stat-card i { color: #059669; background: #ecfdf5; }
.dashboard-grid { gap: 24px; }
.ranking-panel, .graph-panel, .recent-panel { padding: 28px; }
.section-head h3 { font-size: 20px; }
.rank-row:nth-child(-n+3) .rank-no { color: #2563eb; }
.rank-bar { background: #2563eb; }
.keyword-graph { height: 310px; background: #f8fbff; }
.recent-panel { margin-top: 24px; }
.conf-badge.CVPR { background: #2563eb; }
.conf-badge.ICCV { background: #7c3aed; }
.conf-badge.ECCV { background: #059669; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.conference-back { display: inline-flex; margin-bottom: 18px; color: #2563eb; font-size: 14px; font-weight: 650; }
.conference-hero { min-height: 250px; padding: 44px 52px; display: flex; align-items: center; justify-content: space-between; border-radius: 20px; overflow: hidden; color: #fff; box-shadow: 0 10px 30px rgba(37,99,235,.16); }
.conference-hero.cvpr { background: linear-gradient(135deg,#1d4ed8,#60a5fa); }
.conference-hero.iccv { background: linear-gradient(135deg,#6d28d9,#a78bfa); }
.conference-hero.eccv { background: linear-gradient(135deg,#047857,#34d399); }
.conference-hero .pill { color: #fff; background: rgba(255,255,255,.17); }
.conference-hero h2 { margin: 12px 0 0; font-size: 70px; line-height: 1; }
.conference-hero p { margin: 12px 0 0; font-size: 17px; opacity: .9; }
.conference-hero > strong { padding: 12px 18px; border: 1px solid rgba(255,255,255,.28); border-radius: 99px; background: rgba(255,255,255,.13); font-size: 16px; }
.conference-detail-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; margin-top: 22px; }
.conference-detail-grid article { min-height: 220px; padding: 30px; }
.conference-detail-grid h3 { margin: 0 0 14px; font-size: 20px; }
.conference-detail-grid p { margin: 0 0 18px; color: var(--muted); font-size: 14px; line-height: 1.9; }
.conference-links { margin-top: 22px; padding: 24px 30px; display: flex; align-items: center; gap: 14px; }
.conference-links > div { margin-right: auto; }
.conference-links h3, .conference-links p { margin: 0; }
.conference-links p { color: var(--muted); font-size: 12px; }

.onboarding-dialog { width: min(1040px,92vw); max-width: none; }
.onboarding-content { padding: 34px; }
.onboarding-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; }
.onboarding-head h2 { margin: 12px 0 5px; font-size: 30px; }
.onboarding-head p { margin: 0; color: var(--muted); }
.onboarding-steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; margin: 28px 0; }
.onboarding-steps article { padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-soft); }
.onboarding-steps article > span { color: #2563eb; font-weight: 800; letter-spacing: 1px; }
.onboarding-steps h3 { margin: 14px 0 8px; }
.onboarding-steps p { min-height: 68px; margin: 0 0 18px; color: var(--muted); font-size: 13px; }
.onboarding-steps a { color: #2563eb; font-size: 13px; font-weight: 650; }
.onboarding-actions { display: flex; justify-content: flex-end; gap: 10px; }
.guide-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:28px 0 18px}.guide-progress i{height:4px;position:relative;border-radius:4px;background:var(--line)}.guide-progress i.active{background:#2563eb}.guide-progress span{position:absolute;top:-22px;right:0;color:var(--muted);font-size:9px;font-style:normal}.guide-stage{min-height:250px;padding:30px;border:1px solid var(--line);border-radius:16px;background:var(--surface-soft)}.guide-stage>span{color:#2563eb;font-size:10px;font-weight:800;letter-spacing:1px}.guide-stage h3{margin:13px 0 8px;font-size:25px}.guide-stage p{max-width:720px;margin:0;color:var(--muted);font-size:13px;line-height:1.8}.guide-step-demo{min-height:86px;margin-top:24px;padding:18px;display:flex;align-items:center;justify-content:center;gap:12px;border-radius:12px;background:#eff6ff}.guide-step-demo b,.guide-step-demo span{padding:10px 15px;border:1px solid #bfdbfe;border-radius:8px;background:#fff;color:#2563eb;font-size:12px}.onboarding-actions{margin-top:20px}.onboarding-actions #skip-guide{margin-right:auto}.onboarding-actions button:disabled{opacity:.4;cursor:not-allowed}
.pagination #page-buttons { display: flex; align-items: center; gap: 8px; }
.pagination .page-nav { width: 32px; height: 32px; margin: 0; border-color: #cbd5e1; color: #2563eb; font-size: 19px; }
.pagination .page-nav:hover:not(:disabled) { border-color: #2563eb; background: #eff6ff; }
.pagination .page-nav:disabled { cursor: not-allowed; opacity: .38; }
.page-jump { height: 32px; display: flex; align-items: center; gap: 7px; padding: 0 10px; border: 1px solid #cbd5e1; border-radius: 7px; background: var(--surface); color: var(--muted); }
.page-jump input { width: 48px; padding: 0; border: 0; outline: 0; background: transparent; color: var(--ink); text-align: right; font-size: 11px; font-weight: 700; appearance: textfield; }
.page-jump input::-webkit-inner-spin-button { appearance: none; }
.page-jump span { white-space: nowrap; font-size: 11px; }
.library-layout { display: grid; grid-template-columns: 230px minmax(570px,1fr) 300px; gap: 20px; align-items: start; }
.library-groups { position: sticky; top: 104px; min-height: 540px; overflow: hidden; }
.library-groups-head { height: 70px; padding: 0 20px; display: flex; align-items: center; border-bottom: 1px solid var(--line); }
.library-groups-head h3 { margin: 0; font-size: 18px; }
.library-groups-head button { width: 30px; height: 30px; margin-left: auto; border: 0; border-radius: 7px; background: #eff6ff; color: #2563eb; font-size: 19px; }
.group-list { padding: 10px; }
.group-section-label { display: block; padding: 11px 10px 6px; color: #94a3b8; font-size: 10px; font-weight: 700; letter-spacing: 1px; }
.group-item { width: 100%; height: 42px; padding: 0 10px; display: flex; align-items: center; border: 0; border-radius: 8px; background: transparent; color: #475569; font-size: 12px; text-align: left; }
.group-item span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.group-item b { margin-left: auto; padding: 2px 7px; border-radius: 10px; background: #f1f5f9; color: #64748b; font-size: 9px; }
.group-item:hover, .group-item.active { color: #2563eb; background: #eff6ff; }
.group-item.active b { color: #2563eb; background: #dbeafe; }
.custom-group-row { display: grid; grid-template-columns: minmax(0,1fr) 26px; align-items: center; }
.group-more { width: 26px; height: 30px; border: 0; border-radius: 6px; color: #94a3b8; background: transparent; }
.group-more:hover { color: #2563eb; background: #eff6ff; }
.group-storage { margin: 18px; padding: 13px; border-radius: 10px; background: #f8fafc; }
.group-storage > span { color: #475569; font-size: 11px; }
.group-storage > div { height: 5px; margin: 8px 0; overflow: hidden; border-radius: 5px; background: #e2e8f0; }
.group-storage i { display: block; width: 62%; height: 100%; border-radius: inherit; background: #2563eb; }
.group-storage small { color: #94a3b8; font-size: 9px; }
.paper-group-tag { display: inline-flex; max-width: 100px; padding: 3px 7px; overflow: hidden; border-radius: 5px; background: #eff6ff; color: #2563eb; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.library-layout .table-panel { min-width: 0; }
.library-layout .table-tools { flex-wrap: wrap; }
.library-layout .table-panel { padding: 20px 18px 14px; }
#paper-table tr[data-paper-id] { cursor: pointer; transition: background .16s, box-shadow .16s; }
#paper-table tr[data-paper-id]:hover { background: #f8fbff; }
#paper-table tr[data-paper-id].selected { background: #eff6ff; box-shadow: inset 3px 0 #2563eb; }
.paper-preview { position: sticky; top: 104px; min-height: 540px; padding: 20px; overflow: hidden; }
.paper-preview-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.paper-preview-id { color: var(--muted); font-size: 9px; }
.paper-preview-cover { min-height: 245px; padding: 24px 20px; display: flex; flex-direction: column; border: 1px solid #dbeafe; border-radius: 12px; background: linear-gradient(145deg,#eff6ff,#fff 62%); box-shadow: 0 12px 28px rgba(37,99,235,.1); }
.paper-preview-cover > span { color: #2563eb; font-size: 9px; font-weight: 750; letter-spacing: .8px; }
.paper-preview-cover h3 { margin: auto 0; font-size: 17px; line-height: 1.5; }
.paper-preview-cover small { color: var(--muted); font-size: 9px; }
.paper-preview-meta { margin: 17px 0 13px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.paper-preview-meta div { min-width: 0; }
.paper-preview-meta dt { margin-bottom: 5px; color: var(--muted); font-size: 9px; }
.paper-preview-meta dd { margin: 0; color: var(--ink); font-size: 11px; }
.paper-preview-abstract { max-height: 86px; margin: 14px 0; overflow: auto; color: var(--muted); font-size: 10px; line-height: 1.7; }
.paper-preview .keyword-tags { max-height: 58px; overflow: hidden; }
.paper-preview-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 18px; }
.paper-preview-actions button { min-width: 0; padding: 10px 8px; }
.paper-preview-empty { min-height: 495px; display: grid; place-items: center; color: var(--muted); font-size: 11px; text-align: center; }
.search-empty{display:grid;justify-items:center;gap:10px}.search-empty strong{color:var(--ink);font-size:13px}.search-empty span{font-size:10px}.search-empty .primary-btn{margin-top:5px}.batch-enrich{display:flex!important;align-items:center;gap:8px;margin:13px 0 0!important;color:var(--ink)!important}.batch-enrich input{width:15px!important;margin:0!important;accent-color:#2563eb}.batch-enrich span{font-size:10px}
.paper-context-menu { position: fixed; z-index: 120; width: 172px; padding: 6px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); box-shadow: 0 18px 45px rgba(15,23,42,.2); }
.paper-context-menu[hidden] { display: none; }
.paper-context-menu button { width: 100%; height: 38px; padding: 0 10px; display: flex; align-items: center; gap: 10px; border: 0; border-radius: 7px; color: var(--ink); background: transparent; font-size: 11px; text-align: left; }
.paper-context-menu button:hover,.paper-context-menu button:focus { outline: 0; color: #2563eb; background: #eff6ff; }
.paper-context-menu button.danger { color: #dc2626; }
.paper-context-menu button.danger:hover,.paper-context-menu button.danger:focus { color: #b91c1c; background: #fef2f2; }
.paper-context-menu button span { width: 16px; font-size: 14px; text-align: center; }
.keyword-drawer-backdrop{position:fixed;z-index:108;inset:0;background:rgba(15,23,42,.22);backdrop-filter:blur(2px)}.keyword-drawer-backdrop[hidden],.keyword-drawer[hidden]{display:none}.keyword-drawer{position:fixed;z-index:109;top:0;right:0;width:min(430px,92vw);height:100vh;padding:30px;overflow:auto;background:var(--surface);box-shadow:-20px 0 55px rgba(15,23,42,.2);animation:drawerIn .22s ease}.keyword-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.keyword-drawer-head h2{margin:6px 0 0;font-size:26px}.keyword-drawer>p{margin:10px 0 20px;color:var(--muted);font-size:11px}.keyword-drawer-papers{display:grid;gap:10px}.keyword-drawer-papers>button{padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);text-align:left}.keyword-drawer-papers>button:hover{border-color:#93c5fd;background:#eff6ff}.keyword-drawer-papers>button>span,.keyword-drawer-papers strong,.keyword-drawer-papers small{display:block}.keyword-drawer-papers .conf-badge{display:inline-flex;width:auto}.keyword-drawer-papers strong{margin:8px 0 5px;font-size:12px;line-height:1.45}.keyword-drawer-papers small{color:var(--muted);font-size:9px}@keyframes drawerIn{from{transform:translateX(100%)}to{transform:none}}
@media(max-width:1350px){.library-layout{grid-template-columns:220px minmax(0,1fr)}.paper-preview{position:relative;top:auto;grid-column:2}}
.auth-page { min-height: calc(100vh - 80px); display: none; align-items: center; }
.auth-page.active { display: flex; }
.auth-shell { width: min(1320px,100%); min-height: 720px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1.03fr; overflow: hidden; }
.auth-intro { position: relative; overflow: hidden; padding: 68px 64px; color: #fff; background: linear-gradient(145deg,#1d4ed8,#2563eb 58%,#60a5fa); }
.auth-intro::before,.auth-intro::after { content:""; position:absolute; border-radius:50%; background:rgba(255,255,255,.08); }
.auth-intro::before { width:300px;height:300px;right:-105px;top:-90px; }.auth-intro::after { width:220px;height:220px;left:-85px;bottom:-70px; }
.auth-intro > * { position: relative; z-index: 1; }
.auth-intro .pill { color:#fff;background:rgba(255,255,255,.15); }
.auth-intro h2 { margin:26px 0 14px;font-size:38px;line-height:1.3; }
.auth-intro > p { max-width:490px;color:#dbeafe;font-size:15px;line-height:1.8; }
.auth-benefits { margin-top:44px;display:grid;gap:16px; }
.auth-benefits article { min-height:72px;padding:13px 18px;display:flex;align-items:center;border:1px solid rgba(255,255,255,.2);border-radius:12px;background:rgba(255,255,255,.09); }
.auth-benefits b { width:42px;height:42px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.16);font-size:18px; }
.auth-benefits div { margin-left:14px; }.auth-benefits strong,.auth-benefits small { display:block; }.auth-benefits small { margin-top:4px;color:#dbeafe;font-size:11px; }
.auth-account { padding:56px 82px;background:var(--surface); }
.auth-account h2 { margin:0;font-size:28px; }.auth-subtitle { margin:7px 0 24px;color:var(--muted);font-size:13px; }
.auth-tabs { height:48px;padding:4px;display:grid;grid-template-columns:1fr 1fr;border-radius:10px;background:#f1f5f9; }
.auth-tabs button { border:0;border-radius:7px;color:#64748b;background:transparent;font-weight:650; }.auth-tabs button.active { color:#2563eb;background:#fff;box-shadow:0 2px 7px rgba(15,23,42,.08); }
.auth-form { display:none;margin-top:24px; }.auth-form.active { display:block; }
.auth-form label { display:block;margin:0 0 15px;color:#374151;font-size:12px;font-weight:650; }
.auth-form label > input:not([type="checkbox"]) { display:block;width:100%;height:48px;margin-top:7px;padding:0 14px;border:1px solid #cbd5e1;border-radius:9px;outline:0;background:var(--surface); }
.auth-form label > input:focus { border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1); }
.remember-row { display:flex!important;align-items:center;gap:7px;color:#64748b!important;font-weight:400!important; }.remember-row input { accent-color:#2563eb; }
.auth-divider { height:42px;display:flex;align-items:center;color:#94a3b8;font-size:10px; }.auth-divider::before,.auth-divider::after { content:"";height:1px;flex:1;background:var(--line); }.auth-divider span { margin:0 12px; }
.guest-button { width:100%;height:44px;border:1px solid #cbd5e1;border-radius:9px;background:var(--surface);color:#475569;font-weight:650; }
.auth-notice { margin-top:16px;padding:11px 13px;border-radius:9px;background:#eff6ff;color:#475569;font-size:10px;line-height:1.7; }.auth-notice b { color:#2563eb; }
.logged-in-panel { padding-top:90px;text-align:center; }.logged-in-panel h2 { margin:18px 0 8px; }.logged-in-panel p { color:var(--muted); }.logged-in-panel .wide { width:100%;margin-top:14px; }

@media (max-width: 1500px) {
  .topbar { padding-inline: 6vw; }
  .site-logo { margin-right: 34px; }
  #main-nav { gap: 30px; }
  .global-search { width: 360px; min-width: 280px; }
  .theme-toggle { display: none; }
}

@media (max-width: 1050px) {
  .site-logo { margin-right: 24px; }
  #main-nav { gap: 20px; }
  .global-search { min-width: 190px; width: 270px; }
  .theme-toggle { display: none; }
  .conference-detail-grid { grid-template-columns: 1fr; }
}
