:root{
  --bg:#f5f3ee; --panel:#ffffff; --panel2:#faf8f4; --ink:#1c1a17; --ink2:#4a463f; --mute:#8a847a; --line:#e7e2d8;
  --hot:#ff4d2e; --hot-soft:#fff0eb; --blue:#2f6bff; --blue-soft:#eef3ff; --green:#14a06b; --green-soft:#e9f8f1;
  --gold:#e8a200; --purple:#8b3dff;
  --t2:#f2a516; --t3:#ff7a1a; --t5:#ff4d2e; --t10:#d4145a;
  --xhs:#ff2442; --bili:#00a1d6; --yt:#ff0000;
  --shadow:0 1px 2px rgba(30,25,15,.04),0 4px 16px rgba(30,25,15,.06);
  --r:14px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){
  --bg:#121110; --panel:#1b1a18; --panel2:#22201d; --ink:#f1ede6; --ink2:#c9c3b8; --mute:#8d877d; --line:#2e2b27;
  --hot-soft:#3a1c15; --blue-soft:#18223d; --green-soft:#11291f; --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.25); color-scheme:dark}}
:root[data-theme=dark]{
  --bg:#121110; --panel:#1b1a18; --panel2:#22201d; --ink:#f1ede6; --ink2:#c9c3b8; --mute:#8d877d; --line:#2e2b27;
  --hot-soft:#3a1c15; --blue-soft:#18223d; --green-soft:#11291f; --shadow:0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.25); color-scheme:dark}

*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Noto Sans SC","Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit;color:inherit}
.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
img{display:block}

.shell{display:flex;min-height:100vh}
.side{width:220px;flex:none;position:sticky;top:0;height:100vh;padding:22px 14px;display:flex;flex-direction:column;gap:22px;border-right:1px solid var(--line);background:var(--panel2)}
.brand{display:flex;gap:10px;align-items:center;padding:0 8px}
.brand b{display:block;font-size:17px;letter-spacing:.5px}
.brand small{display:block;color:var(--mute);font-size:11.5px;margin-top:-2px}
nav{display:flex;flex-direction:column;gap:2px}
nav a{display:flex;gap:10px;align-items:center;padding:9px 12px;border-radius:10px;color:var(--ink2);font-weight:500}
nav a i{font-style:normal;width:20px;text-align:center}
nav a:hover{background:var(--panel)}
nav a.on{background:var(--panel);color:var(--ink);box-shadow:var(--shadow)}
.side-me{margin-top:auto;font-size:12.5px}
.side-me .me-card{display:flex;gap:10px;align-items:center;padding:10px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}
.side-me .me-card img{width:34px;height:34px;border-radius:50%;object-fit:cover}
.side-me small{color:var(--mute);display:block}
.theme{position:absolute;bottom:18px;right:14px;border:0;background:none;color:var(--mute);cursor:pointer;font-size:16px}

main{flex:1;min-width:0;padding:28px 36px 80px;max-width:1440px}
.head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px;flex-wrap:wrap}
.head h1{margin:0;font-size:26px;letter-spacing:.3px}
.head p{margin:4px 0 0;color:var(--mute)}
h2{font-size:17px;margin:34px 0 14px;display:flex;align-items:center;gap:8px}
h2 small{font-weight:400;color:var(--mute);font-size:13px}

.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel);padding:8px 14px;border-radius:10px;cursor:pointer;font-weight:500;white-space:nowrap;transition:.15s}
.btn:hover{border-color:var(--ink2)}
.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.btn.primary:hover{opacity:.88}
.btn.hot{background:var(--hot);border-color:var(--hot);color:#fff}
.btn.hot:hover{filter:brightness(1.05)}
.btn.sm{padding:5px 10px;font-size:12.5px;border-radius:8px}
.btn.ghost{background:none;border-color:transparent;color:var(--mute)}
.btn.ghost:hover{color:var(--ink);border-color:var(--line)}
.btn:disabled{opacity:.5;cursor:default}

.input{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:9px 12px;outline:none;min-width:0}
.input:focus{border-color:var(--ink2)}
textarea.input{width:100%;resize:vertical;min-height:90px;line-height:1.6}

.chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.chip{border:1px solid var(--line);background:var(--panel);padding:5px 12px;border-radius:999px;cursor:pointer;font-size:13px;color:var(--ink2)}
.chip:hover{border-color:var(--ink2)}
.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.bar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r)}
.bar .sep{width:1px;height:22px;background:var(--line)}
.bar .grow{flex:1}

