
:root{
  --bg:#f7f4ef; --card:#ffffff; --ink:#2d2a26; --sub:#8a8377; --line:#e8e2d8;
  --brand:#e8734a; --brand-2:#c95d38; --accent:#3d8f7f; --warn:#c9542e;
  --shadow:0 1px 3px rgba(60,45,30,.06),0 8px 24px rgba(60,45,30,.05);
  --radius:14px;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  background:var(--bg); color:var(--ink); font-size:14px; line-height:1.6;}
button{font-family:inherit; cursor:pointer;}
input,select{font-family:inherit;}

/* ---------- header ---------- */
header{position:sticky; top:0; z-index:50; background:rgba(247,244,239,.92); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line); padding:14px 28px; display:flex; align-items:center; gap:14px;}
.brand{font-size:19px; font-weight:700; letter-spacing:.5px; display:flex; align-items:center; gap:8px;}
.brand .fox{font-size:22px;}
.brand .sub{font-size:11px; font-weight:500; color:#fff; background:linear-gradient(135deg,var(--brand),#f0a05a);
  padding:2px 8px; border-radius:99px; letter-spacing:1px;}
.header-right{margin-left:auto; display:flex; align-items:center; gap:14px;}
#lastScanInfo{font-size:12px; color:var(--sub);}
.ghost-btn{background:none; border:1px solid var(--line); color:var(--ink); padding:7px 14px;
  border-radius:99px; font-size:13px; transition:.15s;}
.ghost-btn:hover{border-color:var(--brand); color:var(--brand);}

/* ---------- control ---------- */
.control{padding:18px 36px 6px;}
.control-row{display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
#scanBtn{background:linear-gradient(135deg,var(--brand),#f09350); border:none; color:#fff;
  font-size:16px; font-weight:700; padding:13px 34px; border-radius:12px; letter-spacing:1px;
  box-shadow:0 6px 18px rgba(232,115,74,.35); transition:.18s;}
.decode-btn{border:1.5px solid var(--brand); color:var(--brand-2); background:#fff;
  font-size:15px; font-weight:700; padding:12px 28px; border-radius:12px; transition:.18s; letter-spacing:.5px;}
