/* 开源风向 — ink & gold editorial. 设计语言与每日 HTML 日报一致。 */
:root{
  color-scheme:dark;
  --bg:#080A0E; --bg2:#0C0F15; --surface:#12161D; --surface2:#171C24; --card:#12161D;
  --line:rgba(255,255,255,.075); --line2:rgba(255,255,255,.14);
  --ink:#EDEFF4; --body:#C3CAD6; --muted:#98A2B3; --dim:#6B7484;
  --gold:#E5B95C; --gold-ink:#231A05; --ember:#FF7043; --teal:#3FB6A8; --red:#FF5F56;
  --violet:#A78BFA;
  --shadow:0 18px 50px rgba(0,0,0,.45);
  --ease:cubic-bezier(.22,1,.36,1);
  --serif:"Songti SC","Noto Serif SC","Source Han Serif SC","Songti TC",Georgia,serif;
  --sans:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  --mono:"SF Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
:root[data-theme=light]{
  color-scheme:light;
  --bg:#F7F4EE; --bg2:#F2EDE3; --surface:#FFFDF9; --surface2:#F1ECE2; --card:#FFFDF9;
  --line:rgba(26,23,18,.11); --line2:rgba(26,23,18,.2);
  --ink:#1A1712; --body:#4A443A; --muted:#7A7264; --dim:#9A9184;
  --gold:#A9761F; --gold-ink:#FFFDF9; --ember:#C2501F; --teal:#12756A; --red:#B23A2E;
  --violet:#6C4FD0;
  --shadow:0 16px 40px rgba(50,40,20,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{
  margin:0;background:
    radial-gradient(1100px 520px at 10% -10%,color-mix(in srgb,var(--gold) 9%,transparent),transparent 62%),
    radial-gradient(900px 460px at 92% 2%,color-mix(in srgb,var(--teal) 7%,transparent),transparent 64%),
    var(--bg);
  color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.75;
  -webkit-font-smoothing:antialiased;
  display:flex;flex-direction:column;min-height:100vh;
}
:root[data-theme=light] body{
  background:
    radial-gradient(1000px 480px at 8% -8%,rgba(169,118,31,.10),transparent 60%),
    radial-gradient(820px 420px at 94% 0%,rgba(18,117,106,.06),transparent 62%),
    var(--bg);
}
::selection{background:var(--gold);color:var(--gold-ink)}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
button{cursor:pointer;color:inherit;background:none;border:0}
button:disabled{cursor:default}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
button,a,input,select{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button{transition:color .18s,border-color .18s,background .18s,transform .2s var(--ease)}

/* ---------- 骨架 ---------- */
header,main,footer{width:100%;max-width:1140px;margin:0 auto;padding-left:34px;padding-right:34px}
main{flex:1 0 auto}
.header{
  min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px;
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}
.brand-icon{
  display:grid;place-items:center;width:30px;height:30px;border-radius:8px;
  background:linear-gradient(135deg,#F2CE7C,var(--gold));color:var(--gold-ink);
  font-size:18px;line-height:1;font-weight:700;
  transition:transform .3s var(--ease),filter .2s;
}
.brand:hover .brand-icon{transform:rotate(-8deg);filter:brightness(1.08)}
.brand>span:last-child{font-family:var(--serif);font-size:19px;font-weight:600;letter-spacing:.02em;line-height:1.2}
.brand small{
  display:block;font-family:var(--mono);font-size:8.5px;font-weight:400;
  letter-spacing:.22em;color:var(--dim);margin-top:3px;
}
nav{display:flex;gap:22px;align-items:center}
nav a{
  position:relative;font-size:13.5px;color:var(--muted);padding:6px 0;
  transition:color .18s;
}
nav a:hover{color:var(--ink)}
nav a.active{color:var(--ink)}
nav a.active:after{
  content:"";position:absolute;left:50%;bottom:-2px;transform:translateX(-50%);
  width:4px;height:4px;border-radius:50%;background:var(--gold);
}
.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.theme-toggle,.rss{
  display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:5px 11px;
  border:1px solid var(--line);border-radius:999px;font-size:11.5px;color:var(--muted);
  transition:border-color .18s,color .18s,background .18s;
}
.theme-toggle:hover,.rss:hover{border-color:var(--line2);color:var(--ink);background:color-mix(in srgb,var(--ink) 4%,transparent)}
main{animation:page-in .45s var(--ease)}
footer{
  margin-top:64px;padding-top:22px;padding-bottom:34px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;gap:18px;
  color:var(--dim);font-size:11.5px;letter-spacing:.02em;
}
.footer-brand{font-family:var(--serif);font-size:13.5px;color:var(--ink)}
.skip-link{position:fixed;top:-100px;left:20px;z-index:60;padding:9px 15px;background:var(--gold);color:var(--gold-ink);border-radius:8px;font-size:13px}
.skip-link:focus{top:14px}

/* ---------- 通用排版 ---------- */
.serif,h1,h2,h3,.daily-story h3,.page-title h1,.archive-card h2{font-family:var(--serif)}
.eyebrow{
  display:flex;align-items:center;gap:8px;font-family:var(--mono);
  font-size:10.5px;letter-spacing:.2em;color:var(--dim);text-transform:uppercase;
}
.dot{width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px color-mix(in srgb,var(--gold) 14%,transparent)}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin:44px 0 16px}
.section-head h2{font-size:21px;font-weight:600;letter-spacing:-.01em;margin:0;line-height:1.4}
.section-head h2 small{
  font-family:var(--mono);font-size:9.5px;font-weight:400;letter-spacing:.16em;
  color:var(--dim);margin-left:10px;text-transform:uppercase;vertical-align:2px;
}
.text-link{font-size:11.5px;color:var(--dim);letter-spacing:.02em;transition:color .18s;white-space:nowrap}
.text-link:hover{color:var(--gold)}
.pill{
  display:inline-block;padding:2px 8px;border:1px solid var(--line);border-radius:5px;
  font-size:10.5px;color:var(--muted);letter-spacing:.02em;
}
.button{
  display:inline-flex;align-items:center;gap:9px;padding:9px 16px;border-radius:8px;
  background:linear-gradient(135deg,#F2CE7C,var(--gold));color:var(--gold-ink);
  font-size:13px;font-weight:600;letter-spacing:.01em;
  transition:filter .18s,transform .2s var(--ease),box-shadow .2s;
}
.button:hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 6px 18px color-mix(in srgb,var(--gold) 25%,transparent)}
.button span{transition:transform .2s}
.button:hover span{transform:translate(2px,-2px)}

/* ---------- 首页 Hero ---------- */
.hero{
  padding:54px 0 40px;display:grid;grid-template-columns:1.22fr .88fr;gap:52px;align-items:center;
  border-bottom:1px solid var(--line);
}
.hero h1{
  font-size:clamp(34px,4.4vw,52px);line-height:1.2;letter-spacing:-.02em;
  font-weight:600;margin:20px 0 20px;
}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero p{
  font-size:16px;color:var(--body);margin:0;max-width:44ch;line-height:1.85;
  padding-left:16px;border-left:2px solid var(--gold);
}
.hero-meta{display:flex;gap:16px;flex-wrap:wrap;color:var(--dim);font-size:11.5px;margin-top:24px;font-family:var(--mono);letter-spacing:.04em}
.hero-meta span+span:before{content:"·";margin-right:16px;color:var(--line2)}
.hero-art{
  border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,var(--surface2),var(--surface));
  padding:20px 22px;box-shadow:var(--shadow);
}
.signal-top{
  display:flex;align-items:center;justify-content:space-between;
  padding-bottom:13px;border-bottom:1px solid var(--line);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--dim);
}
.signal-mark{width:6px;height:6px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px color-mix(in srgb,var(--teal) 14%,transparent)}
.signal-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:15px;font-size:13px}
.signal-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--body);font-family:var(--mono);font-size:12.5px}
.signal-row b{font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--red);white-space:nowrap}
.signal-bottom{
  display:flex;justify-content:space-between;font-family:var(--mono);font-size:10px;
  letter-spacing:.06em;color:var(--dim);border-top:1px solid var(--line);margin-top:18px;padding-top:12px;
}

