跳转到内容

MediaWiki:Common.js:修订间差异

来自简中Robloxian Wiki
无编辑摘要
无编辑摘要
标签:已被回退
第1行: 第1行:
// ========== RSCA 导航替换 ==========
/* ========================================
  RSCA — Roblox Simplified Chinese Archives
  ROBLOX 简中档案 · 全局样式表
  ======================================== */


$(function() {
:root {
    // 隐藏 Vector 默认元素
  --bg: #0e0e0e;
    var toHide = ['p-logo', 'p-navigation', 'p-search', 'p-personal', 'p-tb', 'p-lang',
  --bg-panel: #141414;
                  'mw-panel', 'mw-head-base', 'mw-page-base', 'p-banner', 'siteNotice',
  --bg-header: #1a1a1a;
                  'footer', 'catlinks'];
  --border: #333;
    toHide.forEach(function(id) {
  --border-light: #444;
        var el = document.getElementById(id);
  --text: #d8d8d8;
        if (el) el.style.display = 'none';
  --text-dim: #999;
    });
  --text-faint: #666;
   
  --red: #c41e3a;
    // 隐藏 Vector 菜单
  --gold: #d4a017;
    var menus = document.querySelectorAll('.vector-menu, .vector-menu-tabs, .vector-menu-content, .vector-user-links, .vector-user-menu, .vector-search-box');
  --blue: #4a90d9;
    menus.forEach(function(m) { m.style.display = 'none'; });
  --max-w: 960px;
   
  --radius: 4px;
    // 替换导航栏
  --gap: 20px;
    var nav = document.getElementById('mw-navigation');
}
    if (nav) {
 
        nav.innerHTML = '<div style="max-width:960px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;justify-content:space-between;background:#1a1a1a;border-bottom:2px solid #c41e3a;">' +
*, *::before, *::after { box-sizing: border-box; }
            '<div style="display:flex;align-items:center;gap:12px;">' +
 
                '<span style="font-size:1.5em;font-weight:900;letter-spacing:0.15em;color:#ccc;text-transform:uppercase;">RSCA</span>' +
html, body, #content, .mw-body, .mw-page-container, #bodyContent, .mw-parser-output {
                '<span style="font-size:0.75em;color:#888;letter-spacing:0.08em;">Roblox Simplified Chinese Archives</span>' +
  background: var(--bg) !important;
            '</div>' +
  color: var(--text) !important;
            '<div style="display:flex;gap:2px;">' +
  font-family: 'Helvetica Neue', 'Arial', 'Microsoft YaHei', sans-serif;
                '<a href="/index.php/帮助:入门" style="padding:6px 14px;color:#b0b0b0;font-size:0.85em;letter-spacing:0.05em;border-radius:4px;" onmouseover="this.style.background=\'#333\';this.style.color=\'#fff\'" onmouseout="this.style.background=\'\';this.style.color=\'#b0b0b0\'">入门</a>' +
  line-height: 1.65;
                '<a href="/index.php/帮助:联系我们" style="padding:6px 14px;color:#b0b0b0;font-size:0.85em;letter-spacing:0.05em;border-radius:4px;" onmouseover="this.style.background=\'#333\';this.style.color=\'#fff\'" onmouseout="this.style.background=\'\';this.style.color=\'#b0b0b0\'">联系</a>' +
}
                '<a href="/index.php/特殊:随机" style="padding:6px 14px;color:#b0b0b0;font-size:0.85em;letter-spacing:0.05em;border-radius:4px;" onmouseover="this.style.background=\'#333\';this.style.color=\'#fff\'" onmouseout="this.style.background=\'\';this.style.color=\'#b0b0b0\'">随机</a>' +
 
                '<a href="/index.php/特殊:最近更改" style="padding:6px 14px;color:#b0b0b0;font-size:0.85em;letter-spacing:0.05em;border-radius:4px;" onmouseover="this.style.background=\'#333\';this.style.color=\'#fff\'" onmouseout="this.style.background=\'\';this.style.color=\'#b0b0b0\'">最近更改</a>' +
a { color: var(--text-dim); text-decoration: none; }
            '</div>' +
a:hover { color: #fff; }
        '</div>';
.mw-parser-output { background: transparent; }
        nav.style.display = 'block';
 
        nav.style.background = '#1a1a1a';
/* ---------- 隐藏 Vector 默认元素 ---------- */
        nav.style.borderBottom = '2px solid #c41e3a';
 
        nav.style.height = 'auto';
#p-logo, #p-navigation, #p-search, #p-personal, #p-tb, #p-lang,
        nav.style.position = 'static';
.vector-menu, .vector-menu-tabs, .vector-menu-content,
    }
.vector-menu-content-list, .vector-menu-heading,
   
.vector-user-links, .vector-user-menu,
    // 隐藏搜索框
#mw-panel, #mw-head-base, #mw-page-base,
    var search = document.getElementById('p-search');
#p-banner, #siteNotice, #centralNotice,
    if (search) search.style.display = 'none';
#catlinks, .catlinks, .mw-indicators,
   
.mw-editsection, .mw-editsection-like,
    // 隐藏用户菜单
#pagehistory, #contentSub, #contentSub2, #jump-to-nav,
    var personal = document.getElementById('p-personal');
#footer, .breadcrumb, .subpages,
    if (personal) personal.style.display = 'none';
.toc, .toctoggle, .toctogglesearch,
   
#p-cactions, .searchButton, #mw-search-top-table,
    // 隐藏侧边栏
.vector-search-box, .vector-search-box-input, .vector-search-box-button,
    var panel = document.getElementById('mw-panel');
.vector-user-menu-anon-editor, .vector-user-menu-legacy,
    if (panel) panel.style.display = 'none';
.firstHeading, #firstHeading, .mw-page-title, .page-title {
   
  display: none !important;
    // 隐藏页脚
}
    var footer = document.getElementById('footer');
 
    if (footer) footer.style.display = 'none';
#mw-head {
   
  display: block !important;
    // 隐藏 logo
  background: var(--bg-header) !important;
    var logo = document.getElementById('p-logo');
  border-bottom: 2px solid var(--red) !important;
    if (logo) logo.style.display = 'none';
  height: auto !important;
});
  margin: 0 !important;
  padding: 0 !important;
  position: static !important;
}
 
