/* 爆率查询 —— 3122 风格（密集·功能性·去 AI 味） */
:root{
  --primary:#323130; --secondary:#666; --hover:#2980b9; --border:#edebe9;
  --body-bg:#F7F9FD; --card-bg:#fff; --nav-bg:#fff; --accent:#216592; --accent2:#2980b9;
  --mute:#8a8f99; --red:#c0392b; --ok:#2e9e6b; --line:#e6e9ef; --shadow:0 1px 3px rgba(20,30,50,.06);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:"Microsoft YaHei","PingFang SC","Hiragino Sans GB","Segoe UI",sans-serif;
  background:var(--body-bg); color:var(--primary); font-size:14px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--accent); text-decoration:none;}
a:hover{color:var(--hover);}
img{max-width:100%;}
.clearfix:after{content:"";display:block;clear:both;}

/* ---------- 顶部导航（3122 风格） ---------- */
.topbar{background:var(--nav-bg); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:50;}
.topbar .wrap{max-width:1180px; margin:0 auto; padding:0 16px; height:56px; display:flex; align-items:center; justify-content:space-between;}
.topbar .logo{font-size:19px; font-weight:800; color:var(--primary); letter-spacing:1px; display:flex; align-items:center; gap:8px;}
.topbar .logo:before{content:""; width:22px; height:22px; border-radius:5px; background:linear-gradient(135deg,var(--accent),var(--accent2)); display:inline-block;}
.topbar .topnav{display:flex; gap:4px; align-items:center;}
.topbar .topnav a{padding:7px 13px; border-radius:6px; color:var(--primary); font-weight:600; font-size:14px;}
.topbar .topnav a:hover{background:#eef3f8; color:var(--hover);}
.topbar .topnav a.active{background:var(--accent); color:#fff;}
.topbar .nav-actions{display:flex; align-items:center; gap:10px;}
.topbar .search-box{display:flex; align-items:center; background:#f1f4f8; border:1px solid var(--line); border-radius:18px; padding:5px 12px; gap:6px;}
.topbar .search-box input{border:0; background:transparent; outline:none; width:150px; font-size:13px;}
.topbar .nav-actions .ico{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#f1f4f8;color:var(--secondary);cursor:pointer;}
.topbar .nav-actions .ico:hover{background:#e6edf5;color:var(--hover);}

/* ---------- 容器 ---------- */
.wrap{max-width:1180px; margin:0 auto; padding:0 16px;}
.hub,.query,.admin{padding:18px 0 28px;}
.hub-head{padding:14px 0 10px;}
.hub-head h1{font-size:24px; margin:0 0 6px; font-weight:800;}
.hub-head .sub{color:var(--secondary); margin:0; font-size:13.5px;}

/* ---------- 双栏（侧栏用户卡 + 主区） ---------- */
.layout{display:flex; gap:18px; align-items:flex-start;}
.side{width:240px; flex:0 0 240px;}
.side .box-sd{background:var(--card-bg); border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); overflow:hidden;}
.user-box{padding:18px 14px; text-align:center; border-bottom:1px solid var(--line);}
.user-img{width:64px;height:64px;border-radius:50%;background:#eef3f8;margin:0 auto 8px;display:flex;align-items:center;justify-content:center;color:var(--mute);font-size:26px;overflow:hidden;}
.user-img img{width:100%;height:100%;object-fit:cover;}
.user-name{font-weight:700; font-size:15px;}
.user-id{color:var(--mute); font-size:12px; margin:2px 0 8px;}
.user-auth{display:flex; gap:6px; justify-content:center; color:var(--secondary);}
.user-auth a{cursor:pointer;}
.user-list-box{border-top:1px solid var(--line);}
.user-list-box a{display:block; padding:11px 14px; border-bottom:1px solid var(--line); font-weight:600; cursor:pointer;}
.user-list-box a:last-child{border-bottom:0;}
.user-list-box a:hover,.user-list-box a.active{background:#eef3f8; color:var(--hover);}
.main{flex:1; min-width:0;}

/* ---------- 上传拖放区（3122 upload-area） ---------- */
.upload-area{background:var(--card-bg); border:1px dashed #b9c6d6; border-radius:12px; box-shadow:var(--shadow); padding:26px 20px; text-align:center; margin-bottom:18px;}
.upload-area.drag{border-color:var(--accent); background:#f3f9fd;}
.upload-lb .btn{font-size:15px; padding:11px 26px;}
.upload-area p{color:var(--secondary); margin:12px 0 0; font-size:13.5px;}
.upload-area .fa-file{color:var(--accent); margin-right:4px;}
.upload-tips{margin-top:12px; font-size:12.5px; color:var(--mute); line-height:1.7;}
.upload-tips a{color:var(--accent);}
.upload-tips code{background:#eef3f8; padding:1px 6px; border-radius:4px; color:var(--primary); font-size:12px;}

/* ---------- 工具条（搜索 + 模式） ---------- */
.hub-tools,.q-search{display:flex; gap:10px; align-items:center; margin:6px 0 14px;}
.hub-tools #vsearch,.q-search #qsearch{flex:1; height:40px; border:1px solid var(--line); border-radius:8px; padding:0 14px; font-size:14px; outline:none; background:var(--card-bg);}
.hub-tools #vsearch:focus,.q-search #qsearch:focus{border-color:var(--accent);}
.modes{display:flex; gap:6px;}
.modes button,.q-tabs button{height:40px; padding:0 16px; border:1px solid var(--line); background:var(--card-bg); border-radius:8px; cursor:pointer; font-size:14px; color:var(--primary); font-weight:600;}
.modes button.on,.q-tabs button.on{background:var(--accent); color:#fff; border-color:var(--accent);}
.q-hide{display:flex; align-items:center; gap:8px; color:var(--secondary); font-size:13px; margin:0 0 12px;}

/* ---------- 版本卡片（3122 vcard） ---------- */
.vcards{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:14px;}
.vcards.list{grid-template-columns:1fr;}
.vcard{background:var(--card-bg); border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); overflow:hidden; transition:.15s; display:flex; flex-direction:column;}
.vcard:hover{box-shadow:0 4px 14px rgba(20,40,80,.12); transform:translateY(-2px);}
.vcover{height:120px; background:#e9eef5 center/cover no-repeat; display:flex; align-items:center; justify-content:center; color:#fff; font-size:30px; font-weight:800; background-color:#cfdae8;}
.vbody{padding:12px 13px; display:flex; flex-direction:column; flex:1;}
.vtitle{font-size:15.5px; font-weight:700; margin-bottom:4px;}
.vintro{color:var(--secondary); font-size:12.5px; height:36px; overflow:hidden; margin-bottom:8px;}
.vtags{display:flex; gap:5px; flex-wrap:wrap; margin-bottom:10px; min-height:20px;}
.vtags i{background:#eef3f8; color:var(--accent); font-style:normal; font-size:11.5px; padding:2px 8px; border-radius:10px;}
.vbtns{margin-top:auto; display:flex; gap:7px; flex-wrap:wrap;}
.btn-query{flex:1; text-align:center; background:var(--accent); color:#fff; padding:8px 0; border-radius:7px; font-weight:700; font-size:13.5px;}
.btn-query:hover{background:var(--accent2); color:#fff;}
.btn-link{background:#f1f4f8; color:var(--primary); padding:8px 12px; border-radius:7px; font-weight:600; font-size:13px;}
.btn-link:hover{background:#e6edf5;}

/* ---------- 查询页三栏 ---------- */
.q-head{padding:6px 0 12px;}
.q-head h1{font-size:22px; margin:0 0 4px; font-weight:800;}
.q-head .sub{color:var(--secondary); margin:0; font-size:13px;}
.q-tabs{display:flex; gap:6px; margin-bottom:12px; flex-wrap:wrap;}
.q-tabs .tab-link{margin-left:auto; color:var(--accent); font-weight:600; align-self:center; font-size:13px;}
.q-3col{display:grid; grid-template-columns:300px 1fr 320px; gap:14px; align-items:start;}
.col{background:var(--card-bg); border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); min-height:420px; display:flex; flex-direction:column;}
.col-title{padding:11px 14px; font-weight:700; border-bottom:1px solid var(--line); background:#fafcfe; position:sticky; top:0;}
.list{padding:8px; overflow:auto; max-height:560px; flex:1;}
.li{padding:9px 11px; border-radius:7px; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:8px; border:1px solid transparent;}
.li:hover{background:#eef3f8;}
.li.on{background:#e3f0fa; border-color:#bcdcf0;}
.li .nm{font-weight:600; font-size:13.5px;}
.li .meta{color:var(--mute); font-size:12px; flex:0 0 auto;}
.stars{color:#f0a830; font-size:12px; margin-left:4px;}
.detail,.mapbox{padding:12px 14px; overflow:auto; max-height:560px; flex:1; font-size:13.5px;}
.detail .src,.mapbox .src{padding:10px 0; border-bottom:1px dashed var(--line);}
.detail .row1{display:flex; justify-content:space-between; gap:10px;}
.detail .who{font-weight:700; cursor:pointer; color:var(--primary);}
.detail .who:hover{color:var(--hover);}
.detail .sub{color:var(--mute); font-size:12px; margin-top:3px;}
.route{white-space:pre-wrap; background:#f8fafc; border:1px solid var(--line); border-radius:7px; padding:10px 12px; color:var(--primary); font-size:13px; line-height:1.7;}
.map-empty{color:var(--mute); font-size:13px; padding:14px 0;}
.map-empty code{background:#eef3f8; padding:1px 6px; border-radius:4px;}
.mh{color:var(--mute); font-size:12px; margin-bottom:6px;}

/* ---------- 按钮 ---------- */
.btn{display:inline-block; background:var(--accent); color:#fff; border:0; border-radius:7px; padding:9px 18px; cursor:pointer; font-size:14px; font-weight:700;}
.btn:hover{background:var(--accent2);}
.btn.ghost{background:#f1f4f8; color:var(--primary);}
.btn.ghost:hover{background:#e6edf5;}
.empty{color:var(--mute); text-align:center; padding:30px; font-size:14px;}

/* ---------- 后台（GM） ---------- */
.ad-box{max-width:420px; margin:30px auto; background:var(--card-bg); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow); padding:22px;}
.ad-box h2{margin:0 0 14px; font-size:18px;}
.ad-box input{width:100%; height:42px; border:1px solid var(--line); border-radius:8px; padding:0 13px; margin-bottom:12px; font-size:14px; outline:none;}
.ad-box input:focus{border-color:var(--accent);}
.ad-box .btn{width:100%;}
.ad-err{color:var(--red); font-size:13px; min-height:18px; margin-bottom:8px;}
.ad-switch{color:var(--accent); text-align:center; cursor:pointer; font-size:13px; margin-top:6px;}
.ad-main{max-width:920px; margin:0 auto;}
.ad-bar{display:flex; justify-content:space-between; align-items:center; margin-bottom:14px;}
.ad-bar h2{font-size:18px; margin:0;}
.vrow{display:flex; justify-content:space-between; align-items:center; background:var(--card-bg); border:1px solid var(--line); border-radius:9px; padding:13px 15px; margin-bottom:10px;}
.vrow .vt{font-weight:700; font-size:14.5px;}
.vrow .vs{color:var(--mute); font-size:12.5px; margin-top:3px;}
.tag-on{color:var(--ok); font-size:12px; font-weight:600; margin-left:6px;}
.tag-off{color:var(--mute); font-size:12px; margin-left:6px;}
.va{display:flex; gap:7px; align-items:center;}

/* 后台弹层（上传/编辑） */
.modal-mask{position:fixed; inset:0; background:rgba(15,25,45,.45); display:none; align-items:flex-start; justify-content:center; padding:40px 16px; z-index:200; overflow:auto;}
.modal-mask.on{display:flex;}
.modal{width:560px; max-width:100%; background:var(--card-bg); border-radius:12px; box-shadow:0 10px 40px rgba(0,0,0,.25); padding:22px;}
.modal h3{margin:0 0 14px; font-size:17px;}
.modal label{display:block; font-weight:600; margin:12px 0 5px; font-size:13px; color:var(--primary);}
.modal input,.modal textarea{width:100%; border:1px solid var(--line); border-radius:8px; padding:9px 12px; font-size:14px; outline:none; font-family:inherit;}
.modal input:focus,.modal textarea:focus{border-color:var(--accent);}
.modal textarea{min-height:150px; resize:vertical; font-family:Consolas,Menlo,monospace; font-size:13px;}
.modal .grid2{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.modal .hint{color:var(--mute); font-size:12px; margin:10px 0; line-height:1.6;}
.modal .hint code{background:#eef3f8; padding:1px 5px; border-radius:4px;}
.modal .filebar{display:flex; align-items:center; gap:10px; background:#f1f4f8; border:1px dashed #b9c6d6; border-radius:8px; padding:10px 12px; margin-bottom:8px;}
.modal .filebar input[type=file]{font-size:12px;}
.modal .filetip{color:var(--mute); font-size:12px;}
.modal .acts{display:flex; gap:10px; justify-content:flex-end; margin-top:16px;}
.modal .acts .btn{flex:0 0 auto;}

/* ---------- 页脚（友链风格） ---------- */
.sitefoot{border-top:1px solid var(--line); background:var(--card-bg); margin-top:24px;}
.sitefoot .wrap{padding:18px 16px; color:var(--mute); font-size:12.5px; display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.sitefoot .wrap .right{margin-left:auto;}
.sitefoot .flink{font-weight:700; margin-right:8px;}
.sitefoot a{color:var(--secondary); margin-right:14px;}
.sitefoot a:hover{color:var(--hover);}

/* ---------- 响应式 ---------- */
@media (max-width:900px){
  .layout{display:block;}
  .side{width:auto; flex:none; margin-bottom:14px;}
  .q-3col{grid-template-columns:1fr;}
  .col{min-height:auto; max-height:none;}
  .list,.detail,.mapbox{max-height:none;}
  .topbar .search-box{display:none;}
}

/* ==================== v2：3122 blcx 工作台（导航 + 侧栏登录 + 上传工具 + 版本表格） ==================== */
.topbar .tb-row{max-width:1280px; height:56px; display:flex; align-items:center; gap:14px;}
.topbar .logo{flex:0 0 auto;}
.topbar .topnav{flex:1; display:flex; gap:2px; align-items:center; flex-wrap:wrap; justify-content:center;}
.topbar .topnav a{padding:6px 11px; border-radius:6px; color:var(--primary); font-weight:600; font-size:13.5px; white-space:nowrap;}
.topbar .topnav a.active{background:var(--accent); color:#fff;}
.topbar .nav-actions .search-box{display:flex; align-items:center; background:#f1f4f8; border:1px solid var(--line); border-radius:18px; padding:5px 10px; gap:6px;}
.topbar .nav-actions .search-box input{border:0; background:transparent; outline:none; width:130px; font-size:12.5px;}
.topbar .nav-actions .s-ico{cursor:pointer; color:var(--secondary);}

/* 上传工具：左按钮右说明（3122 布局） */
.up-flex{display:flex; gap:22px; align-items:flex-start; text-align:left;}
.upload-area .upload-lb{flex:0 0 300px; text-align:center;}
.upload-area .up-textr{flex:1; margin-top:0; font-size:12.8px; color:var(--secondary); line-height:1.8;}
.upload-area .up-textr p{margin:0 0 6px;}
.up-status{min-height:18px; font-size:13px; font-weight:600; margin-top:8px;}
.up-status.ok{color:var(--ok);}
.up-status.err{color:var(--red);}

/* 侧栏登录按钮 */
.side-btn{display:block; text-align:center; width:100%;}
.side-btn.ghost{background:#f1f4f8; color:var(--primary);}
.user-auth .side-btn{padding:8px 0; font-size:13.5px;}

/* 版本管理表格（3122 vtable） */
.table-wrap{background:var(--card-bg); border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); overflow-x:auto;}
.vtable{width:100%; border-collapse:collapse; font-size:12.8px; min-width:980px;}
.vtable th{background:#fafcfe; color:var(--secondary); font-weight:700; padding:10px 8px; border-bottom:1px solid var(--line); white-space:nowrap; text-align:left;}
.vtable td{padding:9px 8px; border-bottom:1px solid #f0f3f7; vertical-align:middle; white-space:nowrap;}
.vtable tbody tr:hover{background:#f6f9fc;}
.vtable .td-empty{text-align:center; color:var(--mute); padding:34px 10px !important; font-size:13.5px; white-space:normal;}
.vicon{display:inline-flex; width:34px; height:34px; border-radius:7px; background:linear-gradient(135deg,#dfe9f3,#cfdae8); color:var(--accent); font-weight:800; font-size:13px; align-items:center; justify-content:center;}
.vcover-sm{width:40px; height:28px; object-fit:cover; border-radius:4px; border:1px solid var(--line);}
.td-title .tt{cursor:text; border-bottom:1px dashed #c9d4e0;}
.tt-in{width:180px; height:28px; border:1px solid var(--accent); border-radius:6px; padding:0 8px; font-size:13px; outline:none;}
.mut{color:var(--mute);}
.cp{cursor:pointer; background:#f1f4f8; border-radius:5px; padding:2px 7px; font-size:12px; color:var(--accent); max-width:170px; display:inline-block; overflow:hidden; text-overflow:ellipsis; vertical-align:middle; white-space:nowrap;}
.td-time{color:var(--secondary); font-size:12.3px;}
.td-warn{color:var(--red); font-weight:700;}
.en-sw{width:17px; height:17px; cursor:pointer; accent-color:var(--accent);}
.td-ops .op{cursor:pointer; margin-right:8px; font-weight:600; font-size:12.8px;}
.td-ops .op.red{color:var(--red);}

/* 登录 / 注册弹层 */
.login-modal{width:380px;}
.lm-tabs{display:flex; gap:6px; margin-bottom:6px;}
.lm-tabs button{flex:1; height:36px; border:1px solid var(--line); background:var(--card-bg); border-radius:8px; cursor:pointer; font-weight:700; font-size:13.5px; color:var(--secondary);}
.lm-tabs button.on{background:var(--accent); color:#fff; border-color:var(--accent);}

/* 页脚第二行 */
.foot-row2{border-top:1px dashed var(--line); padding:10px 16px; text-align:center; color:var(--mute); font-size:12px;}
.foot-row2 a{margin:0 8px;}

@media (max-width:900px){
  .up-flex{display:block;}
  .upload-area .upload-lb{margin-bottom:10px;}
  .topbar .tb-row{height:auto; flex-wrap:wrap; padding:8px 16px;}
}

/* ==================== v3：查询页（3122 风格：深色横幅 + 工具条 + 4 栏 + 屏宽/配色） ==================== */
.qpage{--band:#1e2f4b;--band-on:#d9534f;max-width:1400px; margin:14px auto 30px; background:var(--card-bg); border-radius:10px; box-shadow:var(--shadow); overflow:hidden;}
.qpage.sub{max-width:1400px; margin:14px auto 30px;}
.qpage.pm-1{max-width:1900px;}
.qpage.pm-2{max-width:none; margin:0; border-radius:0; box-shadow:none; min-height:100vh;}

/* 7 种配色（配置里可选） */
.qpage.skin-Default{--band:#1e2f4b;--band-on:#d9534f;}
.qpage.skin-Skin01{--band:#0f6f8f;--band-on:#e07b39;}
.qpage.skin-Skin02{--band:#8e3b6b;--band-on:#f0a830;}
.qpage.skin-Skin03{--band:#1d6b3f;--band-on:#e8b53a;}
.qpage.skin-Skin04{--band:#2456b8;--band-on:#ff8a3d;}
.qpage.skin-Skin05{--band:#101216;--band-on:#4f8cff;}
.qpage.skin-Skin06{--band:#8a6a20;--band-on:#3c3c3c;}

/* 深色横幅 */
.qband{display:flex; align-items:center; gap:14px; background:var(--band); padding:12px 18px; flex-wrap:wrap;}
.qband-l{display:flex; align-items:center; gap:10px; min-width:0;}
.qband .qlogo{height:38px; display:block;}
.qband .qtitle{color:#fff; font-size:19px; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:40vw;}
.qband-tabs{display:flex; gap:4px; align-items:center; margin:0 auto; flex-wrap:wrap;}
.qband-tabs button,.qband-tabs .band-link{height:34px; padding:0 15px; border-radius:6px; border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.08); color:#dbe4f0; font-size:13.5px; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; text-decoration:none;}
.qband-tabs button:hover,.qband-tabs .band-link:hover{background:rgba(255,255,255,.18); color:#fff;}
.qband-tabs button.on{background:var(--band-on); border-color:var(--band-on); color:#fff;}
.qband-r{color:#9fb3d1; font-size:13px; white-space:nowrap;}

/* 工具条 */
.qtool{display:flex; align-items:center; gap:14px; padding:10px 16px; border-bottom:1px solid var(--line); background:#fafcfe; flex-wrap:wrap;}
.qchk{display:flex; align-items:center; gap:6px; font-size:13px; color:var(--secondary); white-space:nowrap; cursor:pointer;}
.qsearch{flex:0 0 300px; display:flex; align-items:center; border:1px solid var(--line); border-radius:6px; background:#fff; padding-right:4px;}
.qsearch input{flex:1; border:0; outline:0; height:34px; padding:0 10px; font-size:13.5px; background:transparent; border-radius:6px;}
.qsearch button{border:0; background:transparent; color:var(--mute); cursor:pointer; font-size:14px; padding:0 6px;}
.qcnt{color:var(--mute); font-size:12.5px; white-space:nowrap;}
.qpm{margin-left:auto; display:flex; border:1px solid var(--line); border-radius:6px; overflow:hidden; background:#fff;}
.qpm button{height:30px; padding:0 13px; border:0; background:#fff; color:var(--secondary); cursor:pointer; font-size:12.5px; font-weight:600;}
.qpm button+button{border-left:1px solid var(--line);}
.qpm button.on{background:var(--band); color:#fff;}

/* 4 栏 */
.qcols{display:grid; grid-template-columns:1.05fr 1.15fr 1fr 1.1fr; gap:12px; padding:12px 14px 16px; align-items:stretch;}
.qcol{border:1px solid var(--line); border-radius:8px; overflow:hidden; display:flex; flex-direction:column; background:#fff; min-height:560px; max-height:calc(100vh - 190px);}
.qcol-h{background:var(--band); color:#fff; font-weight:700; font-size:13.5px; text-align:center; padding:9px 10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.qcol-b{flex:1; overflow-y:auto;}

/* 列表行（蓝色数字圆标） */
.cli{display:flex; align-items:center; gap:9px; padding:8px 10px; border-bottom:1px solid #f2f4f7; cursor:pointer;}
.cli:hover{background:#f7fafd;}
.cli.on{background:#eef5fc;}
.cli .num{flex:0 0 20px; height:20px; border-radius:50%; background:#3a8fd4; color:#fff; font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center;}
.cli .nm{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13.5px; font-weight:600; color:var(--primary);}
.cli .meta{flex:0 0 auto; color:var(--mute); font-size:11.5px; white-space:nowrap;}

/* 出处/掉落条目 */
.csrc{padding:8px 10px; border-bottom:1px solid #f2f4f7; font-size:13px;}
.csrc:hover{background:#f7fafd;}
.csrc.on{background:#eef5fc;}
.csrc .r1{display:flex; align-items:center; gap:8px;}
.csrc .who{flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600; color:var(--primary); cursor:pointer;}
.csrc .prob{color:var(--red); font-size:12px; font-weight:700;}
.csrc .sub{color:var(--mute); font-size:11.5px; margin-top:2px;}
.csrc .meta{color:var(--mute); font-size:11.5px;}

/* 地图 chip */
.cmp{margin:7px 9px; padding:8px 10px; border:1px solid var(--line); border-radius:6px; background:#fbfcfe; cursor:pointer; font-size:13px; font-weight:600; text-align:center;}
.cmp:hover{border-color:var(--band); color:var(--band);}
.cmp.on{background:var(--band); border-color:var(--band); color:#fff;}

/* 走法/占位 */
.route{padding:12px; font-size:13px; line-height:1.85; color:var(--primary); white-space:pre-wrap;}
.qph{padding:26px 14px; text-align:center; color:var(--mute); font-size:12.5px; line-height:1.8;}
.stars{color:#f0a020; font-size:11px;}

/* 过期页 */
.q-expired{display:flex; justify-content:center; padding:70px 20px;}
.qe-box{max-width:520px; text-align:center; background:#fff; border:1px solid var(--line); border-radius:12px; padding:40px 30px; box-shadow:var(--shadow);}
.qe-ico{font-size:40px;}
.qe-box h2{margin:12px 0 8px; font-size:20px;}
.qe-box p{margin:0; color:var(--secondary); font-size:13.5px; line-height:1.9;}

/* 顶栏真 logo */
.topbar .logo-img{width:180px; height:57px; display:block; object-fit:contain;}
.topbar .logo:before{display:none;}

/* 配置弹层行 */
.inline-chk{display:flex; align-items:center; gap:6px; font-size:13px; color:var(--secondary); cursor:pointer; padding-top:22px;}
.modal select{width:100%; height:38px; border:1px solid var(--line); border-radius:7px; padding:0 8px; font-size:13.5px; background:#fff;}

@media (max-width:1100px){
  .qcols{grid-template-columns:1fr 1fr;}
  .qcol{min-height:380px; max-height:none;}
  .qband-tabs{margin:0;}
}
@media (max-width:680px){
  .qcols{grid-template-columns:1fr;}
  .qsearch{flex:1 1 100%;}
  .qband .qtitle{max-width:70vw; font-size:16px;}
}

/* ==================== v4：整页加宽 + 表格不横向裁切（一眼看全） ==================== */
.wrap{max-width:1400px;}
.topbar .wrap{max-width:1400px;}
.topbar .tb-row{max-width:1400px;}
.vtable{font-size:12.2px; min-width:900px;}
.vtable th{padding:8px 6px;}
.vtable td{padding:7px 6px;}
.cp{max-width:130px;}
.tt-in{width:140px;}
.td-title .tt{max-width:150px; display:inline-block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; vertical-align:middle;}
.vtable .vicon{width:30px; height:30px; font-size:12px;}
.vcover-sm{width:34px; height:24px;}

/* ==================== v5：消除表格横向裁切（侧栏收窄 + 表格自适应） ==================== */
.layout{gap:14px;}
.side{width:198px; flex:0 0 198px;}
.user-box{padding:14px 10px;}
.user-img{width:52px;height:52px;font-size:22px;}
.user-name{font-size:14px;}
.side .user-list-box a{padding:8px 10px; font-size:13px;}
.vtable{min-width:0; table-layout:auto;}
.vtable th,.vtable td{white-space:nowrap; padding:7px 5px; font-size:12px;}
.td-ops .op{margin-right:5px; font-size:12px;}
.hub,.admin{padding:14px 0 22px;}
.main{min-width:0;}

/* ==================== v6：对齐 3122 外层画布（深蓝底 + 居中白卡）+ 列表两行 ==================== */
body.q-dark{background:#0e1f2f;}
body.q-dark .qpage{max-width:1000px; margin:26px auto 34px; border-radius:8px; box-shadow:0 6px 26px rgba(0,0,0,.45); overflow:hidden;}
body.q-dark .qpage.pm-1{max-width:1400px;}
body.q-dark .qpage.pm-2{max-width:none; margin:0; border-radius:0; box-shadow:none; min-height:100vh;}
body.q-dark .qcols{grid-template-columns:1fr 1fr 1fr 1fr; gap:10px; padding:12px 12px 14px;}
body.q-dark .qcol{min-height:600px; max-height:calc(100vh - 200px);}

/* 头部：图标 + 站名 + 右侧问候按钮 */
body.q-dark .qband{padding:12px 16px;}
body.q-dark .qband-l{gap:9px;}
body.q-dark .qico{width:30px; height:30px; border-radius:6px; background:linear-gradient(135deg,#3ddc84,#2aa35a); flex:0 0 auto; position:relative;}
body.q-dark .qico:after{content:""; position:absolute; inset:0; background:#fff; opacity:.85; -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 12h4l2-5 3 10 2-5h3' stroke='black' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/22px no-repeat; mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 12h4l2-5 3 10 2-5h3' stroke='black' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/22px no-repeat;}
body.q-dark .qband .qtitle{font-size:18px; font-weight:700; max-width:none;}
body.q-dark .qband-r{background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); color:#dce6f2; padding:6px 14px; border-radius:6px; font-size:12.5px;}

/* 工具条更紧凑 */
body.q-dark .qtool{padding:9px 12px; gap:10px; background:#fff;}
body.q-dark .qsearch{flex:0 0 230px;}

/* 列表项两行：上=序号+名称+星级，下=概率 */
body.q-dark .cli{flex-wrap:wrap; padding:7px 10px 6px; position:relative;}
body.q-dark .cli .num{width:19px; height:19px; font-size:10.5px; background:#2f7fd0;}
body.q-dark .cli .nm{font-size:13.5px; font-weight:600;}
body.q-dark .cli .st{flex:0 0 auto; color:#f0a020; font-size:11px; letter-spacing:-1px;}
body.q-dark .cli .meta{flex:1 0 100%; padding-left:28px; margin-top:1px; color:#b03a2e; font-size:11.5px; font-weight:600;}
body.q-dark .cli .meta .srcn{color:var(--mute); font-weight:400; margin-left:6px;}
body.q-dark .qcnt{font-size:12px;}
body.q-dark .qcol-h{font-size:13.5px; padding:8px 8px;}

/* 出处条目更紧凑 */
body.q-dark .csrc{padding:7px 10px;}
body.q-dark .qph{padding:22px 12px;}

@media (max-width:1100px){
  body.q-dark .qcols{grid-template-columns:1fr 1fr;}
  body.q-dark .qcol{min-height:400px;}
}

/* ==================== v7：logo 按主站比例（1460:460），不再压扁 ==================== */
.topbar .logo{text-decoration:none;}
.topbar .logo-img{width:186px; height:59px; display:block; object-fit:contain;}
.topbar{height:74px;}
.topbar .wrap{height:74px;}
@media (max-width:820px){
  .topbar .logo-img{width:132px; height:42px;}
  .topbar,.topbar .wrap{height:60px;}
}

/* v7b：查询页头部图标用清晰的剑盾造型（非 mask 脉冲线，避免糊） */
body.q-dark .qico{width:32px; height:32px; border-radius:7px; background:linear-gradient(135deg,#3ddc84,#22a35a); position:relative;}
body.q-dark .qico:after{content:""; position:absolute; left:50%; top:50%; width:18px; height:18px; transform:translate(-50%,-50%);
  background:no-repeat center/contain url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2l8 3v6c0 5-3.4 9.4-8 11-4.6-1.6-8-6-8-11V5l8-3z' fill='white'/><path d='M12 6v12M8 10h8' stroke='%2322a35a' stroke-width='1.6' stroke-linecap='round'/></svg>");}
