:root{--aozora: #1f4d8a;--antiqua: #7a2330;--ink: #1a1a1a;--muted: #6b6b6b;--bg: #faf8f3;--panel: #ffffff;--border: #d8d4ca;--accent: #c98f00}*{box-sizing:border-box}body{margin:0;font-family:Hiragino Sans,Yu Gothic UI,Segoe UI,system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;background:var(--panel);border-bottom:1px solid var(--border)}.topbar h1{margin:0;font-size:18px;font-weight:600;letter-spacing:.02em}.db-tabs button{margin-left:6px;padding:6px 14px;font-size:13px;border:1px solid var(--border);background:transparent;cursor:pointer;border-radius:4px;color:var(--muted);font-family:inherit}.db-tabs button.active[data-db=aozora]{background:var(--aozora);color:#fff;border-color:var(--aozora)}.db-tabs button.active[data-db=antiqua]{background:var(--antiqua);color:#fff;border-color:var(--antiqua)}.db-tabs button.active[data-db=compare]{background:var(--ink);color:#fff;border-color:var(--ink)}.page-tabs{display:flex;gap:2px;padding:0 24px;background:var(--panel);border-bottom:1px solid var(--border)}.page-tabs a{padding:10px 16px;font-size:13px;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent}.page-tabs a.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}main{padding:20px 24px 60px;max-width:1280px;margin:0 auto}footer{font-size:12px;color:var(--muted);text-align:center;padding:16px;border-top:1px solid var(--border)}footer .sep{margin:0 6px}footer a{color:var(--muted)}.loading{color:var(--muted);font-style:italic}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px}.kpi-card{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:14px 16px}.kpi-card .label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.kpi-card .value{font-size:26px;font-weight:600;margin-top:4px}.kpi-card .sub{font-size:12px;color:var(--muted);margin-top:2px}.kpi-card.aozora{border-top:3px solid var(--aozora)}.kpi-card.antiqua{border-top:3px solid var(--antiqua)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:16px 18px;margin-bottom:18px}.panel h2{margin:0 0 12px;font-size:15px;font-weight:600}.panel-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:12px}.panel-toolbar .toggles button{margin-left:4px;padding:3px 10px;font-size:12px;border:1px solid var(--border);background:transparent;cursor:pointer;border-radius:3px;color:var(--muted);font-family:inherit}.panel-toolbar .toggles button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.axis path,.axis line{stroke:#c8c4b8}.axis text{font-size:11px;fill:var(--muted)}.line-aozora{fill:none;stroke:var(--aozora);stroke-width:2}.line-antiqua{fill:none;stroke:var(--antiqua);stroke-width:2}.dot-aozora{fill:var(--aozora)}.dot-antiqua{fill:var(--antiqua)}.legend{font-size:12px;color:var(--muted)}.legend .swatch{display:inline-block;width:10px;height:10px;margin-right:4px;vertical-align:middle}table.ranking{width:100%;border-collapse:collapse;font-size:13px}table.ranking th,table.ranking td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border)}table.ranking th{color:var(--muted);font-weight:500;font-size:11px;text-transform:uppercase}table.ranking td.num{text-align:right;font-variant-numeric:tabular-nums}#map{width:100%;height:480px;border:1px solid var(--border);border-radius:6px}.geo-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}@media (max-width: 900px){.geo-grid{grid-template-columns:1fr}}.authors-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 900px){.authors-grid{grid-template-columns:1fr}}#network{width:100%;height:480px;background:#fbfaf6;border:1px solid var(--border);border-radius:6px}.bar-label{font-size:11px;fill:var(--ink)}.bar-aozora{fill:var(--aozora)}.bar-antiqua{fill:var(--antiqua)}.bar-aozora:hover,.bar-antiqua:hover{opacity:.7;cursor:pointer}.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 900px){.compare-grid{grid-template-columns:1fr}}.note{font-size:12px;color:var(--muted);margin-top:8px}