#mw-content-text {
  max-width: var(--max-w) !important;
  margin: 0 auto !important;
  padding: 0 var(--gap) !important;
}
 
.mw-parser-output { max-width: 100% !important; }
 
/* ---------- 面板系统 ---------- */
 
.rsca-panel {
  border: 1px solid var(--border);
  margin-bottom: var(--gap);
  background: var(--bg-panel);
  border-radius: var(--radius);
}
 
.rsca-panel-header {
  background: var(--bg-header);
  color: #ccc;
  padding: 10px 14px;
  font-weight: bold;
  font-size: 0.95em;
  letter-spacing: 0.06em;
  border-bottom: 1px solid var(--border);
  border-radius: var(--radius) var(--radius) 0 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
 
.rsca-panel-header .label {
  font-family: 'Courier New', monospace;
  color: var(--text-dim);
  font-size: 0.8em;
  letter-spacing: 0.1em;
  font-weight: normal;
}
 
.rsca-panel-body { padding: 14px; }
.rsca-panel-body p { margin: 0 0 10px 0; }
.rsca-panel-body ul { margin: 0; padding-left: 18px; }
.rsca-panel-body li { margin-bottom: 4px; font-size: 0.9em; }
 
.rsca-rec {
  border-left: 3px solid var(--border-light);
  background: var(--bg-header);
  padding: 10px 14px;
  margin: 10px 0;
  font-size: 0.9em;
  line-height: 1.65;
  border-radius: 0 var(--radius) var(--radius) 0;
}
 
.rsca-rec.warn { border-left-color: var(--red); }
.rsca-rec.note { border-left-color: var(--blue); }
.rsca-rec .label { font-weight: bold; color: var(--text-dim); margin-bottom: 4px; display: block; }
 
.rsca-infocard {
  float: right;
  width: 280px;
  margin: 0 0 14px 18px;
  border: 1px solid var(--border-light);
  font-size: 0.85em;
  background: var(--bg-panel);
  border-radius: var(--radius);
}
 
.rsca-infocard-header {
  background: var(--bg-header);
  color: #ccc;
  padding: 6px 10px;
  font-weight: bold;
  font-size: 0.9em;
  text-align: center;
  border-bottom: 1px solid var(--border-light);
  letter-spacing: 0.05em;
  border-radius: var(--radius) var(--radius) 0 0;
}
 
.rsca-infocard table { width: 100%; border-collapse: collapse; }
.rsca-infocard td, .rsca-infocard th {
  padding: 4px 8px;
  border-bottom: 1px solid var(--bg-header);
  vertical-align: top;
  font-size: 0.92em;
}
 
.rsca-infocard td.k { color: var(--text-dim); font-weight: bold; width: 30%; white-space: nowrap; }
.rsca-infocard-img { text-align: center; padding: 8px; border-bottom: 1px solid var(--border); }
.rsca-infocard-img img { max-width: 120px; height: auto; filter: grayscale(100%); border-radius: var(--radius); }
.rsca-infocard-img .cap { display: block; font-size: 0.75em; color: var(--text-dim); margin-top: 4px; }
 
.rsca-redact, .rsca-redact a, a .rsca-redact, .rsca-redact a.new {
  background: #000; color: #000; text-shadow: none; padding: 0 4px; cursor: default;
}
.rsca-redact:hover, .rsca-redact:active, .rsca-redact.reveal {
  color: var(--text) !important; background: #000;
}
.rsca-redact:hover a, a:hover .rsca-redact, .rsca-redact:active a, a:active .rsca-redact,
.rsca-redact.reveal a, a.rsca-redact.reveal { color: #8ab4f8 !important; }
 
.rsca-collapse {
  border: 1px solid var(--border);
  margin: 14px 0;
  background: var(--bg-panel);
  border-radius: var(--radius);
}
 
.rsca-collapse-header {
  background: var(--bg-header);
  color: var(--text-dim);
  padding: 7px 12px;
  cursor: pointer;
  font-size: 0.85em;
  border-bottom: 1px solid var(--border);
  user-select: none;
  border-radius: var(--radius) var(--radius) 0 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
 
.rsca-collapse-header:hover { background: #222; color: #ccc; }
.rsca-collapse-header::after { content: "▼"; font-size: 0.7em; color: var(--text-dim); }
.rsca-collapse-body { padding: 12px; }
 
.rsca-entity-title {
  font-size: 1.8em;
  font-weight: 900;
  letter-spacing: 0.1em;
  color: #ccc;
  border-bottom: 3px solid var(--red);
  padding-bottom: 8px;
  margin: 0 0 16px 0;
}
 
.rsca-section {
  border-left: 2px solid var(--border);
  padding-left: 14px;
  margin: 18px 0;
}
 
.rsca-section h3 {
  font-size: 1.05em;
  color: var(--text-dim);
  margin: 0 0 8px 0;
  letter-spacing: 0.05em;
}
 
.rsca-section h3 .num { color: var(--text-faint); font-weight: bold; margin-right: 6px; }
 
.rsca-quote {
  border-left: 3px solid var(--border-light);
  background: var(--bg-panel);
  padding: 10px 14px;
  margin: 12px 0;
  font-size: 0.88em;
  color: var(--text-dim);
  font-style: italic;
  border-radius: 0 var(--radius) var(--radius) 0;
}
 
.rsca-quote cite {
  display: block;
  margin-top: 6px;
  font-size: 0.8em;
  color: var(--text-dim);
  font-style: normal;
}
 
.rsca-timeline {
  border-left: 2px solid var(--border);
  padding-left: 14px;
  margin: 16px 0;
}
 
.rsca-timeline .t-event {
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--bg-header);
}
 
.rsca-timeline .t-event:last-child { border-bottom: none; margin-bottom: 0; }
.rsca-timeline .t-date { font-family: 'Courier New', monospace; font-size: 0.8em; color: var(--text-dim); font-weight: bold; margin-bottom: 3px; }
.rsca-timeline .t-title { color: var(--text-dim); font-weight: bold; margin-bottom: 4px; }
.rsca-timeline .t-body { font-size: 0.9em; color: var(--text-dim); line-height: 1.65; }
 
.rsca-tag {
  display: inline-block;
  background: var(--bg-header);
  border: 1px solid var(--border);
  color: var(--text-dim);
  padding: 2px 8px;
  font-size: 0.75em;
  letter-spacing: 0.04em;
  margin: 1px;
  border-radius: var(--radius);
}
 
.rsca-tag.red { border-color: var(--red); color: var(--red); }
.rsca-tag.yellow { border-color: var(--gold); color: var(--gold); }
.rsca-tag.blue { border-color: var(--blue); color: var(--blue); }
.rsca-tag.grey { border-color: var(--border-light); color: var(--text-dim); }
 
.rsca-badge {
  border: 1px solid var(--border-light);
  background: var(--bg-panel);
  padding: 7px 12px;
  margin: 8px 0;
  font-size: 0.82em;
  color: var(--text-dim);
  border-radius: var(--radius);
}
 
.rsca-badge .tb-header { font-weight: bold; color: #ccc; font-size: 0.9em; letter-spacing: 0.05em; margin-bottom: 6px; }
.rsca-badge ul { margin: 0; padding-left: 16px; }
.rsca-badge li { margin-bottom: 3px; }
.rsca-badge.in-progress { border-color: var(--gold); }
.rsca-badge.in-progress .tb-header { color: var(--gold); }
.rsca-badge.exposed { border-color: var(--border-light); }
.rsca-badge.exposed .tb-header { color: var(--text-dim); }
.rsca-badge.wanted { border-color: var(--red); }
.rsca-badge.wanted .tb-header { color: var(--red); }
.rsca-badge.under-invest { border-color: var(--text-dim); }
.rsca-badge.under-invest .tb-header { color: var(--text-dim); }
.rsca-badge.record-complete { border-color: var(--border-light); }
.rsca-badge.record-complete .tb-header { color: var(--text-dim); }
 
.rsca-footer {
  max-width: var(--max-w);
  margin: 30px auto 0;
  padding: 16px var(--gap);
  border-top: 1px solid var(--border);
  text-align: center;
  font-size: 0.75em;
  color: var(--text-faint);
}
 
.rsca-footer a { color: var(--text-dim); }
 
@media (max-width: 768px) {
  html { font-size: 13px; }
  .rsca-layout { flex-direction: column; gap: 12px; }
  .rsca-infocard { float: none; width: 100%; margin: 10px 0; }
  .rsca-entity-title { font-size: 1.4em; }
}

2026年9月6日 (日) 09:45的版本

/* ========================================
   RSCA — Roblox Simplified Chinese Archives
   ROBLOX 简中档案 · 全局样式表
   ======================================== */

:root {
  --bg: #0e0e0e;
  --bg-panel: #141414;
  --bg-header: #1a1a1a;
  --border: #333;
  --border-light: #444;
  --text: #d8d8d8;
  --text-dim: #999;
  --text-faint: #666;
  --red: #c41e3a;
  --gold: #d4a017;
  --blue: #4a90d9;
  --max-w: 960px;
  --radius: 4px;
  --gap: 20px;
}

*, *::before, *::after { box-sizing: border-box; }

html, body, #content, .mw-body, .mw-page-container, #bodyContent, .mw-parser-output {
  background: var(--bg) !important;
  color: var(--text) !important;
  font-family: 'Helvetica Neue', 'Arial', 'Microsoft YaHei', sans-serif;
  line-height: 1.65;
}

a { color: var(--text-dim); text-decoration: none; }
a:hover { color: #fff; }
.mw-parser-output { background: transparent; }

/* ---------- 隐藏 Vector 默认元素 ---------- */

#p-logo, #p-navigation, #p-search, #p-personal, #p-tb, #p-lang,
.vector-menu, .vector-menu-tabs, .vector-menu-content,
.vector-menu-content-list, .vector-menu-heading,
.vector-user-links, .vector-user-menu,
#mw-panel, #mw-head-base, #mw-page-base,
#p-banner, #siteNotice, #centralNotice,
#catlinks, .catlinks, .mw-indicators,
.mw-editsection, .mw-editsection-like,
#pagehistory, #contentSub, #contentSub2, #jump-to-nav,
#footer, .breadcrumb, .subpages,
.toc, .toctoggle, .toctogglesearch,
#p-cactions, .searchButton, #mw-search-top-table,
.vector-search-box, .vector-search-box-input, .vector-search-box-button,
.vector-user-menu-anon-editor, .vector-user-menu-legacy,
.firstHeading, #firstHeading, .mw-page-title, .page-title {
  display: none !important;
}

#mw-head {
  display: block !important;
  background: var(--bg-header) !important;
  border-bottom: 2px solid var(--red) !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  position: static !important;
}

#mw-content-text {
  max-width: var(--max-w) !important;
  margin: 0 auto !important;
  padding: 0 var(--gap) !important;
}

.mw-parser-output { max-width: 100% !important; }

/* ---------- 面板系统 ---------- */

.rsca-panel {
  border: 1px solid var(--border);
  margin-bottom: var(--gap);
  background: var(--bg-panel);
  border-radius: var(--radius);
}

.rsca-panel-header {
  background: var(--bg-header);
  color: #ccc;
  padding: 10px 14px;
  font-weight: bold;
  font-size: 0.95em;
  letter-spacing: 0.06em;
  border-bottom: 1px solid var(--border);
  border-radius: var(--radius) var(--radius) 0 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.rsca-panel-header .label {
  font-family: 'Courier New', monospace;
  color: var(--text-dim);
  font-size: 0.8em;
  letter-spacing: 0.1em;
  font-weight: normal;
}

.rsca-panel-body { padding: 14px; }
.rsca-panel-body p { margin: 0 0 10px 0; }
.rsca-panel-body ul { margin: 0; padding-left: 18px; }
.rsca-panel-body li { margin-bottom: 4px; font-size: 0.9em; }

.rsca-rec {
  border-left: 3px solid var(--border-light);
  background: var(--bg-header);
  padding: 10px 14px;
  margin: 10px 0;
  font-size: 0.9em;
  line-height: 1.65;
  border-radius: 0 var(--radius) var(--radius) 0;
}

.rsca-rec.warn { border-left-color: var(--red); }
.rsca-rec.note { border-left-color: var(--blue); }
.rsca-rec .label { font-weight: bold; color: var(--text-dim); margin-bottom: 4px; display: block; }

.rsca-infocard {
  float: right;
  width: 280px;
  margin: 0 0 14px 18px;
  border: 1px solid var(--border-light);
  font-size: 0.85em;
  background: var(--bg-panel);
  border-radius: var(--radius);
}

.rsca-infocard-header {
  background: var(--bg-header);
  color: #ccc;
  padding: 6px 10px;
  font-weight: bold;
  font-size: 0.9em;
  text-align: center;
  border-bottom: 1px solid var(--border-light);
  letter-spacing: 0.05em;
  border-radius: var(--radius) var(--radius) 0 0;
}

.rsca-infocard table { width: 100%; border-collapse: collapse; }
.rsca-infocard td, .rsca-infocard th {
  padding: 4px 8px;
  border-bottom: 1px solid var(--bg-header);
  vertical-align: top;
  font-size: 0.92em;
}

.rsca-infocard td.k { color: var(--text-dim); font-weight: bold; width: 30%; white-space: nowrap; }
.rsca-infocard-img { text-align: center; padding: 8px; border-bottom: 1px solid var(--border); }
.rsca-infocard-img img { max-width: 120px; height: auto; filter: grayscale(100%); border-radius: var(--radius); }
.rsca-infocard-img .cap { display: block; font-size: 0.75em; color: var(--text-dim); margin-top: 4px; }

.rsca-redact, .rsca-redact a, a .rsca-redact, .rsca-redact a.new {
  background: #000; color: #000; text-shadow: none; padding: 0 4px; cursor: default;
}
.rsca-redact:hover, .rsca-redact:active, .rsca-redact.reveal {
  color: var(--text) !important; background: #000;
}
.rsca-redact:hover a, a:hover .rsca-redact, .rsca-redact:active a, a:active .rsca-redact,
.rsca-redact.reveal a, a.rsca-redact.reveal { color: #8ab4f8 !important; }

.rsca-collapse {
  border: 1px solid var(--border);
  margin: 14px 0;
  background: var(--bg-panel);
  border-radius: var(--radius);
}

.rsca-collapse-header {
  background: var(--bg-header);
  color: var(--text-dim);
  padding: 7px 12px;
  cursor: pointer;
  font-size: 0.85em;
  border-bottom: 1px solid var(--border);
  user-select: none;
  border-radius: var(--radius) var(--radius) 0 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.rsca-collapse-header:hover { background: #222; color: #ccc; }
.rsca-collapse-header::after { content: "▼"; font-size: 0.7em; color: var(--text-dim); }
.rsca-collapse-body { padding: 12px; }

.rsca-entity-title {
  font-size: 1.8em;
  font-weight: 900;
  letter-spacing: 0.1em;
  color: #ccc;
  border-bottom: 3px solid var(--red);
  padding-bottom: 8px;
  margin: 0 0 16px 0;
}

.rsca-section {
  border-left: 2px solid var(--border);
  padding-left: 14px;
  margin: 18px 0;
}

.rsca-section h3 {
  font-size: 1.05em;
  color: var(--text-dim);
  margin: 0 0 8px 0;
  letter-spacing: 0.05em;
}

.rsca-section h3 .num { color: var(--text-faint); font-weight: bold; margin-right: 6px; }

.rsca-quote {
  border-left: 3px solid var(--border-light);
  background: var(--bg-panel);
  padding: 10px 14px;
  margin: 12px 0;
  font-size: 0.88em;
  color: var(--text-dim);
  font-style: italic;
  border-radius: 0 var(--radius) var(--radius) 0;
}

.rsca-quote cite {
  display: block;
  margin-top: 6px;
  font-size: 0.8em;
  color: var(--text-dim);
  font-style: normal;
}

.rsca-timeline {
  border-left: 2px solid var(--border);
  padding-left: 14px;
  margin: 16px 0;
}

.rsca-timeline .t-event {
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--bg-header);
}

.rsca-timeline .t-event:last-child { border-bottom: none; margin-bottom: 0; }
.rsca-timeline .t-date { font-family: 'Courier New', monospace; font-size: 0.8em; color: var(--text-dim); font-weight: bold; margin-bottom: 3px; }
.rsca-timeline .t-title { color: var(--text-dim); font-weight: bold; margin-bottom: 4px; }
.rsca-timeline .t-body { font-size: 0.9em; color: var(--text-dim); line-height: 1.65; }

.rsca-tag {
  display: inline-block;
  background: var(--bg-header);
  border: 1px solid var(--border);
  color: var(--text-dim);
  padding: 2px 8px;
  font-size: 0.75em;
  letter-spacing: 0.04em;
  margin: 1px;
  border-radius: var(--radius);
}

.rsca-tag.red { border-color: var(--red); color: var(--red); }
.rsca-tag.yellow { border-color: var(--gold); color: var(--gold); }
.rsca-tag.blue { border-color: var(--blue); color: var(--blue); }
.rsca-tag.grey { border-color: var(--border-light); color: var(--text-dim); }

.rsca-badge {
  border: 1px solid var(--border-light);
  background: var(--bg-panel);
  padding: 7px 12px;
  margin: 8px 0;
  font-size: 0.82em;
  color: var(--text-dim);
  border-radius: var(--radius);
}

.rsca-badge .tb-header { font-weight: bold; color: #ccc; font-size: 0.9em; letter-spacing: 0.05em; margin-bottom: 6px; }
.rsca-badge ul { margin: 0; padding-left: 16px; }
.rsca-badge li { margin-bottom: 3px; }
.rsca-badge.in-progress { border-color: var(--gold); }
.rsca-badge.in-progress .tb-header { color: var(--gold); }
.rsca-badge.exposed { border-color: var(--border-light); }
.rsca-badge.exposed .tb-header { color: var(--text-dim); }
.rsca-badge.wanted { border-color: var(--red); }
.rsca-badge.wanted .tb-header { color: var(--red); }
.rsca-badge.under-invest { border-color: var(--text-dim); }
.rsca-badge.under-invest .tb-header { color: var(--text-dim); }
.rsca-badge.record-complete { border-color: var(--border-light); }
.rsca-badge.record-complete .tb-header { color: var(--text-dim); }

.rsca-footer {
  max-width: var(--max-w);
  margin: 30px auto 0;
  padding: 16px var(--gap);
  border-top: 1px solid var(--border);
  text-align: center;
  font-size: 0.75em;
  color: var(--text-faint);
}

.rsca-footer a { color: var(--text-dim); }

@media (max-width: 768px) {
  html { font-size: 13px; }
  .rsca-layout { flex-direction: column; gap: 12px; }
  .rsca-infocard { float: none; width: 100%; margin: 10px 0; }
  .rsca-entity-title { font-size: 1.4em; }
}