/* AgentMarket 主题（手写，零依赖）
 *
 * 设计原则：一套 token（颜色/间距/圆角/字号）驱动全部组件；
 * 页面只写语义类名，不再出现内联样式。gzip 后约 4KB。
 */
:root{
  --bg:#fbfbfd; --surface:#fff; --fg:#111827; --muted:#6b7280; --line:#e8eaee;
  --accent:#2563eb; --accent-soft:#eff6ff;
  --ok:#059669; --ok-soft:#ecfdf5;
  --warn:#b45309; --warn-soft:#fffbeb;
  --danger:#b91c1c; --danger-soft:#fef2f2;
  --indigo:#4338ca; --indigo-soft:#eef2ff;
  --radius:12px; --radius-sm:8px;
  --shadow:0 1px 2px rgba(16,24,40,.05),0 8px 24px -12px rgba(16,24,40,.18);
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --s6:32px;
  --t1:12.5px; --t2:13.5px; --t3:15px; --t4:18px; --t5:28px;
}
@media (prefers-color-scheme: dark){
  :root{--bg:#0b0f16; --surface:#121823; --fg:#e6e9ef; --muted:#9aa4b2; --line:#1f2937;
    --accent:#60a5fa; --accent-soft:#13233b; --ok:#34d399; --ok-soft:#0f2a22;
    --warn:#fbbf24; --warn-soft:#2a220f; --danger:#f87171; --danger-soft:#2a1414;
    --indigo:#a5b4fc; --indigo-soft:#1b2340;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 30px -12px rgba(0,0,0,.6)}
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);
  font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  -webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
h1{font-size:var(--t5);line-height:1.2;letter-spacing:-.02em;margin:0 0 var(--s2)}
h2{font-size:var(--t4);letter-spacing:-.01em;margin:var(--s6) 0 var(--s3)}
h3{font-size:var(--t3)}
.muted{color:var(--muted)}

/* 顶栏 */
header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--surface) 88%,transparent);
  backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line)}
.wrap{max-width:1120px;margin:0 auto;padding:0 var(--s5)}
.bar{display:flex;align-items:center;gap:var(--s4);padding:11px 0;flex-wrap:wrap}
.brand{font-weight:700;font-size:16px;color:var(--fg);letter-spacing:-.01em}
.brand:hover{text-decoration:none}
.brand small{font-weight:400;color:var(--muted);margin-left:8px;font-size:var(--t1)}
nav{display:flex;gap:var(--s4);font-size:var(--t2)}
nav a{color:var(--muted)}
nav a:hover{color:var(--fg);text-decoration:none}
nav a.on{color:var(--fg);font-weight:600}
form.search{display:flex;gap:var(--s2);margin-left:auto}
input[type=search]{padding:8px 12px;font-size:var(--t2);color:var(--fg);background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius-sm);min-width:200px}
input[type=search]::placeholder{color:var(--muted)}
button{padding:8px 14px;font-size:var(--t2);font-weight:600;color:#fff;background:var(--accent);
  border:0;border-radius:var(--radius-sm);cursor:pointer}
button:hover{filter:brightness(1.05)}
button.ghost{background:var(--surface);color:var(--fg);border:1px solid var(--line);font-weight:500}

main{padding:var(--s5) 0 64px}

/* Hero */
.hero{display:flex;flex-direction:column;gap:var(--s2);margin-bottom:var(--s5)}
.hero p{margin:0;color:var(--muted);font-size:var(--t3)}
.hero .search{margin:var(--s3) 0 0;max-width:620px}

/* 统计卡 */
.stat{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--s3);margin-bottom:var(--s5)}
.stat div{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s4)}
.stat b{display:block;font-size:24px;line-height:1.2;letter-spacing:-.02em}
.stat span{color:var(--muted);font-size:var(--t1)}

/* 筛选 chips */
.chips{display:flex;flex-wrap:wrap;gap:var(--s2);margin-bottom:var(--s4)}
.chip{padding:5px 12px;font-size:var(--t1);color:var(--muted);background:var(--surface);
  border:1px solid var(--line);border-radius:999px}
.chip:hover{color:var(--fg);text-decoration:none;border-color:color-mix(in srgb,var(--fg) 25%,transparent)}
.chip.on{color:var(--accent);background:var(--accent-soft);border-color:transparent;font-weight:600}