/* ---------- 概览数字 ---------- */
.stats{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  border-bottom:1px solid var(--line);margin-bottom:8px;
}
.stat{display:block;padding:22px 20px 20px 0;border-right:1px solid var(--line)}
.stat:last-child{border-right:0;padding-right:0}
.stat-label{font-size:11.5px;color:var(--dim);letter-spacing:.04em}
.stat-value{font-size:30px;font-weight:600;line-height:1.3;letter-spacing:-.02em;color:var(--gold);font-variant-numeric:tabular-nums}
.stat-note{font-size:10.5px;color:var(--dim);letter-spacing:.02em}
.stat-icon{display:none}

/* ---------- 首页两栏 ---------- */
.columns{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:38px;align-items:start}
.daily-story{
  border:1px solid var(--line);border-radius:14px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--gold) 5%,var(--surface2)),var(--surface));
  padding:26px 26px 22px;margin-bottom:6px;
}
.story-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--gold);text-transform:uppercase}
.daily-story h3{font-size:25px;font-weight:600;line-height:1.45;letter-spacing:-.01em;margin:14px 0 14px}
.daily-story p{font-size:15.5px;line-height:1.9;color:var(--body);margin:0}
.story-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:22px}

/* ---------- 精选卡片（带语言色封面） ---------- */
.picks-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pick{
  border:1px solid var(--line);border-radius:14px;overflow:hidden;
  background:linear-gradient(180deg,var(--surface2),var(--card));
  display:flex;flex-direction:column;min-width:0;
  transition:transform .22s var(--ease),border-color .22s,box-shadow .22s;
}
.pick:hover{transform:translateY(-3px);border-color:var(--line2);box-shadow:var(--shadow)}
.pick-cover{
  position:relative;height:96px;padding:0 16px;display:flex;align-items:flex-end;gap:10px;
  background:
    repeating-linear-gradient(115deg,rgba(255,255,255,.022) 0 1px,transparent 1px 9px),
    radial-gradient(130% 170% at 4% -12%,var(--tint,transparent),transparent 62%),
    var(--bg2);
  border-bottom:1px solid var(--line);
}
.pick-cover img{width:32px;height:32px;border-radius:9px;object-fit:cover;background:var(--surface);margin-bottom:12px;box-shadow:0 3px 10px rgba(0,0,0,.35)}
.pick-cover .pc-name{
  flex:1;min-width:0;background:none;border:0;padding:0;text-align:left;cursor:pointer;
  font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--ink);
  margin-bottom:10px;line-height:1.45;word-break:break-word;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  transition:color .18s;
}
.pick-cover .pc-name:hover{color:var(--gold)}
.pick-cover .pc-meta{position:absolute;right:12px;top:11px;display:flex;gap:6px;align-items:center}
.pick-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:9px;flex:1}
.pick h3{font-size:14.5px;font-weight:600;line-height:1.45;margin:0;overflow-wrap:anywhere;font-family:var(--mono)}
.pick p{font-size:13px;line-height:1.75;color:var(--muted);margin:0;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.pick-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;font-size:11px;color:var(--dim);font-family:var(--mono)}
.pick-bottom .stars{color:var(--muted)}
.pick-top{display:none}
.repo-icon{display:none}