.decode-btn:hover{background:#fdf0e9; transform:translateY(-1px);}
#scanBtn:hover{transform:translateY(-1px); box-shadow:0 8px 22px rgba(232,115,74,.45);}
#scanBtn:disabled{opacity:.75; cursor:default; transform:none;}
.track-chips{display:flex; gap:8px; flex-wrap:wrap; flex:1;}
.chip{border:1px solid var(--line); background:var(--card); border-radius:99px; padding:6px 13px;
  font-size:13px; color:var(--sub); transition:.15s; user-select:none;}
.chip.on{background:#fdf0e9; border-color:var(--brand); color:var(--brand-2); font-weight:600;}
.minread-box{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--sub);}
.minread-box select{border:1px solid var(--line); border-radius:9px; padding:7px 10px; background:var(--card);
  color:var(--ink); font-size:13px;}
.control-note{margin-top:10px; font-size:12px; color:#b0a898;}

/* progress */
.progress-wrap{margin-top:14px; display:none;}
.progress-wrap.show{display:block;}
.progress-outer{height:8px; background:#efe8de; border-radius:99px; overflow:hidden;}
.progress-inner{height:100%; width:0%; border-radius:99px;
  background:linear-gradient(90deg,var(--brand),#f0b35a); transition:width .5s ease;}
.progress-msg{margin-top:6px; font-size:12.5px; color:var(--brand-2); display:flex; gap:8px; align-items:center;}
.spin{display:inline-block; width:12px; height:12px; border:2px solid #f3cbb8; border-top-color:var(--brand);
  border-radius:50%; animation:sp 0.8s linear infinite;}
@keyframes sp{to{transform:rotate(360deg)}}

/* ---------- stats ---------- */
.stats{max-width:1280px; margin:16px auto 0; padding:0 28px; display:grid;
  grid-template-columns:repeat(5,1fr); gap:12px;}
.stat-card{background:var(--card); border-radius:var(--radius); padding:14px 18px; box-shadow:var(--shadow);
  border:1px solid rgba(232,226,216,.6);}
.stat-card .num{font-size:24px; font-weight:700; color:var(--ink); font-family:"DIN Alternate","Bahnschrift",sans-serif;}
.stat-card .num.brand{color:var(--brand);}
.stat-card .lbl{font-size:12px; color:var(--sub); margin-top:2px;}

/* ---------- filter ---------- */
.filter{margin:18px 0 0; padding:0 36px; display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.tabs{display:flex; gap:6px; flex-wrap:wrap; flex:1;}
.tab{border:none; background:none; padding:7px 13px; border-radius:9px; font-size:13px;
  color:var(--sub); transition:.15s;}
.tab:hover{background:#efe9e0;}
.tab.on{background:var(--ink); color:#fff; font-weight:600;}
.tab-count{font-size:11px; opacity:.7; background:rgba(0,0,0,.06); border-radius:99px; padding:1px 7px; margin-left:3px; font-weight:500;}
.tab.on .tab-count{background:rgba(255,255,255,.22); opacity:1;}
.filter-right{display:flex; gap:8px; align-items:center;}
#searchInput{border:1px solid var(--line); border-radius:9px; padding:8px 12px; width:200px;
  background:var(--card); font-size:13px; outline:none;}
#searchInput:focus{border-color:var(--brand);}
#sortSel{border:1px solid var(--line); border-radius:9px; padding:8px 10px; background:var(--card); font-size:13px;}
.content-chk{font-size:13px; color:var(--sub); display:flex; align-items:center; gap:5px; cursor:pointer; user-select:none;}

/* ---------- list ---------- */
#list{margin:14px 0 60px; padding:0 36px; display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; align-items:start;}
#list .no-data{grid-column:1 / -1;}
.article{background:var(--card); border-radius:var(--radius); box-shadow:var(--shadow);
  border:1px solid rgba(232,226,216,.6); overflow:hidden; transition:.15s;}
.article:hover{border-color:#ddd3c4;}
.a-head{padding:14px 18px; cursor:pointer; display:flex; flex-direction:column; gap:7px;}
.a-title-row{display:flex; align-items:flex-start; gap:10px;}
.a-title{font-size:15.5px; font-weight:600; line-height:1.5; flex:1;}
.a-read{font-family:"DIN Alternate","Bahnschrift",sans-serif; font-size:15px; font-weight:700; color:var(--brand); white-space:nowrap;}
.suspect-mark{font-size:11px; color:#c9542e; margin-left:3px; cursor:help;}
.a-meta{display:flex; align-items:center; gap:12px; font-size:12.5px; color:var(--sub); flex-wrap:wrap;}
.a-meta .acct{font-weight:600; color:#6b6357;}
.a-tags{display:flex; gap:6px; flex-wrap:wrap; margin-top:2px;}
.tag{font-size:11.5px; padding:2.5px 9px; border-radius:99px; font-weight:500;}
.tag-hook{background:#f2ede5; color:#7a7268;}
.tag-formula{background:#fdf0e9; color:var(--brand-2);}
.tag-content{background:#e8f4ef; color:var(--accent);}
.src-tag{font-size:11px; color:#b8b0a2;}

/* detail */
.a-detail{display:none; border-top:1px dashed var(--line); padding:16px 20px; background:#fdfbf8;}
.a-detail.open{display:block;}
.d-sec{margin-bottom:14px;}
.d-sec:last-child{margin-bottom:0;}
.d-sec h4{font-size:12px; letter-spacing:2px; color:var(--sub); font-weight:600; margin-bottom:8px;
  display:flex; align-items:center; gap:6px;}
.d-sec h4::after{content:""; flex:1; height:1px; background:var(--line);}
.skeleton-line{font-family:Consolas,Monaco,monospace; font-size:13px; background:#f4efe7;
  padding:10px 14px; border-radius:9px; color:#6b5c4a; line-height:1.7; word-break:break-all;}
.frame-flow{font-size:14px; font-weight:600; color:var(--accent); background:#e8f4ef;
  padding:10px 14px; border-radius:9px; display:inline-block;}
.kv{display:flex; gap:8px; flex-wrap:wrap; align-items:center;}
.kv .k{font-size:12px; color:var(--sub);}
.small-chips{display:flex; gap:6px; flex-wrap:wrap;}
.small-chip{font-size:12px; background:#f2ede5; color:#6b6357; padding:3px 10px; border-radius:99px;}
.headings-list, .quotes-list{margin:0; padding:0; list-style:none; font-size:13px; color:#5c5449;}
.headings-list li{padding:4px 0 4px 18px; position:relative;}
.headings-list li::before{content:"§"; position:absolute; left:0; color:var(--brand); font-size:12px;}
.quotes-list li{padding:6px 12px; margin-bottom:6px; background:#fff; border-left:3px solid #f0b35a;
  border-radius:0 8px 8px 0; font-size:13px; color:#6b5c4a;}
.excerpt{font-size:13px; color:#6b6357; background:#fff; border:1px solid var(--line); border-radius:9px;
  padding:12px 14px; max-height:200px; overflow:auto; white-space:pre-wrap; line-height:1.8;}
.d-actions{display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; padding-top:12px; border-top:1px solid var(--line);}
.mini-btn{border:1px solid var(--line); background:#fff; border-radius:8px; padding:6px 13px; font-size:12.5px;
  color:#6b6357; transition:.15s;}
.mini-btn:hover{border-color:var(--brand); color:var(--brand);}
.mini-btn.danger:hover{border-color:var(--warn); color:var(--warn);}
.no-data{padding:60px 0; text-align:center; color:#c2b9aa; font-size:14px;}

/* decode overlay */
#decodeOverlay{position:fixed; inset:0; background:rgba(45,42,38,.45); display:none; justify-content:center;
  align-items:flex-start; z-index:100; padding:36px 18px; overflow:auto;}
#decodeOverlay.show{display:flex;}
.decode-panel{background:#fff; border-radius:16px; width:min(880px,100%); padding:20px 26px 24px;
  box-shadow:0 24px 70px rgba(30,20,10,.28);}
.decode-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:14px;}
.decode-title{font-size:17px; font-weight:700;}
#decodeInput{width:100%; min-height:140px; border:1px solid var(--line); border-radius:11px; padding:12px 14px;
  font-size:13.5px; font-family:inherit; resize:vertical; outline:none; line-height:1.7;}
#decodeInput:focus{border-color:var(--brand);}
.decode-actions{display:flex; align-items:center; gap:12px; margin-top:12px; flex-wrap:wrap;}
#decodeBtn{background:linear-gradient(135deg,var(--brand),#f09350); color:#fff; border:none; font-size:14px;
  font-weight:600; padding:10px 26px; border-radius:10px;}
#decodeBtn:disabled{opacity:.6;}
#decodeHint{font-size:12px; color:var(--sub);}
#decodeResult{margin-top:16px;}
.decode-note{font-size:13px; color:#a8543a; background:#fdf3ee; padding:12px 15px; border-radius:10px; line-height:1.8;}
.ck-sec{margin-bottom:10px;}
.ck-sec-title{font-size:13px; font-weight:700; color:#6b5c4a; margin:10px 0 5px;}
.ck-item{display:flex; gap:8px; align-items:baseline; padding:3px 0; font-size:12.8px; line-height:1.65;}
.ck-icon{flex:0 0 auto; font-size:12px;}
.ck-name{flex:0 0 76px; font-weight:600; color:#5c5449;}
.ck-note{color:#8a7f6f; flex:1;}
.ck-yes .ck-note{color:#3d8f7f;}
.ck-no .ck-name{color:#a09a90;}
.ck-manual .ck-name{color:#7d8ba1;}

/* detail overlay */
#detailOverlay{position:fixed; inset:0; background:rgba(45,42,38,.45); display:none; justify-content:center;
  align-items:flex-start; z-index:95; padding:36px 18px; overflow:auto;}
#detailOverlay.show{display:flex;}
.detail-panel{background:#fff; border-radius:16px; width:min(940px,94vw); padding:20px 28px 26px;
  box-shadow:0 24px 70px rgba(30,20,10,.28);}
.detail-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; gap:14px;}
.detail-title{font-size:16px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}

/* toast */
#toast{position:fixed; bottom:30px; left:50%; transform:translateX(-50%) translateY(20px); opacity:0;
  background:var(--ink); color:#fff; padding:11px 22px; border-radius:99px; font-size:13.5px;
  transition:.25s; pointer-events:none; z-index:99; max-width:80vw; text-align:center;}
#toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

/* ---------- overview 总览视图 ---------- */
#overviewView{padding-bottom:40px;}
.ov-layout{margin:16px 0 0; padding:0 36px; display:grid; grid-template-columns:320px minmax(0,1fr); gap:18px; align-items:start;}
.side-panel{position:sticky; top:76px; max-height:calc(100vh - 100px); overflow:auto; display:flex; flex-direction:column; gap:14px;}
.side-block{background:var(--card); border-radius:var(--radius); box-shadow:var(--shadow); border:1px solid rgba(232,226,216,.6); overflow:hidden;}
.side-head{padding:13px 16px; font-weight:700; font-size:14px; border-bottom:1px solid var(--line);}
.domain-item{display:flex; align-items:center; gap:10px; padding:11px 16px; cursor:pointer; border-bottom:1px solid #f4efe8; transition:.15s; user-select:none;}
.domain-item:last-child{border-bottom:none;}
.domain-item:hover{background:#fbf7f1;}
.domain-item.on{background:#fdf0e9;}
.domain-item.on .dm-name{color:var(--brand-2);}
.dm-emoji{font-size:20px; line-height:1;}
.dm-info{min-width:0; flex:1;}
.dm-name{font-weight:700; font-size:14px;}
.dm-desc{font-size:11px; color:#b0a898; margin-top:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.dm-count{margin-left:auto; font-size:12.5px; color:var(--sub); font-family:"DIN Alternate","Bahnschrift",sans-serif;}
.domain-item.on .dm-count{color:var(--brand); font-weight:700;}
.cheat-empty{padding:14px 16px; font-size:12.5px; color:#b0a898; line-height:1.7;}
.cheat-head{padding:13px 16px; font-weight:700; font-size:14px; border-bottom:1px solid var(--line);}
/* 起标题速查（主区底部折叠块，2026-10-16 从左栏迁入） */
.cheat-fold{background:var(--card); border-radius:var(--radius); box-shadow:var(--shadow); border:1px solid rgba(232,226,216,.6);}
.cheat-fold-head{padding:13px 18px; font-weight:700; font-size:14px; display:flex; align-items:center; cursor:pointer; user-select:none; transition:.15s;}
.cheat-fold-head:hover{color:var(--brand-2);}
.cheat-fold-head .fold-arrow{margin-left:auto; color:#c2b9aa; font-size:11px; transition:.2s;}
.cheat-fold.open .fold-arrow{transform:rotate(180deg);}
.cheat-fold-body{display:none; padding:0 16px 12px; grid-template-columns:1fr 1fr; gap:0 22px; align-items:start;}
.cheat-fold.open .cheat-fold-body{display:grid;}
@media(max-width:900px){ .cheat-fold-body{grid-template-columns:1fr;} }
.cheat-item{border-bottom:1px solid #f4efe8;}
.cheat-item:last-child{border-bottom:none;}
.cheat-track{padding:10px 16px; cursor:pointer; display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; transition:.15s; user-select:none;}
.cheat-track:hover{background:#fbf7f1;}
.cheat-track .arrow{margin-left:auto; color:#c2b9aa; font-size:10px; transition:.2s;}
.cheat-item.open .arrow{transform:rotate(90deg);}
.cheat-body{display:none; padding:2px 12px 12px;}
.cheat-item.open .cheat-body{display:block;}
.tpl-group{margin-top:6px;}
.tpl-label{font-size:11px; font-weight:700; letter-spacing:1px; padding:2px 9px; border-radius:99px; display:inline-block; margin-bottom:6px;}
.tpl-label.steady{background:#e8f4ef; color:#33795f;}
.tpl-label.hit{background:#fdf0e9; color:#c9542e;}
.tpl-row{font-size:12.3px; line-height:1.6; padding:7px 10px; background:#faf7f2; border-radius:8px; margin-bottom:6px; color:#5c5449; word-break:break-all;}
.tpl-row .tpl-ex{color:#9a9082; font-size:11.5px; display:block; margin-top:3px;}
.ov-main{display:flex; flex-direction:column; gap:16px; min-width:0;}
.today-card{background:linear-gradient(135deg,#fff7f0,#fdf1e6); border:1px solid #f5d9c3; border-radius:16px; padding:18px 24px; display:flex; align-items:center; gap:16px; cursor:pointer; transition:.18s; box-shadow:var(--shadow);}
.today-card:hover{transform:translateY(-1px); box-shadow:0 10px 26px rgba(232,115,74,.16);}
.today-badge{font-size:26px;}
.today-title{font-size:16px; font-weight:700;}
.today-sub{font-size:12.5px; color:var(--sub); margin-top:3px;}
.today-num{margin-left:auto; font-size:32px; font-weight:800; color:var(--brand); font-family:"DIN Alternate","Bahnschrift",sans-serif;}
.today-arrow{color:var(--brand); font-size:20px; font-weight:700;}
.track-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.track-cell{background:var(--card); border-radius:var(--radius); border:1px solid rgba(232,226,216,.6); box-shadow:var(--shadow); padding:26px 18px; cursor:pointer; transition:.18s; text-align:center;}
.track-cell:hover{transform:translateY(-2px); border-color:#e8d9c8; box-shadow:0 10px 26px rgba(60,45,30,.10);}
.track-cell .tc-emoji{font-size:34px; line-height:1;}
.track-cell .tc-name{font-size:15.5px; font-weight:700; margin-top:9px;}
.track-cell .tc-num{font-size:12px; color:var(--sub); margin-top:5px;}
.track-cell .tc-num b{color:var(--brand); font-size:15px; font-family:"DIN Alternate","Bahnschrift",sans-serif;}
.mini-stats{display:flex; flex-wrap:wrap; gap:6px 18px; font-size:12.5px; color:var(--sub); padding:2px 6px;}
.mini-stats b{color:#6b6357;}
.list-head{margin:14px 0 0; padding:0 36px; display:flex; align-items:center; gap:14px;}
.back-btn{border:1px solid var(--line); background:var(--card); border-radius:9px; padding:8px 16px; font-size:13.5px; cursor:pointer; transition:.15s; font-family:inherit;}
.back-btn:hover{border-color:var(--brand); color:var(--brand);}
.list-title{font-size:17px; font-weight:700;}

@media(max-width:900px){
  header, .control, .stats, .filter, #list{padding-left:16px; padding-right:16px;}
  .ov-layout{grid-template-columns:1fr; padding-left:16px; padding-right:16px;}
  .side-panel{position:static; max-height:none;}
  .track-grid{grid-template-columns:repeat(2,1fr);}
  #list{grid-template-columns:1fr;}
}

/* ===== 分享版新增：设置弹窗 ===== */
#settingsOverlay{position:fixed; inset:0; background:rgba(45,42,38,.45); display:none; justify-content:center; align-items:flex-start; z-index:105; padding:36px 18px; overflow:auto;}
#settingsOverlay.show{display:flex;}
.settings-panel{background:#fff; border-radius:16px; width:min(560px,100%); padding:20px 26px 24px; box-shadow:0 24px 70px rgba(30,20,10,.28);}
.settings-panel h4{font-size:13px; color:var(--sub); margin:14px 0 6px; letter-spacing:1px;}
.settings-panel input{width:100%; border:1px solid var(--line); border-radius:10px; padding:10px 12px; font-size:13.5px; outline:none; box-sizing:border-box;}
.settings-panel input:focus{border-color:var(--brand);}
.settings-note{font-size:12px; color:#b0a898; margin-top:6px; line-height:1.7;}
.settings-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:16px;}
.banner-note{background:linear-gradient(135deg,#fff7f0,#fdf1e6); border:1px solid #f5d9c3; border-radius:12px; padding:12px 16px; font-size:12.5px; color:#a8543a; line-height:1.8; margin-top:12px; display:none;}
.banner-note.show{display:block;}

/* ===== 采集范围（按域勾选） ===== */
.scope-wrap{margin:12px 0 2px;}
.scope-head{display:flex; align-items:center; gap:10px; font-size:12.5px; color:#7a6c5c; margin-bottom:9px;}
.scope-label{font-weight:600; color:#4a4038;}
.scope-summary{color:var(--brand); font-weight:600;}
.scope-links{margin-left:auto; display:flex; gap:14px;}
.scope-links a{color:var(--brand); cursor:pointer; font-size:12px; text-decoration:none;}
.scope-links a:hover{text-decoration:underline;}
.scope-chips{display:flex; flex-wrap:wrap; gap:8px;}
.scope-chip{padding:6px 13px; border-radius:20px; border:1px solid var(--line); background:#fff; font-size:12.5px; color:#6b5f52; cursor:pointer; user-select:none; transition:all .15s; white-space:nowrap;}
.scope-chip:hover{border-color:#d9b98f;}
.scope-chip.on{background:var(--brand); border-color:var(--brand); color:#fff;}
.scope-chip .n{opacity:.72; font-size:11px; margin-left:5px;}