/* 列表布局 */
.layout{display:grid;grid-template-columns:224px 1fr;gap:var(--s5)}
aside .group{margin-bottom:var(--s4)}
aside h4{margin:0 0 var(--s1);font-size:11.5px;letter-spacing:.06em;color:var(--muted);text-transform:uppercase}
aside ul{list-style:none;margin:0;padding:0}
aside li a{display:flex;justify-content:space-between;gap:var(--s2);padding:4px 0;color:var(--fg);font-size:var(--t2)}
aside li a:hover{color:var(--accent);text-decoration:none}
aside li a.active{font-weight:600;color:var(--accent)}
aside li span{color:var(--muted);font-size:11.5px}

/* 卡片 */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(288px,1fr));gap:var(--s3)}
.card{display:flex;flex-direction:column;gap:var(--s2);background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius);padding:var(--s4);
  transition:transform .12s ease,box-shadow .12s ease}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow);
  border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}
.card h3{margin:0;font-size:var(--t3);letter-spacing:-.01em}
.card h3 a{color:var(--fg)}
.sum{margin:0;color:var(--muted);font-size:var(--t1);line-height:1.6;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* 徽章 */
.badges{display:flex;gap:6px;flex-wrap:wrap}
.badge{font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:999px;
  background:var(--accent-soft);color:var(--accent);border:1px solid transparent}
.badge.t{background:var(--indigo-soft);color:var(--indigo)}
.badge.s{background:var(--ok-soft);color:var(--ok)}
.badge.w{background:var(--warn-soft);color:var(--warn)}
.badge.d{background:var(--indigo-soft);color:var(--indigo)}
.tags{display:flex;gap:6px;flex-wrap:wrap}
.tag{font-size:11.5px;background:color-mix(in srgb,var(--fg) 5%,var(--surface));
  border-radius:999px;padding:2px 9px;color:var(--muted)}

/* 卡片脚注 */
.foot{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:auto;padding-top:var(--s2);
  border-top:1px solid var(--line);font-size:11.5px;color:var(--muted)}
.foot em{font-style:normal;color:var(--warn)}

/* 提示条 */
.notice{border:1px solid color-mix(in srgb,var(--warn) 30%,var(--line));background:var(--warn-soft);
  color:var(--warn);padding:10px 14px;border-radius:var(--radius-sm);margin-bottom:var(--s4);font-size:var(--t2)}

/* 详情页 */
.kv{display:grid;grid-template-columns:110px 1fr;gap:6px var(--s3);font-size:var(--t2)}
.kv dt{color:var(--muted)}
.kv dd{margin:0;word-break:break-all}
.ai{border-left:3px solid color-mix(in srgb,var(--accent) 35%,transparent);background:var(--accent-soft);
  padding:10px 12px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:var(--t1);
  color:var(--muted);margin:var(--s3) 0}
pre{background:color-mix(in srgb,var(--fg) 4%,var(--surface));border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:12px;overflow:auto;font-size:12.5px}
code{background:color-mix(in srgb,var(--fg) 5%,var(--surface));border-radius:4px;padding:1px 5px;font-size:12.5px}

/* 表格 */
table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--t2);
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
th{text-align:left;font-weight:500;font-size:var(--t1);color:var(--muted);
  padding:10px var(--s4);background:color-mix(in srgb,var(--fg) 3%,var(--surface));border-bottom:1px solid var(--line)}
td{padding:11px var(--s4);border-bottom:1px solid var(--line)}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:color-mix(in srgb,var(--accent) 4%,transparent)}

/* 分页与页脚 */
.pager{display:flex;gap:var(--s2);margin-top:var(--s4);align-items:center;color:var(--muted);font-size:var(--t2);flex-wrap:wrap}
.pager a{padding:4px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}
.pager a:hover{text-decoration:none;border-color:var(--accent);color:var(--accent)}
.report{margin-top:var(--s5);font-size:var(--t1);color:var(--muted)}
footer{border-top:1px solid var(--line);color:var(--muted);font-size:var(--t1);padding:var(--s4) 0 var(--s6);margin-top:var(--s6)}
footer p{margin:0 0 var(--s2);max-width:760px}
.empty{padding:var(--s6);text-align:center;color:var(--muted);background:var(--surface);
  border:1px dashed var(--line);border-radius:var(--radius)}

@media (max-width:820px){
  .layout{grid-template-columns:1fr}
  aside{order:2}
  .wrap{padding:0 var(--s4)}
  h1{font-size:24px}
  nav{display:none}
  form.search{margin-left:0;width:100%}
  input[type=search]{flex:1;min-width:0}
}