/* ---------- 评分色块 ---------- */
.score{
  display:inline-flex;align-items:center;justify-content:center;gap:4px;
  min-width:24px;height:20px;padding:0 7px;border-radius:5px;
  font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:0;
  background:linear-gradient(135deg,#F2CE7C,var(--gold));color:var(--gold-ink);
}
.score[data-score="2"]{background:transparent;border:1px solid color-mix(in srgb,var(--teal) 55%,transparent);color:var(--teal)}
.score[data-score="1"]{background:transparent;border:1px solid var(--line2);color:var(--muted)}
.score[data-score="0"]{background:transparent;border:1px solid color-mix(in srgb,var(--red) 30%,transparent);color:color-mix(in srgb,var(--red) 62%,var(--muted))}

/* ---------- 侧栏 ---------- */
.sidebar-card{border:1px solid var(--line);border-radius:14px;background:var(--card);padding:20px;margin-bottom:16px}
.sidebar-card h3{font-size:14.5px;font-weight:600;margin:0 0 4px;font-family:var(--serif)}
.caption{font-size:11.5px;color:var(--dim);line-height:1.8;margin:0 0 16px}
.heat-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:9px;align-items:center;margin:14px 0 12px}
.heat-rank{font-family:var(--mono);font-size:10.5px;color:var(--dim)}
.heat-title{font-size:12.5px;overflow-wrap:anywhere;font-family:var(--mono)}
.heat-value{font-family:var(--mono);font-size:11.5px;color:var(--red);font-weight:600}
.heat-track{height:3px;background:color-mix(in srgb,var(--ink) 7%,transparent);border-radius:99px;overflow:hidden;margin-top:7px}
.heat-bar{height:100%;border-radius:99px;background:linear-gradient(90deg,color-mix(in srgb,var(--gold) 45%,transparent),var(--gold))}
.observation{padding:13px 0;border-bottom:1px solid var(--line)}
.observation:last-child{border:0;padding-bottom:0}
.observation b{display:block;font-size:12.5px;font-weight:600;margin-bottom:5px;line-height:1.6;color:var(--ink)}
.observation p{font-size:11.5px;line-height:1.8;color:var(--dim);margin:0}
.subscribe-card{background:linear-gradient(180deg,var(--surface2),var(--card))}
.subscribe-card p{font-size:12.5px;line-height:1.85;color:var(--muted)}
.subscribe-card .eyebrow{color:var(--gold);margin-bottom:10px}