.pf{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600;padding:1px 7px;border-radius:6px;color:#fff;line-height:18px}
.pf.xhs{background:var(--xhs)} .pf.bili{background:var(--bili)} .pf.yt{background:var(--yt)}

/* 倍数徽章 */
.x{display:inline-flex;align-items:baseline;gap:1px;font-weight:800;font-variant-numeric:tabular-nums;padding:2px 8px;border-radius:8px;color:#fff;font-size:13px;line-height:18px;letter-spacing:-.2px}
.x small{font-size:10px;font-weight:700;opacity:.85}
.x.t1{background:#a59e92} .x.t2{background:var(--t2)} .x.t3{background:var(--t3)} .x.t5{background:var(--t5)} .x.t10{background:linear-gradient(135deg,var(--t10),var(--purple))}

/* 爆款卡片瀑布流 */
.masonry{display:flex;gap:16px;align-items:flex-start}
.mcol{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;cursor:pointer;transition:transform .15s,box-shadow .15s;display:block}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.cover{position:relative;background:var(--panel2);overflow:hidden}
.cover img{width:100%;height:auto;min-height:80px;object-fit:cover}
.cover.wide img{aspect-ratio:16/9}
.cover.tall img{aspect-ratio:3/4}
.cover .x{position:absolute;left:8px;top:8px;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.cover .pf{position:absolute;right:8px;top:9px}
.cover .dur{position:absolute;right:8px;bottom:8px;background:rgba(0,0,0,.7);color:#fff;font-size:11px;padding:0 6px;border-radius:5px}
.cover .bd{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.65);color:#fff;font-size:11px;padding:1px 7px;border-radius:6px}
.cover .noimg{aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;padding:18px;font-weight:700;font-size:15px;color:var(--ink2);text-align:center;background:linear-gradient(135deg,var(--panel2),var(--line))}
.card .body{padding:10px 12px 12px}
.card .t{font-weight:600;font-size:13.5px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .meta{display:flex;align-items:center;gap:6px;margin-top:8px;color:var(--mute);font-size:12px}
.card .meta img{width:18px;height:18px;border-radius:50%;object-fit:cover}
.card .meta .who{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 博主卡片 */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.cc{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:12px;cursor:pointer;transition:.15s;position:relative}
.cc:hover{box-shadow:var(--shadow);transform:translateY(-1px)}
.cc .top{display:flex;gap:12px;align-items:center}
.av{width:46px;height:46px;border-radius:50%;object-fit:cover;flex:none;background:var(--panel2)}
.av.lg{width:76px;height:76px}
.cc .nm{font-weight:700;font-size:15px;display:flex;align-items:center;gap:6px;min-width:0}
.cc .nm span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cc .sub{color:var(--mute);font-size:12px}
.kv{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.kv div{background:var(--panel2);border-radius:10px;padding:7px 10px}
.kv b{display:block;font-size:15px;font-variant-numeric:tabular-nums}
.kv small{color:var(--mute);font-size:11.5px}
.spark{display:flex;align-items:flex-end;gap:2px;height:34px}
.spark i{flex:1;border-radius:2px 2px 0 0;min-height:2px;background:var(--line)}
.me-tag{background:var(--blue);color:#fff;font-size:11px;padding:0 6px;border-radius:5px;font-weight:600}

.addbox{display:flex;gap:10px;align-items:center;padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);margin-bottom:8px;flex-wrap:wrap}
.addbox .input{flex:1;min-width:260px;font-size:15px;padding:11px 14px}
.addbox label{display:flex;align-items:center;gap:6px;color:var(--ink2);font-size:13px;cursor:pointer}
.hint{color:var(--mute);font-size:12.5px;margin:6px 2px 0}

.seeds{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.seed{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.seed .w{flex:1;min-width:0}
.seed b{font-size:14px}
.seed p{margin:2px 0 0;color:var(--mute);font-size:12.5px;line-height:1.5}
.seed .btn{flex:none}

/* 博主详情 */
.hero{display:flex;gap:20px;align-items:center;padding:22px;background:var(--panel);border:1px solid var(--line);border-radius:18px;flex-wrap:wrap}
.hero .w{flex:1;min-width:260px}
.hero h1{margin:0;font-size:24px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.hero .desc{color:var(--ink2);white-space:pre-line;font-size:13px;margin-top:6px;max-height:4.8em;overflow:hidden}
.hero .acts{display:flex;gap:8px;flex-wrap:wrap}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-top:16px}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}
.kpi b{display:block;font-size:24px;font-weight:800;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.kpi small{color:var(--mute)}
.kpi.hot b{color:var(--hot)}

.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.panel h3{margin:0 0 12px;font-size:14.5px;display:flex;align-items:center;gap:8px}
.panel h3 small{color:var(--mute);font-weight:400}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}

.chart{position:relative;height:220px;display:flex;align-items:flex-end;gap:2px;padding:0 0 0 34px;border-bottom:1px solid var(--line)}
.chart .bar1{flex:1;min-width:3px;border-radius:3px 3px 0 0;cursor:pointer;position:relative;transition:opacity .1s}
.chart .bar1:hover{opacity:.7}
.chart .axis{position:absolute;left:0;right:0;border-top:1px dashed var(--line);font-size:10.5px;color:var(--mute)}
.chart .axis span{position:absolute;left:0;top:-8px;background:var(--panel);padding-right:4px}
.chart .axis.med{border-top-color:var(--ink2)}
.chart-x{display:flex;justify-content:space-between;color:var(--mute);font-size:11.5px;padding:6px 0 0 34px}
.tip{position:fixed;z-index:60;pointer-events:none;background:var(--ink);color:var(--bg);font-size:12px;padding:7px 10px;border-radius:8px;max-width:300px;line-height:1.45;display:none}

.feat{display:grid;grid-template-columns:86px 1fr 44px;gap:6px 10px;align-items:center;font-size:12.5px}
.feat .bars{display:flex;flex-direction:column;gap:3px}
.feat .bars i{display:block;height:7px;border-radius:4px}
.feat .bars i.a{background:var(--hot)} .feat .bars i.b{background:var(--line)}
.feat .lift{font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.legend{display:flex;gap:12px;font-size:12px;color:var(--mute);margin-bottom:10px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}

.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl td,.tbl th{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left}
.tbl th{color:var(--mute);font-weight:500;font-size:12px}
.tbl td.r,.tbl th.r{text-align:right}
.wk{display:flex;gap:6px;align-items:flex-end;height:70px}
.wk div{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;color:var(--mute);height:100%;justify-content:flex-end}
.wk i{width:100%;background:var(--blue);border-radius:4px 4px 0 0;min-height:2px;opacity:.8}

/* AI 结果 */
.ai{background:linear-gradient(180deg,var(--hot-soft),var(--panel) 160px);border:1px solid var(--line);border-radius:18px;padding:22px}
.ai .lead{font-size:19px;font-weight:700;line-height:1.5;margin:0 0 16px}
.ai h4{margin:18px 0 8px;font-size:13px;color:var(--mute);font-weight:600;letter-spacing:.5px}
.ai p{margin:0;color:var(--ink2)}
.ai ol,.ai ul{margin:0;padding-left:20px;color:var(--ink2)}
.ai li{margin:4px 0}
.formula{font-family:ui-monospace,"SF Mono",Menlo,monospace;background:var(--panel);border:1px dashed var(--hot);border-radius:10px;padding:10px 14px;font-size:13.5px;color:var(--ink)}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.tile b{display:block;margin-bottom:4px}
.tile p{font-size:13px}
.warn{background:#fff7e0;border:1px solid #f3d27a;color:#6b4e00;border-radius:10px;padding:10px 14px;font-size:13px}
:root[data-theme=dark] .warn{background:#2c2410;border-color:#5c4a17;color:#f0d68a}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .warn{background:#2c2410;border-color:#5c4a17;color:#f0d68a}}
.aimeta{color:var(--mute);font-size:12px;margin-top:16px}

/* 选题 */
.idea{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:10px;position:relative}
.idea .tt{font-size:16.5px;font-weight:700;line-height:1.45;padding-right:60px}
.idea .hook{border-left:3px solid var(--hot);padding:2px 0 2px 10px;color:var(--ink2);font-size:13.5px}
.idea ul{margin:0;padding-left:18px;color:var(--ink2);font-size:13px}
.idea .src{background:var(--panel2);border-radius:10px;padding:8px 10px;font-size:12.5px;color:var(--ink2);cursor:pointer}
.idea .src:hover{background:var(--line)}
.idea .why{font-size:12.5px;color:var(--mute)}
.idea .copy{position:absolute;right:14px;top:14px}
.pill{display:inline-block;font-size:11.5px;padding:1px 8px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);color:var(--ink2)}
.pill.lo{background:var(--green-soft);color:var(--green);border-color:transparent}
.pill.mid{background:#fff4dc;color:#a86b00;border-color:transparent}
.pill.hi{background:var(--hot-soft);color:var(--hot);border-color:transparent}
.ideas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.batch-head{display:flex;align-items:center;gap:10px;margin:28px 0 12px;color:var(--mute);font-size:13px}
.batch-head b{color:var(--ink);font-size:15px}

/* 找博主 */
.grp{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.grp .w{flex:1;min-width:240px}
.grp .nm{font-weight:700;font-size:15px}
.grp .hits{display:flex;flex-direction:column;gap:4px;margin-top:8px}
.grp .hits a{font-size:13px;color:var(--ink2);display:flex;gap:8px}
.grp .hits a:hover{color:var(--hot)}
.grp .hits a span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grp .hits a em{font-style:normal;color:var(--mute);font-variant-numeric:tabular-nums}
.list{display:flex;flex-direction:column;gap:10px}

/* 抽屉 */
.drawer-mask{position:fixed;inset:0;background:rgba(20,15,10,.35);opacity:0;pointer-events:none;transition:.2s;z-index:40}
.drawer-mask.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(760px,100vw);background:var(--bg);z-index:50;transform:translateX(100%);transition:transform .25s ease;overflow-y:auto;box-shadow:-10px 0 40px rgba(0,0,0,.15)}
.drawer.on{transform:none}
.dw{padding:22px 26px 60px}
.dw-top{display:flex;gap:18px;align-items:flex-start}
.dw-top .cv{width:220px;flex:none;border-radius:12px;overflow:hidden;background:var(--panel2)}
.dw-top .cv img{width:100%}
.dw-top h2{margin:0 0 8px;font-size:19px;line-height:1.45;display:block}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:8px;margin:14px 0}
.stats div{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.stats b{display:block;font-size:16px;font-variant-numeric:tabular-nums}
.stats small{color:var(--mute);font-size:11.5px}
.close{position:sticky;top:0;display:flex;justify-content:flex-end;padding:10px 14px 0;z-index:2}
.desc-box{white-space:pre-wrap;color:var(--ink2);font-size:13px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px;max-height:220px;overflow:auto}

/* 任务托盘 */
.tray{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:8px;z-index:70;max-width:360px}
.job{background:var(--ink);color:var(--bg);padding:10px 14px;border-radius:12px;font-size:13px;display:flex;gap:10px;align-items:center;box-shadow:0 8px 30px rgba(0,0,0,.25);animation:pop .2s}
.job.err{background:#b3261e;color:#fff}
.job.ok{background:var(--green);color:#fff}
.job .sp{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite;flex:none}
.job small{opacity:.7;margin-left:auto;font-variant-numeric:tabular-nums}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pop{from{transform:translateY(8px);opacity:0}}

.empty{text-align:center;padding:60px 20px;color:var(--mute);background:var(--panel);border:1px dashed var(--line);border-radius:18px}
.empty h3{color:var(--ink);font-size:18px;margin:0 0 8px}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:26px auto 22px;max-width:820px;text-align:left}
.steps div{background:var(--panel2);border-radius:14px;padding:14px 16px}
.steps b{display:block;color:var(--ink);margin-bottom:4px}
.steps em{font-style:normal;display:inline-flex;width:22px;height:22px;border-radius:50%;background:var(--hot);color:#fff;font-size:12px;align-items:center;justify-content:center;margin-right:6px;font-weight:700}
.skel{background:linear-gradient(90deg,var(--panel2),var(--line),var(--panel2));background-size:200% 100%;animation:sk 1.2s infinite;border-radius:12px}
@keyframes sk{to{background-position:-200% 0}}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.muted{color:var(--mute)}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.field label{font-size:12.5px;color:var(--mute)}
.prov{display:grid;grid-template-columns:1.1fr .8fr 2fr 1.2fr 1.6fr auto;gap:8px;align-items:center;margin-bottom:8px}
.ok-t{color:var(--green)} .bad-t{color:#c62828}

@media (max-width:860px){
  .shell{flex-direction:column}
  .side{position:sticky;top:0;z-index:30;width:100%;height:auto;flex-direction:row;align-items:center;padding:10px 12px;gap:10px;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}
  .brand small,.side-me,.theme{display:none}
  nav{flex-direction:row}
  nav a{padding:7px 10px}
  nav a span{font-size:13px}
  main{padding:18px 16px 80px}
  .masonry,.mcol{gap:10px}
  .dw-top{flex-direction:column}
  .dw-top .cv{width:100%}
  .prov{grid-template-columns:1fr 1fr}
}

/* 抽屉里的媒体、逐字稿、评论 */
.player{margin:16px 0;border-radius:14px;overflow:hidden;background:#000;aspect-ratio:16/9}
.player iframe,.player video{width:100%;height:100%;border:0;display:block}
.player.tall{aspect-ratio:auto;max-height:560px;display:flex;justify-content:center}
.player.tall video{width:auto;max-width:100%;max-height:560px}
.gallery{display:flex;gap:10px;overflow-x:auto;padding:4px 0 10px;margin:14px 0 4px;scroll-snap-type:x mandatory}
.gallery a{flex:none;width:210px;position:relative;border-radius:12px;overflow:hidden;background:var(--panel2);scroll-snap-align:start;border:1px solid var(--line)}
.gallery img{width:100%;aspect-ratio:3/4;object-fit:cover}
.gallery span{position:absolute;right:6px;bottom:6px;background:rgba(0,0,0,.6);color:#fff;font-size:11px;padding:0 6px;border-radius:5px}
.transcript{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 16px;max-height:420px;overflow:auto;font-size:13.5px;line-height:1.75}
.transcript p{margin:0 0 4px;color:var(--ink2)}
.transcript p.hl{color:var(--ink);font-weight:600;margin-top:8px}
.transcript time{display:inline-block;min-width:52px;color:var(--hot);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}
.comments{display:flex;flex-direction:column;gap:8px}
.cmt{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-size:13.5px;color:var(--ink2)}
.cmt-h{display:flex;gap:8px;align-items:center;margin-bottom:3px;font-size:12.5px}
.cmt-h b{color:var(--ink)}
.cmt-h .like{margin-left:auto;color:var(--hot);font-variant-numeric:tabular-nums}
.cmt .sub{margin:6px 0 0 12px;padding-left:10px;border-left:2px solid var(--line);font-size:13px}
.card .newb{position:absolute;left:8px;bottom:8px;background:var(--blue);color:#fff;font-size:11px;padding:1px 7px;border-radius:6px;font-weight:700}
.draft{background:var(--panel2);border-radius:12px;padding:12px 14px;font-size:13px;display:flex;flex-direction:column;gap:8px}
.draft .cover-mock{background:linear-gradient(135deg,#fff5d6,#ffe1d6);color:#1c1a17;border-radius:10px;padding:16px;text-align:center}
.draft .cover-mock b{display:block;font-size:20px;line-height:1.3}
.draft .pg{border-left:3px solid var(--hot);padding-left:10px}
.draft .pg ul{margin:2px 0;padding-left:18px}
.lab-v{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.lab-v .sc{font-size:20px;font-weight:800;text-align:center;font-variant-numeric:tabular-nums}
.lab-v .tt{font-weight:700;font-size:15px}
.lab-v small{color:var(--mute);display:block;margin-top:2px}
.refresh-st{font-size:12.5px;color:var(--mute)}

/* 导航分组 + 节点状态 */
.nav-g{display:block;color:var(--mute);font-size:11px;letter-spacing:1px;padding:12px 12px 4px}
nav a .dot{margin-left:auto;width:8px;height:8px;border-radius:50%;background:transparent}
nav a .dot.on{background:var(--green)} nav a .dot.off{background:#c62828}
/* 登录 */
.login-mask{position:fixed;inset:0;z-index:100;background:var(--bg);display:flex;align-items:center;justify-content:center}
.login-mask[hidden]{display:none}
.login-box{display:flex;flex-direction:column;align-items:center;gap:14px;width:min(320px,90vw);padding:34px 28px;background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}
.login-box b{font-size:18px}
.login-box .input{width:100%;text-align:center;font-size:16px;padding:12px}
.login-box .btn{width:100%;justify-content:center;padding:11px}
.login-box small{color:#c62828;min-height:1em}
/* 热点（内嵌热点监控看板） */
main.full{padding:0;max-width:none}
.hot-frame{width:100%;height:100vh;border:0;display:block;background:var(--bg)}
/* 今天 */
.today-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:18px;align-items:start}
.hot-list{display:flex;flex-direction:column}
.hot-row{display:grid;grid-template-columns:26px 1fr auto;gap:10px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--line)}
.hot-row:last-child{border-bottom:0}
.hot-row .rk{font-weight:800;color:var(--mute);text-align:center;font-variant-numeric:tabular-nums}
.hot-row:nth-child(-n+3) .rk{color:var(--hot)}
.hot-row .tt{font-weight:600;font-size:14px;line-height:1.45}
.hot-row .tt a:hover{color:var(--hot)}
.hot-row .mt{display:flex;gap:6px;flex-wrap:wrap;margin-top:3px;font-size:11.5px;color:var(--mute)}
.hot-row .acts{display:flex;gap:4px;opacity:.35;transition:.15s}
.hot-row:hover .acts{opacity:1}
.tag{font-size:11px;padding:0 6px;border-radius:5px;background:var(--panel2);color:var(--ink2)}
.tag.surge{background:var(--hot-soft);color:var(--hot);font-weight:600}
.tag.x{background:var(--blue-soft);color:var(--blue)}
.mini-ideas{display:flex;flex-direction:column;gap:10px}
.mini-idea{padding:12px 14px;border-radius:12px;background:var(--panel2)}
.mini-idea b{display:block;font-size:14px;margin-bottom:3px}
.mini-idea p{margin:0;font-size:12.5px;color:var(--mute)}
.my-bars{display:flex;flex-direction:column;gap:6px}
.my-bar{display:grid;grid-template-columns:1fr 70px 46px;gap:8px;align-items:center;font-size:12.5px}
.my-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink2)}
.my-bar i{display:block;height:8px;border-radius:4px}
.my-bar em{font-style:normal;text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.greet{font-size:13px;color:var(--mute);margin-top:4px}
@media (max-width:1100px){.today-grid{grid-template-columns:1fr}}
@media (max-width:860px){.nav-g{display:none} .hot-frame{height:calc(100vh - 58px)} .hot-row .acts{opacity:1}}
.dot-lg{width:10px;height:10px;border-radius:50%;display:inline-block}
.dot-lg.on{background:var(--green);box-shadow:0 0 0 4px var(--green-soft)} .dot-lg.off{background:#c62828}
code{background:var(--panel2);padding:1px 6px;border-radius:6px;font-size:12px}
