/* 笨鸟校园 · 全局样式（卡片现代·严肃）—— 由渲染图 v6 提取并生产化 */
:root{
  --primary:#2a5aa8; --primary-hover:#234b8c; --primary-weak:#e8eef7;
  --bg:#f5f6f8; --surface:#fff;
  --text:#20242c; --muted:#6b7280; --border:#e7e9ee;
  --success:#2e7d4f; --danger:#c0392b;
  --radius:16px; --radius-sm:10px;
  --shadow:0 2px 8px rgba(16,24,40,.05);
  --shadow-hover:0 8px 24px rgba(16,24,40,.10);
  --serif:'Georgia','Times New Roman','Songti SC',serif;
  --sans:-apple-system,'Segoe UI',Roboto,'PingFang SC','Microsoft YaHei',Arial,sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{font-family:var(--sans);font-size:15px;line-height:1.6;color:var(--text);background:var(--bg);}
a{color:var(--primary);text-decoration:none;cursor:pointer;}
a:hover{text-decoration:underline;}
img{max-width:100%;}
svg{stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}

/* ===== 顶部栏 ===== */
#appbar{position:fixed;top:0;left:0;right:0;height:60px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;padding:0 20px;z-index:900;}
.brand{display:flex;align-items:center;gap:10px;white-space:nowrap;text-decoration:none;}
.brand:hover{text-decoration:none;}
.brand .name{font-family:var(--serif);font-size:18px;font-weight:bold;color:var(--text);letter-spacing:.02em;}
.search{flex:1;max-width:480px;position:relative;display:flex;align-items:center;}
.search input{width:100%;height:40px;border:1px solid var(--border);border-radius:20px;background:#f7f8fa;padding:0 40px 0 14px;font-size:14.5px;outline:none;transition:.15s;color:var(--text);}
.search input:focus{background:#fff;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-weak);}
.search .ic{position:absolute;right:4px;top:4px;width:32px;height:32px;border-radius:6px;color:var(--muted);display:flex;align-items:center;justify-content:center;pointer-events:none;}
.actions{display:flex;align-items:center;gap:8px;margin-left:auto;white-space:nowrap;}
.btn{display:inline-flex;align-items:center;gap:6px;justify-content:center;background:var(--primary);color:#fff;border:none;border-radius:8px;padding:9px 18px;font-size:14px;font-weight:600;cursor:pointer;transition:.15s;text-decoration:none;}
.btn:hover{background:var(--primary-hover);text-decoration:none;}
.btn.outline{background:#fff;color:var(--primary);border:1px solid var(--primary);}
.btn.outline:hover{background:var(--primary-weak);}
.btn.ghost{background:#f2f3f5;color:var(--text);}
.btn.ghost:hover{background:#e7e9ee;}
.btn.sm{padding:6px 13px;font-size:13px;}
.iconbtn{width:38px;height:38px;border-radius:8px;background:#fff;border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;color:var(--muted);cursor:pointer;}

/* 桌面横向导航 */
#topnav{position:fixed;top:60px;left:0;right:0;height:46px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:2px;padding:0 16px;z-index:890;}
#topnav a{padding:8px 14px;font-size:14px;color:var(--text);border-radius:8px;white-space:nowrap;text-decoration:none;}
#topnav a:hover{background:var(--bg);}
#topnav a.active{color:var(--primary);font-weight:600;background:var(--primary-weak);}

/* 头像（中性灰蓝系，非彩虹） */
.avatar{width:38px;height:38px;border-radius:50%;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:15px;flex:none;letter-spacing:.02em;background:#5b6b7f;vertical-align:middle;}
.avatar.lg{width:72px;height:72px;font-size:28px;}
.avatar.sm{width:28px;height:28px;font-size:12px;}
.avatar.photo{background:#eef1f5;overflow:hidden;padding:0;}
.avatar.photo img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;}

/* ===== 内容 ===== */
.content{margin:0 auto;max-width:1080px;padding:122px 24px 90px;}
.card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin:0 0 14px;}
.card.hover{transition:box-shadow .18s,transform .18s;cursor:pointer;}
.card.hover:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);}
.card.pad-sm{padding:12px 16px;}
a.card{color:var(--text);text-decoration:none;}
a.card:hover{text-decoration:none;color:var(--text);}

.sec-title{font-size:16px;font-weight:700;color:#111;display:flex;align-items:center;gap:10px;margin:26px 0 12px;}
.sec-title::before{content:"";width:4px;height:16px;border-radius:2px;background:var(--primary);flex:none;}
.sec-title .more{margin-left:auto;font-size:13px;font-weight:500;color:var(--primary);}
.sec-title .sub{font-size:12.5px;color:var(--muted);font-weight:400;margin-left:2px;}

h1.pg-title{font-family:var(--serif);font-size:1.75em;font-weight:bold;color:#111;margin:6px 0 4px;line-height:1.3;}
.pg-sub{color:var(--muted);font-size:14px;margin-bottom:18px;}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}

.chip{display:inline-block;padding:6px 14px;border-radius:8px;background:#f0f1f4;border:1px solid var(--border);color:var(--text);font-size:13.5px;cursor:pointer;margin:0 4px 8px 0;text-decoration:none;}
.chip:hover{text-decoration:none;}
.chip.active{background:var(--primary-weak);border-color:#b9c8e8;color:var(--primary);font-weight:600;}

.badge{display:inline-block;font-size:10px;padding:1px 7px;border-radius:5px;vertical-align:middle;font-weight:500;border:1px solid transparent;letter-spacing:.02em;}
.badge.verified{background:#e7f3ec;color:var(--success);border-color:#bcdcc9;}
.badge.unverified{background:#f1f3f4;color:#5f6368;border-color:#e0e3e6;}
.badge.type{background:#f0f1f4;color:var(--muted);border-color:var(--border);}

.muted{color:var(--muted);}
.small{font-size:12.5px;}
.price{color:var(--danger);font-weight:700;font-size:16px;}

/* 文件包卡片 */
.pkg .pkg-top{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;}
.pkg .pkg-title{font-weight:700;font-size:15.5px;color:#111;line-height:1.4;}
.pkg .pkg-meta{font-size:12.5px;color:var(--muted);margin-top:3px;}
.pkg .files{margin-top:12px;border-top:1px solid var(--border);padding-top:8px;}
.pkg .file{display:flex;align-items:center;gap:10px;padding:7px 0;font-size:14px;border-bottom:1px solid #f0f1f4;}
.pkg .file:last-child{border-bottom:none;}
.ftype{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:24px;border-radius:5px;background:#eef1f5;color:var(--muted);font-size:11px;font-weight:700;flex:none;padding:0 5px;}
.pkg .file .fn{flex:1;color:var(--text);font-weight:500;word-break:break-all;}
.pkg .file .fs{color:var(--muted);font-size:12px;white-space:nowrap;}
.pkg .file .dl{background:var(--primary);color:#fff;border:none;border-radius:6px;padding:5px 14px;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap;text-decoration:none;}
.pkg .file .dl:hover{background:var(--primary-hover);text-decoration:none;}
.pkg .acts{margin-top:10px;display:flex;gap:6px;flex-wrap:wrap;}
.mini-act{font-size:12.5px;color:var(--muted);border:1px solid var(--border);border-radius:6px;padding:3px 12px;cursor:pointer;background:#fff;text-decoration:none;}
.mini-act:hover{color:var(--primary);border-color:var(--primary);text-decoration:none;}

/* 商品卡片 */
.prod{background:#fff;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:box-shadow .18s,transform .18s;}
.prod:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);}
.prod .img{height:150px;background:#eef1f5;display:flex;align-items:center;justify-content:center;color:#aab4c2;overflow:hidden;}
.prod .img img{width:100%;height:100%;object-fit:cover;}
.prod .bd{padding:12px 14px;}
.prod .t{font-weight:600;font-size:14.5px;color:#111;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.prod .row{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12.5px;color:var(--muted);}
.prod .seller{display:flex;align-items:center;gap:6px;color:var(--text);font-size:12.5px;margin-left:auto;}
.prod a.t{color:#111;text-decoration:none;}

/* 表单 */
.field{margin:14px 0;max-width:560px;}
.field label{display:block;font-weight:600;margin-bottom:6px;font-size:13.5px;}
.field input[type=text],.field input[type=password],.field input[type=email],.field input[type=file],.field select,.field textarea{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:8px;font-size:14.5px;background:#fff;outline:none;color:var(--text);}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-weak);}
.field .help{font-size:12px;color:var(--muted);margin-top:5px;}

/* 表格 */
table.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px;background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;}
table.tbl th,table.tbl td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border);}
table.tbl th{background:#f7f8fa;font-weight:600;}
table.tbl tr:last-child td{border-bottom:none;}

/* 二维码占位 */
.qrcode{width:130px;height:130px;border:1px solid var(--border);border-radius:8px;display:inline-block;background:repeating-linear-gradient(0deg,#20242c 0 8px,transparent 8px 16px),repeating-linear-gradient(90deg,#20242c 0 8px,transparent 8px 16px),#fff;}
.qrcode img{width:100%;height:100%;object-fit:cover;}

.footer{margin-top:32px;padding-top:14px;border-top:1px solid var(--border);font-size:12.5px;color:var(--muted);line-height:2;}

.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin:8px 0 16px;overflow-x:auto;}
.tabs a{padding:10px 16px;font-size:14px;color:var(--muted);white-space:nowrap;border-bottom:2px solid transparent;text-decoration:none;}
.tabs a:hover{text-decoration:none;}
.tabs a.active{color:var(--primary);font-weight:600;border-bottom-color:var(--primary);}

/* 闪存消息 */
.flash{padding:12px 16px;border-radius:10px;margin:0 0 14px;font-size:14px;}
.flash.success{background:#e7f3ec;color:var(--success);border:1px solid #bcdcc9;}
.flash.error{background:#fbeaea;color:var(--danger);border:1px solid #f0c8c8;}
.flash.info{background:#e8eef7;color:var(--primary);border:1px solid #c9d8ee;}

/* 空状态 */
.empty{text-align:center;color:var(--muted);padding:40px 20px;font-size:14px;}
.empty .big{font-size:34px;margin-bottom:8px;}

/* 首页 */
.home-hero{text-align:center;margin-bottom:20px;}
.home-hero .slogan{font-size:19px;font-weight:700;color:#111;margin-bottom:16px;}
.home-search{background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:6px;display:flex;align-items:center;gap:6px;margin-bottom:16px;}
.home-search svg{width:20px;height:20px;color:var(--muted);margin-left:10px;flex:none;}
.home-search input{flex:1;border:none;outline:none;font-size:16px;color:var(--text);background:transparent;padding:11px 4px;min-width:0;}
.home-search .go{background:var(--primary);color:#fff;border:none;border-radius:12px;padding:10px 22px;font-size:15px;font-weight:600;cursor:pointer;flex:none;}
.home-search-lg{max-width:640px;margin:0 auto 16px;padding:8px;border-radius:18px;}
.home-search-lg input{font-size:17px;padding:14px 6px;}
.home-search-lg svg{width:22px;height:22px;margin-left:12px;}
.home-search-lg .go{padding:12px 28px;font-size:16px;border-radius:12px;}
.hotread{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:18px;margin-bottom:16px;cursor:pointer;transition:.18s;color:var(--text);text-decoration:none;}
.hotread:hover{box-shadow:var(--shadow-hover);text-decoration:none;}
.hotread .ic{width:52px;height:52px;border-radius:12px;background:var(--primary-weak);color:var(--primary);display:flex;align-items:center;justify-content:center;flex:none;}
.hotread .ic svg{width:24px;height:24px;}
.hotread .title{font-size:17px;font-weight:700;color:#111;}
.hotread .sub{font-size:13px;color:var(--muted);}
.hotread .arrow{margin-left:auto;color:var(--muted);font-size:24px;line-height:1;}
.broadcast .bhead{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.broadcast .bitem{padding:11px 0;border-bottom:1px solid #f0f1f4;font-size:14px;}
.broadcast .bitem:last-child{border-bottom:none;}
.btag{font-size:11px;font-weight:700;color:var(--primary);background:var(--primary-weak);border-radius:4px;padding:2px 7px;margin-right:8px;flex:none;}

/* 随机条目卡片 */
.random-card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;color:var(--text);text-decoration:none;transition:box-shadow .18s,transform .18s;}
.random-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);text-decoration:none;}
.random-card img{width:100%;height:120px;object-fit:cover;border-radius:8px;margin-bottom:8px;background:#eef1f5;}
.random-card .random-title{font-weight:600;color:#111;}
.random-card .random-sub{font-size:12.5px;color:var(--muted);margin-top:2px;}

/* 词条简介图（维基百科式） */
.leadbox{float:right;width:250px;margin:0 0 14px 16px;background:#f8f9fb;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.leadimg{background:#f2f4f7;border:1px dashed var(--border);border-radius:var(--radius);min-height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);font-size:13px;gap:6px;cursor:pointer;margin:6px;padding:14px;position:relative;overflow:hidden;}
.leadimg img{max-width:100%;max-height:200px;border-radius:8px;}
.leadimg svg{width:34px;height:34px;color:#b0b8c4;}
.leadimg:hover{border-color:var(--primary);color:var(--primary);}
.leadimg:hover svg{color:var(--primary);}
.thumbcaption{font-size:12px;color:var(--muted);text-align:center;padding:0 10px 10px;line-height:1.5;}

/* Logo（笨鸟校园） */
.logo-mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#FF8A3D,#FF5E7E);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(255,94,126,.32);flex:none;}
.logo-mark svg{width:26px;height:26px;}
.logo-mark svg *{stroke:none;}
.logo-mark.lg{width:64px;height:64px;border-radius:18px;}
.logo-mark.lg svg{width:44px;height:44px;}

/* 评分 */
.rating-box{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:12px;}
.rating-avg{display:inline-flex;align-items:center;gap:6px;font-size:15px;}
.rate-stars{display:inline-flex;align-items:center;gap:2px;}
.rate-star{font-size:20px;color:#d0d5dc;cursor:pointer;transition:color .15s;line-height:1;user-select:none;}
.rate-star.on{color:#f5a623;}
.rate-star:hover{color:#f5a623;}

/* 维基式内部链接 */
.wiki-link{color:var(--primary);}
.wiki-link.missing{color:#c0392b;border-bottom:1px dashed #c0392b;}
.wiki-link.missing:hover{color:#a02a20;text-decoration:none;}

/* 相册 */
.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:14px;}
.album-item{position:relative;aspect-ratio:1/1;border-radius:10px;overflow:hidden;cursor:pointer;background:#eef1f5;border:1px solid var(--border);}
.album-item img{width:100%;height:100%;object-fit:cover;transition:transform .18s;display:block;}
.album-item:hover img{transform:scale(1.05);}
.album-del{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;background:rgba(0,0,0,.5);color:#fff;border:none;font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.album-del:hover{background:rgba(192,57,43,.85);}

/* 首页快捷入口 */
.quick-entry{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;color:var(--text);text-decoration:none;transition:.18s;}
.quick-entry:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);text-decoration:none;}
.quick-entry .qe-ic{font-size:26px;flex:none;}
.quick-entry .qe-title{font-weight:700;font-size:16px;color:#111;}
.quick-entry .qe-sub{font-size:12.5px;color:var(--muted);}

/* 维基正文（条目正文/预览的排版） */
.wiki-p{margin:0 0 8px;}
.wiki-h{margin:16px 0 8px;font-size:1.2em;color:#111;line-height:1.4;font-family:var(--serif);}
.wiki-quote{border-left:3px solid var(--primary-weak);margin:0 0 10px;padding:4px 0 4px 12px;color:var(--muted);}

/* 维基编辑器（创建/编辑条目用） */
.wiki-editor{margin-top:6px;}
.wiki-toolbar{display:flex;gap:4px;flex-wrap:wrap;background:#f7f8fa;border:1px solid var(--border);border-bottom:none;border-radius:8px 8px 0 0;padding:6px;}
.wiki-btn{min-width:30px;height:30px;padding:0 8px;background:#fff;border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;color:var(--text);}
.wiki-btn:hover{background:var(--primary-weak);border-color:var(--primary);color:var(--primary);}
.wiki-editor textarea{border-radius:0 0 8px 8px;}
.wiki-preview{border:1px solid var(--border);border-radius:0 0 8px 8px;padding:12px 14px;background:#fff;min-height:120px;margin-bottom:14px;}
.wiki-link-pop{background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-hover);padding:8px;margin:4px 0 8px;z-index:10;position:relative;}
.wiki-link-pop input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:14px;outline:none;}
.wiki-link-pop input:focus{border-color:var(--primary);}
.wiki-link-results{max-height:180px;overflow-y:auto;margin-top:6px;}
.wiki-link-item{padding:7px 10px;border-radius:6px;cursor:pointer;font-size:14px;}
.wiki-link-item:hover{background:var(--primary-weak);color:var(--primary);}

/* 今日猫咪 */
.today-cat{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#fff,#fff8f0);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;margin-bottom:16px;flex-wrap:wrap;}
.today-cat-body{display:flex;align-items:center;gap:14px;flex:1;min-width:200px;text-decoration:none;color:var(--text);}
.today-cat-body:hover{text-decoration:none;}
.today-cat-img{width:72px;height:72px;border-radius:12px;object-fit:cover;flex:none;background:#eef1f5;}
.today-cat-img.ph{display:flex;align-items:center;justify-content:center;font-size:36px;}
.today-cat-name{font-weight:700;font-size:17px;color:#111;}
.today-cat-btn{flex:none;background:linear-gradient(135deg,#FF8A3D,#FF5E7E);white-space:nowrap;}
.today-cat-btn:hover{background:linear-gradient(135deg,#f07a2f,#e84f6f);}

/* 首页快捷入口行 */
.quick-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px;}
.quick-row .quick-entry{flex:1;min-width:200px;}

/* 应用下载（两个并排大正方形按钮） */
.app-download{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;padding:18px;}
.app-dl-btn{width:150px;height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#fff;border:1px solid var(--border);border-radius:18px;cursor:pointer;transition:box-shadow .18s,transform .18s,border-color .18s;text-decoration:none;color:var(--text);}
.app-dl-btn:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);text-decoration:none;border-color:var(--primary-weak);}
.app-dl-btn svg{width:58px;height:58px;fill:#333;stroke:none;}
.app-dl-btn span{font-weight:600;font-size:14px;}
@media (max-width:767px){ .app-dl-btn{width:44vw;max-width:150px;height:44vw;max-height:150px;} }

/* 热门阅读（桌面 2 列 + 名次） */
.hot-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;}
.hot-item{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;text-decoration:none;color:var(--text);transition:box-shadow .18s,transform .18s;}
.hot-item:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);text-decoration:none;}
.hot-rank{font-size:22px;font-weight:800;color:var(--muted);flex:none;width:34px;text-align:center;}
.hot-rank.top{color:var(--primary);}
.hot-body{min-width:0;}
.hot-title{font-weight:700;color:#111;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
@media (max-width:767px){ .hot-grid{grid-template-columns:1fr;} }

/* 评论 */
.comment-item{padding:10px 0;border-bottom:1px solid #f0f1f4;}
.comment-item:last-child{border-bottom:none;}
.comment-reply{margin-left:24px;padding-left:12px;border-left:2px solid #eef1f5;margin-top:6px;}

/* 后台 */
.adminbar{background:#1f2430;color:#fff;border-radius:10px;padding:10px 16px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:16px;}
.adminbar a{color:#aec8f0;}
.adminbar .sp{flex:1;}
.admin-shell{display:flex;gap:16px;align-items:flex-start;}
.admin-side{width:200px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 0;flex:none;}
.admin-side .t{padding:8px 16px;font-weight:700;color:#111;border-bottom:1px solid var(--border);margin-bottom:6px;}
.admin-side a{display:block;padding:9px 16px;font-size:14px;color:var(--text);text-decoration:none;}
.admin-side a:hover{background:var(--bg);text-decoration:none;}
.admin-side a.active{color:var(--primary);background:var(--primary-weak);font-weight:600;border-left:3px solid var(--primary);}
.admin-main{flex:1;min-width:0;}

/* 游戏（更大、自适应手机/桌面：尽量撑满可用高度，比例不变） */
.game-wrap{position:relative;margin:0 auto;width:min(100%,560px,calc((100dvh - 160px) * 420 / 680));aspect-ratio:420/680;}
.game-wrap canvas{width:100%;height:100%;border-radius:14px;box-shadow:0 6px 30px rgba(0,0,0,.12);cursor:pointer;display:block;touch-action:manipulation;}
@media (max-width:767px){
  .game-wrap{width:min(100%,calc((100dvh - 130px) * 420 / 680));}
}
.lb-rank{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0;}
.lb-rank.gold{background:#d4a853;color:#fff;}
.lb-rank.silver{background:#a0a0a0;color:#fff;}
.lb-rank.bronze{background:#cd7f32;color:#fff;}
.lb-rank.normal{color:var(--muted);}
.lb-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid #f0f1f4;}
.lb-item:last-child{border-bottom:none;}
.lb-item.me{background:linear-gradient(135deg,rgba(42,90,168,.06),rgba(42,90,168,.01));}
.lb-info{flex:1;min-width:0;}
.lb-name{font-size:13.5px;font-weight:650;}
.lb-name .me-tag{font-size:11px;color:var(--primary);margin-left:4px;font-weight:500;}
.lb-sub{font-size:11px;color:var(--muted);}
.lb-score{font-size:16px;font-weight:800;color:var(--primary);flex-shrink:0;}
.my-stats{background:var(--surface);border:1.5px solid rgba(42,90,168,.25);border-radius:var(--radius);padding:16px 20px;display:flex;align-items:center;gap:14px;margin-bottom:14px;}

/* ===== UI 打磨：丝滑过渡与现代化按钮 ===== */
textarea{resize:vertical;}
.btn{transition:background .15s, transform .1s, box-shadow .18s, border-color .15s;}
.btn:active{transform:scale(.97);}
.btn.ghost:active,.btn.outline:active{transform:scale(.97);}
.iconbtn{transition:color .15s,border-color .15s,background .15s;}
.iconbtn:hover{color:var(--primary);border-color:var(--primary);}
.card.hover,.prod,.quick-entry,.random-card,.hotread{transition:box-shadow .18s,transform .18s;}
.mini-act,.chip,.tab-btn{transition:color .15s,border-color .15s,background .15s;}
.chip:hover{border-color:var(--primary);color:var(--primary);}
#topnav a{transition:background .15s,color .15s;}
.bottomnav a svg{transition:transform .15s;}
.bottomnav a:hover svg{transform:translateY(-2px);}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
.content{animation:fadeIn .28s ease;}
.pkg .file .dl:hover{background:var(--primary-hover);transform:translateY(-1px);}

/* ===== 移动端（真实媒体查询） ===== */
.bottomnav{display:none;}
@media (max-width:767px){
  #topnav{display:none;}
  .bottomnav{display:flex;position:fixed;left:0;right:0;bottom:0;min-height:62px;background:#fff;border-top:1px solid var(--border);align-items:center;justify-content:space-around;z-index:900;padding:8px 0 calc(env(safe-area-inset-bottom) + 18px);}
  .bottomnav a{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:var(--muted);text-decoration:none;}
  .bottomnav a:hover{text-decoration:none;}
  .bottomnav a svg{width:22px;height:22px;}
  .bottomnav a.active{color:var(--primary);font-weight:600;}
  .content{max-width:none;padding:76px 14px calc(116px + env(safe-area-inset-bottom));}
  #appbar{padding:0 10px;gap:8px;}
  .brand .name{font-size:16px;}
  .hide-m{display:none;}
  .grid{grid-template-columns:1fr;}
  .grid-2{grid-template-columns:1fr;}
  .sec-title{margin-top:20px;}
  .leadbox{float:none;width:100%;margin:0 0 14px;}
  .admin-shell{flex-direction:column;}
  .admin-side{width:100%;display:flex;flex-wrap:wrap;gap:2px;padding:8px;}
  .admin-side .t{width:100%;}
  .admin-side a{display:inline-block;border-left:none;border-radius:8px;padding:6px 12px;}
}