/* ---------- 筛选与标签页 ---------- */
.filterbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.tabs{
  --tab-index:0;isolation:isolate;position:relative;display:inline-grid;
  grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:9px;
  background:var(--surface);padding:3px;
}
.tabs:before{
  content:"";position:absolute;z-index:-1;left:3px;top:3px;
  width:calc((100% - 6px)/3);height:calc(100% - 6px);
  background:var(--card);border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.25);
  transform:translateX(calc(var(--tab-index)*100%));transition:transform .28s var(--ease);
}
.tabs button{
  width:74px;padding:5px 10px;border:0;background:transparent;
  font-size:12.5px;color:var(--muted);border-radius:6px;
}
.tabs button.active{color:var(--ink);font-weight:600}
.tabs button.active:after{content:"";display:inline-block;vertical-align:middle;width:3px;height:3px;border-radius:50%;background:var(--gold);margin-left:5px}
.filters{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.filters select,.search-field{
  background:var(--card);border:1px solid var(--line);border-radius:8px;
  color:var(--body);min-height:36px;transition:border-color .18s,box-shadow .18s;
}
.filters select{padding:5px 9px;font-size:11.5px;max-width:140px;cursor:pointer}
.search-field{display:flex;align-items:center;gap:6px;padding:0 10px}
.search-field:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 12%,transparent)}
.search-field svg{width:14px;height:14px;flex-shrink:0;color:var(--dim)}
.search-field input{background:transparent;border:0;outline:none;font-size:12px;color:var(--ink);width:112px;padding:8px 0;min-width:0}
.search-field input::placeholder{color:var(--dim)}
.search-field input::-webkit-search-cancel-button{-webkit-appearance:none}
.clear-search{padding:0;color:var(--dim);font-size:15px;width:18px;line-height:1}
.clear-search[hidden]{display:none}
.results-meta{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:11px;color:var(--dim);margin:0 2px 10px;font-family:var(--mono);letter-spacing:.03em}
.results-meta strong{font-weight:600;color:var(--body)}

