:root{--main:#1d4ed8;--accent:#f59e0b;--bg:#f7f8fb;--card:#fff;--text:#1f2937;--sub:#6b7280;--line:#e5e7eb}
*{box-sizing:border-box}
body{margin:0;font-family:"Hiragino Sans","Noto Sans JP",system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.8}
a{color:var(--main)}
header{background:var(--main);color:#fff;padding:0 20px}
header .inner{max-width:1000px;margin:auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:12px 0}
header .logo{font-weight:700;font-size:1.2rem;color:#fff;text-decoration:none}
nav a{color:#fff;text-decoration:none;margin-left:16px;opacity:.9}
nav a:hover,nav a.active{opacity:1;text-decoration:underline}
.hero{background:linear-gradient(135deg,#1d4ed8,#3b82f6);color:#fff;padding:56px 20px;text-align:center}
.hero h1{margin:0 0 12px;font-size:2rem}
.hero p{margin:0 auto;max-width:640px;opacity:.95}
.btn{display:inline-block;margin-top:20px;background:var(--accent);color:#1f2937;padding:10px 22px;border-radius:999px;font-weight:700;text-decoration:none}
main{max-width:1000px;margin:auto;padding:32px 20px 60px}
h2{border-left:6px solid var(--main);padding-left:12px;margin-top:40px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column}
.card h3{margin:8px 0;font-size:1.05rem}
.card p{color:var(--sub);font-size:.92rem;margin:0 0 8px;flex:1}
.tag{display:inline-block;font-size:.75rem;padding:2px 10px;border-radius:999px;background:#e0e7ff;color:#1e3a8a;margin-right:6px}
.tag.video{background:#fee2e2;color:#991b1b}
.meta{font-size:.8rem;color:var(--sub)}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 24px}
.filters button{border:1px solid var(--main);background:#fff;color:var(--main);padding:6px 14px;border-radius:999px;cursor:pointer}
.filters button.on{background:var(--main);color:#fff}
.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:24px}
.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
label{display:block;font-size:.9rem;font-weight:600}
input{width:100%;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;font-size:1rem;margin-top:4px}
.calc{margin-top:20px;background:var(--main);color:#fff;border:0;padding:12px 28px;border-radius:999px;font-size:1rem;font-weight:700;cursor:pointer}
.result{margin-top:24px;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.stat{background:#eff6ff;border-radius:12px;padding:16px}
.stat small{color:var(--sub)}
.stat strong{display:block;font-size:1.4rem;color:var(--main)}
canvas{width:100%;height:320px;margin-top:20px;background:#fff;border:1px solid var(--line);border-radius:12px}
table{width:100%;border-collapse:collapse;margin-top:16px;font-size:.92rem;background:#fff}
th,td{padding:8px;border-bottom:1px solid var(--line);text-align:right}
th{background:#f1f5f9}
.note{font-size:.85rem;color:var(--sub)}
footer{text-align:center;color:var(--sub);font-size:.85rem;padding:24px}
