:root{--fg:#111827;--muted:#667085;--line:#e5e7eb;--bg:#f5f7fb;--card:#ffffff;--soft:#eef2ff;--softline:#dbe4ff;--danger:#b45309;--ok:#166534;--warn:#92400e;--cta:#2c3f73;--cta-hover:#24355f}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",sans-serif;background:var(--bg);color:var(--fg)}
a{color:inherit}
header{max-width:1040px;margin:0 auto;padding:20px 16px 10px}
.hero-head{border:1px solid var(--softline);background:linear-gradient(180deg,#ffffff 0%, #f7f9ff 100%);border-radius:20px;padding:18px;box-shadow:0 10px 30px rgba(15,23,42,.06)}
.eyebrow{display:inline-block;padding:4px 10px;border-radius:999px;background:var(--soft);color:var(--cta);font-size:12px;font-weight:700;letter-spacing:.02em}
.brand{display:flex;gap:12px;align-items:center;margin-top:12px}
.logo{width:38px;height:38px;border-radius:12px;background:var(--cta);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;box-shadow:0 8px 20px rgba(44,63,115,.18)}
h1{margin:0;font-size:20px}
nav{margin-top:14px;display:flex;flex-wrap:wrap;gap:10px}
nav a,.cta{font-size:13px;text-decoration:none;padding:10px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--fg);font-weight:600}
nav a:hover,.cta:hover{text-decoration:none}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.cta.primary{background:var(--cta);border-color:var(--cta);color:#fff;box-shadow:0 8px 20px rgba(44,63,115,.18)}
.cta.primary:hover{background:var(--cta-hover);border-color:var(--cta-hover)}
.cta.soft{background:var(--soft);border-color:var(--softline);color:var(--cta)}
main{max-width:1040px;margin:0 auto;padding:0 16px 40px}
.hero{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 1px 10px rgba(15,23,42,.04)}
.hero h2{margin:0 0 8px;font-size:18px}
.muted{color:var(--muted);font-size:13px;line-height:1.65}
.alert{margin-top:12px;border:1px solid #f7d7a7;background:#fffaf2;border-radius:14px;padding:12px}
.alert strong{color:var(--danger)}
.grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:14px}
@media(min-width:980px){.grid{grid-template-columns:1.1fr .9fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 1px 10px rgba(15,23,42,.04)}
.card h3{margin:0 0 8px;font-size:15px}
label{display:block;font-size:12px;color:var(--muted);margin:10px 0 6px}
input,textarea,select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:14px}
textarea{min-height:96px;resize:vertical}
.row{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:720px){.row{grid-template-columns:1fr 1fr}}
.btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
button{border:1px solid var(--cta);background:var(--cta);color:#fff;padding:10px 12px;border-radius:12px;font-size:13px;cursor:pointer;font-weight:600}
button.secondary{background:#fff;color:var(--fg);border-color:var(--line)}
button.ghost{background:var(--soft);color:var(--cta);border-color:var(--softline)}
button:disabled{opacity:.55;cursor:not-allowed}
.status{margin-top:10px;font-size:13px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:#fff}
.status.ok{border-color:#bbf7d0;background:#f0fdf4;color:var(--ok)}
.status.warn{border-color:#fde68a;background:#fffbeb;color:var(--warn)}
.status.err{border-color:#fecaca;background:#fff5f5;color:#b91c1c}
pre{white-space:pre-wrap;word-break:break-word;background:#0f172a;color:#e5e7eb;padding:12px;border-radius:12px;border:1px solid #0f172a;overflow:auto;font-size:12px;line-height:1.55}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.tab{padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:12px;cursor:pointer}
.tab.active{background:var(--cta);color:#fff;border-color:var(--cta)}
.small{font-size:12px;color:var(--muted)}
.kvs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.kv{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff}
.kv .k{font-size:11px;color:var(--muted)}
.kv .v{font-size:13px;margin-top:4px}
details{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff;margin-top:10px}
summary{cursor:pointer;font-size:13px;color:#111}
@media(max-width:560px){header,main{padding-left:16px;padding-right:16px}.hero-head,.hero,.card{padding:14px}nav a,.cta{width:100%;text-align:center}}
