:root{
  --navy:#0E2A47; --shu:#C8452E; --paper:#F5F2EB; --card:#fff;
  --line:#DED7C8; --gray:#5d6f80; --ok:#2E7D5B; --cyan:#2a7d96;
}
*{box-sizing:border-box}
body{margin:0;font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif;background:
  repeating-linear-gradient(0deg, rgba(14,42,71,.045) 0 1px, transparent 1px 48px),
  repeating-linear-gradient(90deg, rgba(14,42,71,.045) 0 1px, transparent 1px 48px),
  var(--paper);
  color:var(--navy);line-height:1.8;font-size:15px;}
.wrap{max-width:1000px;margin:0 auto;padding:0 18px}
.top{background:var(--navy);color:#fff;position:sticky;top:0;z-index:10}
.topin{display:flex;justify-content:space-between;align-items:center;height:54px}
.logo{font-weight:800;letter-spacing:.04em}
.logo span{color:#8fd1e0}
.userbox{font-size:.82rem;display:flex;gap:12px;align-items:center}
.userbox button{background:none;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:2px;padding:4px 10px;cursor:pointer}
main{padding:28px 18px 80px}
h1{font-size:1.35rem;margin:0 0 6px}
h1 small{color:var(--gray);font-weight:400;font-size:.85rem}
.sub{color:var(--gray);font-size:.9rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:24px;margin-bottom:16px}
.auth{max-width:440px;margin:40px auto}
label{display:block;font-size:.85rem;font-weight:700;margin:12px 0 4px}
input,textarea,select{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:3px;font-size:.95rem;font-family:inherit;background:#fff}
textarea{resize:vertical}
.row{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap;align-items:center}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.btn{border:none;border-radius:2px;padding:10px 18px;font-size:.9rem;font-weight:700;cursor:pointer;font-family:inherit}
.btn.primary{background:var(--shu);color:#fff}
.btn.primary:hover{background:#a53a26}
.btn.ghost{background:none;border:1px solid var(--navy);color:var(--navy)}
.btn.sm{padding:6px 12px;font-size:.8rem}
.btn:disabled{opacity:.5;cursor:wait}
.err{color:var(--shu);font-size:.85rem;min-height:1.2em}
.pagehead{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:18px;cursor:pointer;transition:box-shadow .15s}
.pcard:hover{box-shadow:0 4px 14px rgba(14,42,71,.12)}
.pcard h3{margin:0 0 6px;font-size:1.02rem}
.pcard .meta{font-size:.78rem;color:var(--gray)}
.badge{display:inline-block;font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:2px;background:#eaeef5;color:var(--navy);margin-bottom:8px}
.badge.green{background:#e2f2ea;color:var(--ok)}
.tabs{display:flex;gap:4px;border-bottom:2px solid var(--navy);margin:10px 0 0;flex-wrap:wrap}
.tabs button{border:1px solid var(--line);border-bottom:none;background:#eee9dd;padding:9px 14px;font-size:.85rem;font-weight:700;cursor:pointer;border-radius:4px 4px 0 0;font-family:inherit;color:var(--gray)}
.tabs button.on{background:var(--navy);color:#fff;border-color:var(--navy)}
#tabbody{background:var(--card);border:1px solid var(--line);border-top:none;padding:22px;border-radius:0 0 4px 4px}
.cand{border:1px solid var(--line);border-left:4px solid var(--cyan);border-radius:3px;padding:14px 16px;margin-bottom:12px}
.cand h4{margin:0 0 4px;font-size:.98rem}
.cand .score{float:right;font-weight:800;color:var(--cyan)}
.cand ul{margin:6px 0 0;padding-left:20px;font-size:.85rem;color:var(--gray)}
.caution{border-left:4px solid var(--shu)}
.sev{display:inline-block;font-size:.7rem;font-weight:700;padding:1px 7px;border-radius:2px;margin-right:6px;color:#fff}
.sev.失格{background:#8a1f10}.sev.返還リスク{background:var(--shu)}.sev.要確認{background:#b98a00}
.spin{display:inline-block;width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--shu);border-radius:50%;animation:sp 1s linear infinite;vertical-align:-2px;margin-right:6px}
@keyframes sp{to{transform:rotate(360deg)}}
.progress{color:var(--gray);font-size:.88rem;margin:10px 0}
.md{white-space:pre-wrap;font-size:.9rem;background:#fbfaf6;border:1px solid var(--line);border-radius:3px;padding:18px;max-height:520px;overflow:auto}
table.check{width:100%;border-collapse:collapse;font-size:.88rem}
table.check td,table.check th{border:1px solid var(--line);padding:7px 10px;text-align:left}
table.check th{background:#f0ece1;font-size:.78rem}
table.check select{width:auto;padding:3px 6px;font-size:.82rem}
.notice{background:#fdf6ec;border:1px solid #ecd9b0;border-radius:3px;padding:10px 14px;font-size:.85rem;margin-bottom:14px}
.footnote{font-size:.75rem;color:var(--gray);margin-top:16px}
@media(max-width:640px){.cols{grid-template-columns:1fr}}