/* ---------- 排行榜 ---------- */
.ranking{border-top:1px solid var(--line);background:transparent;border-radius:0;overflow:visible}
.table-head,.repo-row{display:grid;grid-template-columns:36px minmax(0,1fr) 104px;align-items:center;gap:14px;padding:14px 2px}
.table-head{
  font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:var(--dim);
  text-transform:uppercase;padding:9px 2px;border-bottom:1px solid var(--line);
}
.table-head>:last-child{text-align:right}
.repo-row{position:relative;border-bottom:1px solid var(--line);transition:background .16s}
.repo-row:hover{background:color-mix(in srgb,var(--ink) 3%,transparent)}
.repo-row:before{display:none}
.repo-row:last-child{border-bottom:0}
.repo-main{display:grid;grid-template-columns:26px minmax(0,1fr);gap:11px;align-items:start}
.avatar{width:26px;height:26px;border-radius:7px;object-fit:cover;background:var(--surface);margin-top:2px}
.rank-num{font-family:var(--mono);font-size:13px;color:var(--dim);align-self:start;margin-top:2px;text-align:right}
.repo-row:nth-child(-n+4) .rank-num{color:var(--gold);font-weight:600}
.repo-name{font-family:var(--mono);font-size:13.5px;font-weight:600;line-height:1.55;overflow-wrap:anywhere}
.repo-desc{font-size:12.5px;color:var(--muted);line-height:1.7;margin:4px 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.repo-meta{display:flex;gap:11px;flex-wrap:wrap;align-items:center;font-size:10.5px;color:var(--dim);font-family:var(--mono)}
.repo-meta .details-button{font-size:10.5px;color:var(--dim);font-family:var(--mono)}
.repo-meta .details-button:hover{color:var(--gold)}
.language-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px;background:var(--muted);vertical-align:1px}
.gain{text-align:right;font-variant-numeric:tabular-nums}
.gain b{display:block;font-family:var(--mono);font-size:15px;font-weight:700;color:var(--red);letter-spacing:-.01em}
.gain small{font-family:var(--mono);font-size:9.5px;color:var(--dim);letter-spacing:.08em}
.rank-change{color:var(--teal)}
.board-note{font-size:10.5px;color:var(--dim);line-height:1.9;padding:12px 2px 8px;font-family:var(--mono);letter-spacing:.02em}
.details-button{padding:0;background:none;border:0;font-size:12.5px;line-height:inherit;color:var(--body);text-align:left;transition:color .18s}
.details-button:hover{color:var(--gold)}
.pick h3 .details-button,.repo-name .details-button,.report-pick h3 .details-button{font-size:inherit;font-weight:inherit;color:var(--ink);font-family:inherit}
.pick h3 .details-button:hover,.repo-name .details-button:hover,.report-pick h3 .details-button:hover{color:var(--gold)}
.empty{padding:56px 20px;text-align:center;color:var(--muted);font-size:14px}
.loading{padding:110px 20px;text-align:center;color:var(--muted);font-size:14px}
.loading:before{content:"";display:block;margin:0 auto 16px;width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--gold);border-radius:50%;animation:spin 1s linear infinite}

/* ---------- 页面标题 ---------- */
.page-title{padding:44px 0 28px;border-bottom:1px solid var(--line)}
.page-title h1{font-size:clamp(28px,3.4vw,38px);font-weight:600;line-height:1.28;letter-spacing:-.02em;margin:14px 0 10px}
.page-title p{font-size:13.5px;color:var(--muted);margin:0;line-height:1.85;max-width:62ch}
.wide-board{margin-top:26px;border:1px solid var(--line);border-radius:14px;background:var(--card);padding:18px 20px 8px}
.wide-board .filterbar{margin-bottom:8px}
.wide-board .repo-row{padding-top:18px;padding-bottom:18px}
.wide-board .repo-desc{-webkit-line-clamp:3}
.back{display:inline-block;color:var(--dim);font-size:11.5px;margin-bottom:14px;font-family:var(--mono);letter-spacing:.04em}
.back:hover{color:var(--gold)}

