* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
:root{
  --bg-top:#0f172a;
  --bg-bottom:#071028;
  --card-grad-start:rgba(255,255,255,0.02);
  --card-grad-end:rgba(255,255,255,0.01);
  --text:#e6eef8;
  --text-muted:#9fb8d6;
  --text-sub:#cfe7ff;
  --heading:#f8fafc;
  --accent:#9be7ff;
  --line:rgba(255,255,255,0.06);
  --line-soft:rgba(255,255,255,0.03);
  --hover:rgba(255,255,255,0.02);
  --shadow:0 6px 30px rgba(2,6,23,0.6);
}
body{
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",sans-serif;
  background:linear-gradient(180deg,var(--bg-top) 0%,var(--bg-bottom) 100%);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  line-height:1.7;
  padding:32px 16px;
}
.container{
  max-width:980px;
  margin:0 auto;
  background:linear-gradient(180deg,var(--card-grad-start),var(--card-grad-end));
  border-radius:14px;
  padding:28px;
  box-shadow:var(--shadow);
  backdrop-filter:blur(6px);
}
a, button, [tabindex]{ outline:none; }
:focus-visible{
  box-shadow:0 0 0 3px rgba(155,231,255,0.35);
  border-radius:8px;
}
.hero{
  padding:18px 12px;
  border-radius:12px;
  background:linear-gradient(90deg,var(--card-grad-start),var(--card-grad-end));
  margin-bottom:22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.hero-inner{
  flex:1;
  display:flex;
  align-items:center;
  gap:16px;
}
.hero-inner img{
  width:72px; height:72px; flex:0 0 72px;
  border-radius:50%;
  object-fit:cover;
  border:2px solid var(--line);
  box-shadow:0 6px 18px rgba(2,6,23,0.6);
}
.name{
  font-size:2rem;
  font-weight:800;
  letter-spacing:-0.02em;
  margin-bottom:6px;
  color:var(--heading);
}
.subtitle{
  font-size:0.96rem;
  color:var(--text-sub);
  opacity:0.95;
}
.section{ margin-top:24px; padding-top:6px; }
.section-title{
  font-size:1.15rem;
  margin-bottom:12px;
  color:#d7ecff;
  border-left:4px solid var(--line);
  padding-left:10px;
  font-weight:700;
}
.table-wrap{
  overflow-x:auto;
  border-radius:10px;
  padding:6px 0;
  scrollbar-width:thin;
}
.table-wrap::-webkit-scrollbar{ height:8px; }
.table-wrap::-webkit-scrollbar-thumb{
  background:var(--line);
  border-radius:8px;
}
.cve-table{
  width:100%;
  border-collapse:collapse;
  min-width:640px;
  background:rgba(255,255,255,0.02);
  font-size:0.96rem;
  table-layout:fixed;
}
.cve-table thead th{
  text-align:left;
  padding:12px 14px;
  font-weight:700;
  color:#d5eefc;
  background:linear-gradient(180deg,rgba(255,255,255,0.02),rgba(0,0,0,0.05));
  position:sticky; top:0;
  backdrop-filter:blur(4px);
  z-index:1;
  border-bottom:1px solid var(--line-soft);
}
.cve-table tbody td{
  padding:12px 14px;
  vertical-align:top;
  border-top:1px solid var(--line-soft);
  color:#dbeefe;
  word-break:break-word;
}
.cve-table tbody tr:nth-child(odd){ background:rgba(255,255,255,0.005); }
.cve-table tbody tr:hover{ background:var(--hover); }
.cve-table tbody td:first-child,
.cve-table thead th:first-child{ width:32%; }
a{ color:var(--accent); text-decoration:none; font-weight:600; }
a:hover{ text-decoration:underline; }
a:active{ opacity:0.9; }
.site-footer{
  margin-top:32px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,0.08);
  text-align:right;
  color:var(--text-muted);
  font-size:0.86rem;
}
.sr-only{
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0);
  white-space:nowrap; border:0;
}
.cve-stack a{ display:block; }
.cve-stack a+a{ margin-top:6px; }
@media (max-width: 640px){
  .container{ padding:18px; border-radius:12px; }
  .hero-inner{ gap:10px; }
  .hero-inner img{ width:48px; height:48px; flex:0 0 48px; }
  .name{ font-size:1.45rem; }
  .subtitle{ font-size:0.9rem; }
  .cve-table{ min-width:600px; font-size:0.9rem; }
}
@media print{
  :root{ --bg-top:#ffffff; --bg-bottom:#ffffff; --text:#000; }
  body{ background:#fff; color:#000; padding:0; }
  .container{ box-shadow:none; backdrop-filter:none; background:#fff; }
  .hero, .section-title{ background:#fff; }
  a{ color:#0047ab; text-decoration:underline; }
}
@media (max-width: 480px){
  .container{ padding:16px; }

  .hero{ align-items:flex-start; }
  .hero-inner{ align-items:flex-start; }
  .name{ font-size:1.35rem; }
  .subtitle{ font-size:0.88rem; }

  .table-wrap{ overflow-x:visible; }

  .cve-table{
    width:100%;
    min-width:0;
    table-layout:auto;
    font-size:0.92rem;
  }

  .cve-table thead th{
    position:static;        
  }

  .cve-table th,
  .cve-table td{
    padding:10px 12px;
    word-break:normal;
    overflow-wrap:anywhere; 
  }

  .cve-table td:first-child,
  .cve-table th:first-child{
    width:36%;               
  }
}

