:root{
  color-scheme:light;
  --green:#2e7d32; --green-dark:#1b5e20; --green-light:#4caf50;
  --bg:#f4f7f2; --card:#ffffff; --text:#2b2b2b; --muted:#6b6b6b;
  --border:#d7e3d3; --border-soft:#eef2ec;
  --panel:#fbfdfa; --panel-soft:#f2f6f0;
  --heading:#1b5e20; --link:#1565c0;
  --shadow:0 2px 10px rgba(0,0,0,.05);
}
html[data-theme="dark"]{
  color-scheme:dark;
  --green:#66bb6a; --green-dark:#2e7d32; --green-light:#4caf50;
  --bg:#12161a; --card:#1b222a; --text:#dbe2ea; --muted:#8b98a5;
  --border:#2b3640; --border-soft:#26303a;
  --panel:#202830; --panel-soft:#26303a;
  --heading:#81c784; --link:#64b5f6;
  --shadow:0 2px 10px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
body{margin:0;font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;background:var(--bg);color:var(--text);line-height:1.7;transition:background .25s ease,color .25s ease}

.topbar{background:linear-gradient(135deg,var(--green-dark),var(--green));color:#fff;padding:12px 24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;box-shadow:0 2px 8px rgba(0,0,0,.18);position:sticky;top:0;z-index:100}
.topbar .brand{font-size:20px;font-weight:700;color:#fff;text-decoration:none;letter-spacing:1px}
.topbar .crumb{font-size:13px;color:#cbe6cd;word-break:break-all}
.theme-toggle{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.45);color:#fff;font-size:15px;line-height:1;padding:7px 11px;border-radius:16px;cursor:pointer;transition:background .2s;flex:0 0 auto}
.theme-toggle:hover{background:rgba(255,255,255,.28)}
.search-wrap{position:relative;flex:1;min-width:200px;max-width:420px}
.search-wrap input{width:100%;padding:8px 16px;border:1px solid var(--border);border-radius:20px;font-size:14px;outline:none;background:var(--card);color:var(--text);box-shadow:inset 0 1px 3px rgba(0,0,0,.12)}
.search-suggest{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18);max-height:320px;overflow:auto;display:none;z-index:200}
.search-suggest a{display:block;padding:8px 14px;color:var(--link);text-decoration:none;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.search-suggest a:hover{background:var(--green-light);color:#fff}
.allpages-link{color:#fff;font-size:13px;text-decoration:none;border:1px solid rgba(255,255,255,.55);padding:4px 14px;border-radius:14px;white-space:nowrap}
.allpages-link:hover{background:rgba(255,255,255,.18)}

.content{max-width:100%;margin:24px auto;padding:0 24px}
.article{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:28px 32px;box-shadow:var(--shadow);transition:background .25s ease,border-color .25s ease}
.article h1{border-bottom:2px solid var(--green-light);padding-bottom:8px;color:var(--heading)}
.article h2,.article h3,.article h4{color:var(--heading)}
.article img{max-width:100%;height:auto;border-radius:6px}
.article a{color:var(--link)}
.article a:hover{text-decoration:underline}
.pagetags{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:18px;padding-bottom:14px;border-bottom:2px solid var(--green-light)}
.tags-label{font-size:13px;color:var(--muted)}
.tag{display:inline-block;background:var(--green-light);color:#fff;font-size:12px;padding:2px 12px;border-radius:12px;text-decoration:none}
.article .tag{color:#fff}
.tag:hover{background:var(--green-dark)}
.tag-missing{background:var(--border);color:var(--muted);cursor:default}
.filepage{margin-bottom:20px}
.filepage-img{text-align:center;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:12px}
.filepage-img img{max-height:70vh;max-width:100%}
.filepage-meta{width:auto;min-width:320px}
.redirect-notice{color:var(--muted)}
.article table{border-collapse:collapse;width:100%;margin:12px 0}
.article th,.article td{border:1px solid var(--border);padding:6px 10px;text-align:left}
.article th{background:var(--green-light);color:#fff}
.article span[typeof="mw:File"] img{display:inline-block;vertical-align:middle}

/* ---- 作品列表等区块：图标与标题同一行（Fandom 样式）---- */
.section-icon{float:left;margin-right:10px;margin-bottom:4px}
.section-icon img{display:block;width:50px;height:50px;border-radius:6px;object-fit:cover}
.section-header{font-weight:700;font-size:17px;color:var(--heading);padding:12px 0 10px}
.section-master::after{content:"";display:table;clear:both}

/* ---- 画廊（wikia-gallery，Fandom 风格密集排列）---- */
.wikia-gallery{
  display:flex;flex-wrap:wrap;gap:14px;
  margin:14px 0;padding:0;list-style:none;
}
.wikia-gallery-item{
  margin:0;
  background:var(--panel);border:1px solid var(--border);border-radius:8px;
  padding:6px;box-shadow:0 1px 4px rgba(0,0,0,.06);
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
}
.wikia-gallery-item .thumb{
  display:flex;align-items:center;justify-content:center;
  background:var(--card);border:none;width:100%;overflow:hidden;
}
.wikia-gallery-item .gallery-image-wrapper{margin:0 auto}
.wikia-gallery-item img{
  display:block;max-width:100%;height:auto;border-radius:4px;
}
.wikia-gallery-caption{
  text-align:center;font-size:12px;color:var(--muted);padding:4px 2px 0;
}
.wikia-gallery-item:hover{box-shadow:0 4px 14px rgba(0,0,0,.14)}

/* ---- 角色信息卡（Portable Infobox，Fandom 风格）---- */
.portable-infobox{
  float:right;clear:right;width:300px;max-width:100%;
  margin:0 0 16px 20px;
  background:var(--card);border:1px solid var(--border);border-radius:10px;
  font-size:13px;line-height:1.65;box-shadow:var(--shadow);
  overflow:hidden;
}
.portable-infobox .pi-item-spacing{padding:6px 10px}
.portable-infobox .pi-title{
  background:linear-gradient(135deg,var(--green-dark),var(--green));
  color:#fff;text-align:center;font-size:16px;margin:0;padding:8px 10px;
}
.portable-infobox .pi-header{
  background:var(--green-light);color:#fff;font-size:13px;margin:0;
}
.portable-infobox .pi-group{border-top:1px solid var(--border-soft)}
.portable-infobox .pi-data{
  display:flex;align-items:flex-start;
  border-bottom:1px solid var(--border-soft);
}
.portable-infobox .pi-data:last-child{border-bottom:none}
.portable-infobox .pi-data-label{
  flex:0 0 96px;padding:6px 8px;background:var(--panel-soft);
  font-weight:600;font-size:12px;color:var(--heading);
}
.portable-infobox .pi-data-value{
  flex:1;padding:6px 8px;word-break:break-word;
}
.portable-infobox .pi-secondary-font{color:var(--heading)}
.portable-infobox .pi-smart-data{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--border-soft)}
.portable-infobox .pi-smart-data .pi-data-label{flex-basis:96px}
@media(max-width:720px){
  .portable-infobox{float:none;width:100%;margin:0 0 16px}
}

.searchbox{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.searchbox input{flex:1;max-width:420px;padding:10px 14px;border:1px solid var(--border);border-radius:8px;font-size:15px;background:var(--card);color:var(--text)}
#count{color:var(--muted);font-size:13px}

.pagelist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.pagelist li{background:var(--card);border:1px solid var(--border);border-radius:8px;overflow:hidden}
.pagelist a{display:block;padding:10px 14px;color:var(--link);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pagelist a:hover{background:var(--green-light);color:#fff}

.foot{text-align:center;color:var(--muted);font-size:12px;padding:24px 0 32px}
