:root{--navy:#1c2b4a;--blue:#2f5fd0;--ink:#1c2333;--muted:#556;--line:#dde3f2}
  *{box-sizing:border-box}
  body{font-family:system-ui,"Yu Gothic UI","Noto Sans JP",sans-serif;margin:0;background:#f5f7fb;color:var(--ink);line-height:1.65}
  a{color:#1d4ed8} a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #fca311;outline-offset:2px}
  .site-header{background:var(--navy);color:#fff}
  .wrap{max-width:1100px;margin:0 auto;padding:0 16px}
  .site-header .wrap{display:flex;flex-wrap:wrap;gap:6px 24px;align-items:center;padding-top:12px;padding-bottom:12px}
  .brand{font-weight:800;font-size:20px;color:#fff;text-decoration:none}
  nav a{color:#dbe4ff;margin-right:16px;font-size:14px}
  .period{width:100%;font-size:12px;opacity:.85}
  main{padding-top:16px;padding-bottom:32px}
  .lead{font-size:14px;color:var(--muted);margin:0 0 12px}
  .controls{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-bottom:12px}
  .controls input[type=search]{padding:6px 12px;border:1px solid #9aa7c0;border-radius:16px;min-width:220px;font:inherit}
  .chips button{border:1px solid #9aa7c0;background:#fff;border-radius:16px;padding:4px 12px;margin:0 4px 4px 0;cursor:pointer;font:inherit;font-size:13px}
  .chips button[aria-pressed=true]{background:var(--blue);color:#fff;border-color:var(--blue)}
  label.tgl{font-size:13px;color:var(--muted)}
  details.guide{background:#fff;border-radius:10px;padding:10px 16px;margin:0 0 12px;box-shadow:0 1px 3px #0002;font-size:13px}
  details.guide summary{cursor:pointer;font-weight:700;font-size:14px}
  details.guide dl{margin:8px 0 0;display:grid;grid-template-columns:auto 1fr;gap:4px 14px}
  details.guide dt{font-weight:700;white-space:nowrap} details.guide dd{margin:0;color:#334}
  .card{background:#fff;border-radius:10px;padding:16px 20px;margin:14px 0;box-shadow:0 1px 3px #0002}
  .kicker{font-size:14px;line-height:1.8;padding-right:90px} .kicker strong{font-size:15px}
  .card h2{margin:2px 0 0;font-size:24px;line-height:1.35;font-weight:800;color:#14213d}
  .rank{display:inline-block;min-width:28px;color:var(--blue)}
  .tag{display:inline-block;font-size:11px;padding:1px 8px;border-radius:10px;background:#e3eaff;color:#2a45a0;margin-left:6px;vertical-align:middle;font-weight:400}
  .score{float:right;font-weight:600} .score small{font-weight:400;color:#667}
  .badge{font-size:11px;padding:1px 8px;border-radius:10px;margin-left:6px;font-weight:600;vertical-align:middle;white-space:nowrap}
  .badge.ok{background:#d9f2e3;color:#157347} .badge.part{background:#fff0d1;color:#8a5a00} .badge.no{background:#fde2e4;color:#b02a37} .badge.link{background:#e8f0ff;color:#1d4ed8}
  .sub{font-size:12px;color:#667;margin:2px 0 8px}
  .summary p{margin:2px 0;font-size:15px}
  .why{font-size:13px;color:#445;background:#f0f4ff;border-radius:6px;padding:6px 10px;margin:8px 0}
  .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin:10px 0}
  .box{border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:13px}
  .box h3{margin:0 0 4px;font-size:13px;color:#2a45a0} .box ul{margin:0;padding-left:18px}
  .box.warn{background:#fffaf0;border-color:#f0dcae} .box.warn h3{color:#8a5a00}
  .row{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}
  .info{flex:none;width:min(100%,420px);border:1px solid #cfd8ee;border-radius:8px;padding:0;background:none;cursor:zoom-in;display:block}
  .info img{display:block;width:100%;height:auto;border-radius:8px}
  .side{flex:1;min-width:260px;font-size:13px}
  .side h3{margin:8px 0 2px;font-size:13px} .side h3 small{font-weight:400;color:#667}
  .side ul{margin:0;padding-left:18px} .side li{word-break:break-all}
  .dl{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
  .dl a{display:inline-block;padding:4px 12px;border:1px solid var(--blue);border-radius:16px;text-decoration:none;font-size:13px;font-weight:600;background:#fff}
  .dl a:hover{background:#eef3ff}
  .auto{font-size:13px;color:var(--muted);border-left:3px solid #c9d2e8;padding-left:10px;margin:8px 0}
  table.cand{width:100%;border-collapse:collapse;font-size:13px} table.cand th,table.cand td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}
  section.cands{background:#fff;border-radius:10px;padding:12px 16px;margin:14px 0;box-shadow:0 1px 3px #0002}
  section.cands h2{margin:0 0 4px;font-size:16px}
  .empty{padding:24px;text-align:center;color:var(--muted)}
  .stale{background:#fff0d1;border:1px solid #f0dcae;border-radius:8px;padding:8px 12px;color:#8a5a00;font-size:13px}
.themes{background:#fff;border-radius:10px;padding:12px 16px;margin:0 0 14px;box-shadow:0 1px 3px #0002}
.themes h2{margin:0 0 4px;font-size:18px} .themes h2 small{font-weight:400;color:#667;font-size:12px}
.theme{border-top:1px solid var(--line);padding:10px 0;font-size:14px} .theme h3{margin:0 0 4px;font-size:16px;color:#14213d}
.theme .conf{font-size:11px;padding:1px 8px;border-radius:10px;background:#eef1f8;color:#445;margin-left:6px;font-weight:400}
.theme ul{margin:4px 0;padding-left:18px} .theme .bg{background:#f0f4ff;border-radius:6px;padding:6px 10px;margin:6px 0}
.info.wide{width:100%;max-width:760px;margin:6px 0 10px}
.theme details.ev summary{cursor:pointer;font-size:12px;color:#1d4ed8} .theme .chips .src{font-size:12px;color:#556;margin-left:6px}
.theme .chips a{display:inline-block;margin:2px 6px 2px 0;font-size:12px}
.demo-nav{background:#eef1f8;font-size:12px;padding:4px 0} .demo-nav a{margin-right:12px}
footer.site-footer{font-size:12px;color:var(--muted);padding-bottom:32px} footer h2{font-size:14px;margin:16px 0 4px;color:var(--ink)}
  dialog{border:0;border-radius:10px;padding:0;max-width:96vw;background:#000}
  dialog::backdrop{background:#000b}
  dialog img{display:block;max-width:96vw;max-height:88vh}
  dialog button{position:absolute;top:6px;right:6px;border:0;border-radius:14px;padding:4px 14px;font:inherit;cursor:pointer;background:#fff}
  @media (max-width:640px){.score{float:none;display:block}.card{padding:12px}details.guide dl{grid-template-columns:1fr}.controls input[type=search]{width:100%}}

.card .sel{display:block;font-size:12px;color:#445;margin:0 0 4px} .card .sel input{margin-right:4px}
.controls select{padding:5px 10px;border:1px solid #9aa7c0;border-radius:16px;background:#fff;font:inherit;font-size:13px}
.dlgroup button.primary{background:#fca311;border-color:#fca311;font-weight:700} .dlbar button:disabled{opacity:.45;cursor:not-allowed}

.dlgroup{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px;margin-left:auto}
.dlgroup button{border:1px solid #9aa7c0;background:#fff;border-radius:16px;padding:4px 12px;cursor:pointer;font:inherit;font-size:13px}
.dlgroup button.primary{background:#fca311;border-color:#fca311;font-weight:700} .dlgroup button:disabled{opacity:.45;cursor:not-allowed}

.card h2 a.tl{color:inherit;text-decoration:none}.card h2 a.tl:hover{text-decoration:underline}
.statusbar{font-size:13px;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px 12px;margin:0 0 12px}.statusbar b{color:var(--ink)}.statusbar .ng{color:#b3261e}ol.how li{margin:6px 0}