/* ---------- 日报页 ---------- */
.report-layout{max-width:860px;margin:0 auto;padding-top:36px}
.report-layout .page-title{padding-top:0}
.report-lead{
  font-family:var(--serif);font-size:18px;line-height:1.9;color:var(--body);
  margin:28px 0 6px;padding-left:18px;border-left:2px solid var(--gold);
}
.report-layout .stats{margin:30px 0 8px}
.report-section{margin:46px 0 0}
.report-section h2{
  font-size:20px;font-weight:600;margin:0 0 18px;padding-top:14px;
  border-top:1px solid var(--line2);letter-spacing:-.01em;
}
.report-section h2 span{font-family:var(--mono);font-size:11px;color:var(--gold);letter-spacing:.1em;margin-right:10px;font-weight:400}
.report-section h3{font-size:15px;font-weight:600;margin:24px 0 10px;font-family:var(--serif)}
.report-section p,.report-section li{font-size:13.5px;line-height:1.9;color:var(--body)}
.report-section .details-button{font-size:13px;overflow-wrap:anywhere}
.report-pick{
  border:1px solid var(--line);border-radius:14px;overflow:hidden;margin:16px 0;
  background:linear-gradient(180deg,var(--surface2),var(--card));
}
.report-pick .rp-cover{height:80px;display:flex;align-items:flex-end;gap:10px;padding:0 18px 12px;border-bottom:1px solid var(--line);
  background:repeating-linear-gradient(115deg,rgba(255,255,255,.022) 0 1px,transparent 1px 9px),
  radial-gradient(130% 170% at 2% -20%,var(--tint,transparent),transparent 64%),var(--bg2)}
.report-pick .rp-cover img{width:28px;height:28px;border-radius:8px;object-fit:cover;background:var(--surface)}
.report-pick .rp-cover b,.report-pick .rp-name{font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--ink);background:none;border:0;padding:0;text-align:left;cursor:pointer}
.report-pick .rp-name:hover{color:var(--gold)}
.report-pick .rp-body{padding:18px}
.report-pick h3{margin:0 0 10px;font-family:var(--mono);font-size:14px;overflow-wrap:anywhere}
.report-pick p{margin:7px 0}
.report-pick p b{color:var(--gold);font-weight:600;font-size:11px;letter-spacing:.06em;font-family:var(--mono);text-transform:uppercase;margin-right:4px}
.command{
  display:block;background:var(--bg2);border:1px solid var(--line);border-radius:8px;
  padding:12px 14px;font-family:var(--mono);font-size:11.5px;line-height:1.75;
  overflow:auto;white-space:pre-wrap;word-break:break-all;color:var(--body);
}
.board-rows{border-top:1px solid var(--line);margin-bottom:10px}
.board-row{display:grid;grid-template-columns:26px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
.board-row .br-rank{font-family:var(--mono);font-size:12px;color:var(--dim);text-align:right}
.board-row .br-name{font-family:var(--mono);font-size:12.5px;font-weight:600;overflow-wrap:anywhere}
.board-row .br-note{font-size:12px;color:var(--muted);line-height:1.7;margin-top:2px}
.board-row .br-gain{font-family:var(--mono);font-size:11.5px;color:var(--red);font-weight:600}
.movers{margin-top:4px}
.mover{display:grid;grid-template-columns:240px minmax(0,1fr) 78px;align-items:center;gap:12px;padding:6px 0}
.mover .mv-name{font-family:var(--mono);font-size:11.5px;color:var(--body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mover .mv-track{height:8px;background:color-mix(in srgb,var(--ink) 6%,transparent);border-radius:99px;overflow:hidden}
.mover .mv-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,color-mix(in srgb,var(--ember) 55%,transparent),var(--ember))}
.mover.in-week .mv-fill{background:linear-gradient(90deg,color-mix(in srgb,var(--violet) 50%,transparent),var(--violet))}
.mover.in-month .mv-fill{background:linear-gradient(90deg,color-mix(in srgb,var(--teal) 45%,transparent),var(--teal))}
.mover .mv-val{font-family:var(--mono);font-size:11px;color:var(--red);text-align:right;font-variant-numeric:tabular-nums}
.mover .mv-val small{color:var(--dim);margin-left:4px}
.matrix{width:100%;max-width:620px;border-collapse:collapse;font-size:12px;margin-top:2px}
.matrix th{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;color:var(--dim);font-weight:500;text-transform:uppercase;padding:0 0 10px;text-align:center;width:52px}
.matrix th.l{text-align:left;width:auto}
.matrix td{padding:8px 0;border-top:1px solid var(--line);text-align:center}
.matrix td.l{text-align:left;color:var(--body);font-size:12px;font-family:var(--mono)}
.matrix .on{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 14%,transparent);vertical-align:middle}
.matrix .off{display:inline-block;width:8px;height:8px;border-radius:50%;border:1px solid var(--line2);vertical-align:middle}
.obs-grid{display:grid;gap:18px}
.obs-item{padding-top:14px;border-top:1px solid var(--line2)}
.obs-item .no{font-family:var(--mono);font-size:11px;color:var(--gold);letter-spacing:.1em}
.obs-item h4{font-family:var(--serif);font-size:15px;font-weight:600;margin:7px 0 7px;line-height:1.5}
.obs-item p{font-size:13px;line-height:1.85;color:var(--muted);margin:0}
.watch-list{display:flex;flex-direction:column;gap:9px;margin:0;padding:0;list-style:none}
.watch-list li{display:grid;grid-template-columns:16px 1fr;gap:9px;font-size:13px;line-height:1.8;color:var(--body)}
.watch-list li:before{content:"→";color:var(--gold)}
.skip-chips{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}
.chip{
  font-family:var(--mono);font-size:11px;color:var(--dim);border:1px solid var(--line);
  border-radius:5px;padding:4px 9px;text-decoration:line-through;
  text-decoration-color:color-mix(in srgb,var(--red) 40%,transparent);
}
.skip-note{font-size:12.5px;color:var(--muted);line-height:1.85;margin-top:10px}
.section-note{font-size:12px;color:var(--dim);margin:-6px 0 14px;line-height:1.8}

