:root{
  --bg:#0b1020;
  --paper:#0f172a;
  --card:rgba(255,255,255,.08);
  --card2:rgba(255,255,255,.10);
  --text:#e6eaf2;
  --muted:rgba(230,234,242,.72);
  --line:rgba(230,234,242,.14);
  --accent:#2dd4bf;
  --accent2:#60a5fa;
  --danger:#fb7185;
  --ok:#34d399;
  --warn:#fbbf24;
  --shadow: 0 10px 40px rgba(0,0,0,.35);
  --r:18px;
  --container: 1120px;
  --header-h: 64px;
  --header-h-mobile: 56px;
  --focus: 0 0 0 3px rgba(96,165,250,.35);
  --font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", "Meiryo", Arial, sans-serif;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:var(--font);
  color:var(--text);
  background: radial-gradient(1200px 800px at 20% -10%, rgba(96,165,250,.20), transparent 60%),
              radial-gradient(900px 700px at 90% 20%, rgba(45,212,191,.18), transparent 55%),
              var(--bg);
}

a{color:inherit}
.container{max-width:var(--container); margin:0 auto; padding:0 16px}
.row{display:flex; gap:12px; align-items:center}
.grid{display:grid; gap:14px}
.card{
  background:linear-gradient(180deg, var(--card2), var(--card));
  border:1px solid var(--line);
  border-radius:var(--r);
  box-shadow:var(--shadow);
}
.card.pad{padding:16px}
.badge{
  display:inline-flex; align-items:center; gap:8px;
  padding:6px 10px; border-radius:999px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.06);
  font-size:12px; color:var(--muted);
}
.badge.ok{border-color:rgba(52,211,153,.35); color:rgba(52,211,153,.95)}
.badge.warn{border-color:rgba(251,191,36,.35); color:rgba(251,191,36,.95)}
.badge.danger{border-color:rgba(251,113,133,.35); color:rgba(251,113,133,.95)}

.btn{
  appearance:none; border:1px solid var(--line);
  background:rgba(255,255,255,.06);
  color:var(--text);
  padding:10px 12px; border-radius:12px;
  cursor:pointer; font-weight:600;
  transition: transform .08s ease, background .12s ease, border-color .12s ease;
}
.btn:hover{background:rgba(255,255,255,.10)}
.btn:active{transform:translateY(1px)}
.btn.primary{
  border-color: rgba(45,212,191,.38);
  background: linear-gradient(180deg, rgba(45,212,191,.24), rgba(45,212,191,.12));
}
.btn.link{background:transparent; border-color:transparent; padding:8px 10px; color:var(--muted)}
.btn.link:hover{color:var(--text); background:rgba(255,255,255,.06); border-color:var(--line)}
.btn.danger{border-color:rgba(251,113,133,.35); background:rgba(251,113,133,.10)}

input,select,textarea{
  width:100%;
  border:1px solid var(--line);
  background:rgba(0,0,0,.20);
  color:var(--text);
  border-radius:12px;
  padding:10px 12px;
  outline:none;
}
input:focus,select:focus,textarea:focus{box-shadow:var(--focus); border-color:rgba(96,165,250,.5)}
label{font-size:12px; color:var(--muted)}
.field{display:grid; gap:6px}
.help{font-size:12px; color:var(--muted); line-height:1.5}
h1,h2,h3{margin:0}
h1{font-size:28px; letter-spacing:.2px}
h2{font-size:18px}
h3{font-size:14px; color:var(--muted); font-weight:700; letter-spacing:.4px; text-transform:uppercase}

hr{border:none; border-top:1px solid var(--line); margin:14px 0}

.header{
  position:sticky; top:0; z-index:20;
  background:rgba(10,16,32,.65);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  height:var(--header-h);
  display:flex; align-items:center; justify-content:space-between;
  gap:12px;
}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none}
.brand img{height:32px; width:auto; display:block}
.brand .name{font-weight:900; letter-spacing:.3px}
.nav{display:flex; align-items:center; gap:6px}
.nav a{ text-decoration:none }
.hamburger{display:none; padding:10px 10px; border-radius:12px}
.hamburger span{display:block; width:18px; height:2px; background:var(--text); margin:4px 0; opacity:.9}
.mobile-menu{display:none}

@media (max-width: 860px){
  .header-inner{height:var(--header-h-mobile)}
  .brand img{height:28px}
  .nav{display:none}
  .hamburger{display:inline-flex; align-items:center; justify-content:center}
  .mobile-menu{
    display:none;
    padding:10px 0 14px;
  }
  .mobile-menu.open{display:block}
  .mobile-menu .menu{
    display:grid; gap:8px;
  }
  .mobile-menu a{
    display:flex; align-items:center; justify-content:space-between;
    padding:12px 12px; border-radius:14px;
    border:1px solid var(--line);
    background:rgba(255,255,255,.06);
    text-decoration:none;
  }
}

.hero{
  position:relative;
  overflow:hidden;
  border-radius: 24px;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  background: rgba(255,255,255,.04);
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background-image: url("/assets/haikei.jpg");
  background-size: cover;
  background-position: center;
  opacity:.28;
  transform:scale(1.04);
}
.hero .inner{
  position:relative;
  padding: 22px 18px;
  display:grid;
  gap:14px;
}
.hero .tagline{
  color:var(--muted);
  line-height:1.6;
  font-size:14px;
}
.kpis{display:grid; gap:12px; grid-template-columns:repeat(4, 1fr)}
@media (max-width: 860px){
  .kpis{grid-template-columns:repeat(2, 1fr)}
}
.kpi{padding:14px; border-radius:16px; border:1px solid var(--line); background:rgba(0,0,0,.16)}
.kpi .n{font-size:22px; font-weight:900}
.kpi .t{font-size:12px; color:var(--muted); margin-top:4px}

.footer{
  margin-top:40px;
  border-top:1px solid var(--line);
  padding:22px 0;
  color:var(--muted);
}
.footer a{color:var(--muted); text-decoration:none}
.footer a:hover{color:var(--text)}
.footer .links{display:flex; flex-wrap:wrap; gap:12px}

.table{width:100%; border-collapse:separate; border-spacing:0 10px}
.table th{font-size:12px; color:var(--muted); text-align:left; font-weight:700; padding:0 10px}
.table td{padding:12px 10px; background:rgba(255,255,255,.06); border:1px solid var(--line)}
.table tr td:first-child{border-top-left-radius:14px; border-bottom-left-radius:14px}
.table tr td:last-child{border-top-right-radius:14px; border-bottom-right-radius:14px}
.pill{display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border-radius:999px; border:1px solid var(--line); background:rgba(0,0,0,.16); font-size:12px; color:var(--muted)}

.modal-backdrop{
  position:fixed; inset:0; background:rgba(0,0,0,.58);
  display:none; align-items:center; justify-content:center;
  padding:18px; z-index:50;
}
.modal-backdrop.open{display:flex}
.modal{
  width:min(720px, 100%);
  border-radius:18px;
  border:1px solid var(--line);
  background: rgba(12,18,36,.92);
  box-shadow:var(--shadow);
  overflow:hidden;
}
.modal header{padding:14px 16px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line)}
.modal main{padding:14px 16px; max-height:70vh; overflow:auto}
.small{font-size:12px; color:var(--muted)}