/* ---------- 归档 ---------- */
.archive-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-top:26px}
.archive-card{
  display:block;border:1px solid var(--line);border-radius:14px;padding:22px;
  background:linear-gradient(180deg,var(--surface2),var(--card));
  transition:transform .22s var(--ease),border-color .22s,box-shadow .22s;
}
.archive-card:hover{transform:translateY(-3px);border-color:var(--line2);box-shadow:var(--shadow)}
.archive-card h2{font-size:19px;font-weight:600;margin:12px 0 10px;line-height:1.45;letter-spacing:-.01em}
.archive-card p{font-size:13px;color:var(--muted);line-height:1.8;margin:0 0 14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.archive-date{font-family:var(--mono);font-size:10.5px;color:var(--gold);letter-spacing:.1em}

/* ---------- 弹窗 ---------- */
dialog{
  border:1px solid var(--line2);border-radius:16px;background:var(--surface);color:var(--ink);
  padding:32px;max-width:700px;width:calc(100% - 32px);max-height:86vh;
  box-shadow:0 30px 100px rgba(0,0,0,.6);
}
dialog[open]{animation:dialog-in .26s var(--ease)}
dialog::backdrop{background:rgba(4,6,9,.72);backdrop-filter:blur(6px)}
.close-dialog{
  display:grid;place-items:center;position:absolute;right:14px;top:14px;
  width:28px;height:28px;border:1px solid var(--line);background:var(--surface2);
  border-radius:50%;font-size:18px;line-height:1;color:var(--muted);
}
.close-dialog:hover{color:var(--ink);border-color:var(--line2)}
#project-title{font-family:var(--mono);font-size:20px;font-weight:600;overflow-wrap:anywhere;margin:12px 0}
.project-desc{font-size:13.5px;line-height:1.9;color:var(--body)}
.history-note{font-size:12px;color:var(--dim);line-height:1.85}
.history-table{border-collapse:collapse;width:100%;font-size:11.5px;margin:16px 0;font-family:var(--mono);font-variant-numeric:tabular-nums}
.history-table th,.history-table td{text-align:left;border-bottom:1px solid var(--line);padding:9px 6px}
.history-table th{font-size:10px;color:var(--dim);font-weight:500;letter-spacing:.08em;text-transform:uppercase}
.stale{
  padding:11px 14px;font-size:12px;line-height:1.8;border:1px solid var(--line);
  border-left:2px solid var(--gold);border-radius:8px;color:var(--body);
  background:var(--card);margin:18px 0 0;
}
.theme-ready body,.theme-ready .header,.theme-ready .stats,.theme-ready .daily-story,.theme-ready .pick,
.theme-ready .sidebar-card,.theme-ready .ranking,.theme-ready .report-pick,.theme-ready .archive-card,
.theme-ready .wide-board,.theme-ready .mover .mv-track{
  transition:background-color .2s,color .2s,border-color .2s,transform .22s var(--ease),box-shadow .22s;
}

@keyframes page-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes dialog-in{from{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}

@media(min-width:1460px){header,main,footer{max-width:1220px}.columns{grid-template-columns:minmax(0,1fr) 320px}}
@media(max-width:1100px){
  header,main,footer{padding-left:26px;padding-right:26px}
  .hero{gap:34px}.columns{grid-template-columns:minmax(0,1fr) 260px;gap:24px}
  .picks-grid{grid-template-columns:1fr 1fr}
  .stat{padding-right:14px}
  .mover{grid-template-columns:150px minmax(0,1fr) 70px}
}
@media(max-width:860px){
  .hero{grid-template-columns:1fr;padding:36px 0 30px;gap:26px}
  .hero-art{display:none}
  .columns{display:block}
  .sidebar{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
  .sidebar-card{margin-bottom:0}
  .stats{grid-template-columns:1fr 1fr}
  .stat{border-right:0;border-bottom:1px solid var(--line);padding:16px 0}
  .stat:nth-child(odd){border-right:1px solid var(--line);padding-right:14px}
  .stat:nth-child(3),.stat:nth-child(4){border-bottom:0}
  .picks-grid{grid-template-columns:1fr}
  .archive-grid{grid-template-columns:1fr}
  .header{min-height:66px;flex-wrap:wrap;gap:10px;padding-top:12px;padding-bottom:10px}
  nav{order:3;width:100%;gap:18px;padding-bottom:8px}
  .theme-toggle span,.rss span{display:none}
  .board-row{grid-template-columns:22px minmax(0,1fr) auto;row-gap:4px}
  .board-row .br-gain{grid-column:2 / -1;text-align:left}
  .mover{grid-template-columns:118px minmax(0,1fr) 62px;gap:8px}
}
@media(max-width:560px){
  header,main,footer{padding-left:18px;padding-right:18px}
  body{font-size:14.5px}
  .hero h1{font-size:30px}
  .hero p{font-size:14.5px;padding-left:13px}
  .stat-value{font-size:25px}
  .daily-story{padding:20px}
  .daily-story h3{font-size:21px}
  .sidebar{grid-template-columns:1fr}
  .table-head,.repo-row{grid-template-columns:28px minmax(0,1fr) 74px;gap:9px;padding-left:0;padding-right:0}
  .repo-desc{-webkit-line-clamp:3}
  .repo-main{grid-template-columns:22px minmax(0,1fr);gap:9px}
  .avatar{width:22px;height:22px;border-radius:6px}
  .pick-cover{height:86px}
  .report-lead{font-size:16px;padding-left:14px}
  .obs-item h4{font-size:14px}
  footer{flex-wrap:wrap;gap:8px 16px;margin-top:46px}
  footer span:last-child{width:100%}
  dialog{padding:24px 18px;border-radius:14px}
  #project-title{font-size:17px;padding-right:18px}
  .history-table{font-size:10px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation:none!important;transition:none!important}
  .pick:hover,.archive-card:hover,.button:hover{transform:none}
}
