*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;background:#f3f4f6;color:#111827}a{color:#2563eb}.hero,.auth{max-width:680px;margin:10vh auto;padding:40px}.hero h1{font-size:clamp(2.5rem,8vw,5rem);line-height:1.05}.eyebrow{letter-spacing:.18em;font-weight:700;color:#2563eb}.actions{display:flex;gap:12px;flex-wrap:wrap}.button,button{display:inline-block;border:0;border-radius:12px;padding:12px 18px;background:#111827;color:#fff;text-decoration:none;font-weight:700;cursor:pointer}.secondary{background:#e5e7eb;color:#111827}.danger{background:#b91c1c}.auth,.card{background:#fff;border-radius:20px;box-shadow:0 12px 40px #0001}.auth form,.card form{display:grid;gap:16px}label{display:grid;gap:7px;font-weight:700}.check{display:flex;align-items:center;font-weight:400}input,textarea,select{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:10px;font:inherit}textarea{min-height:110px}.error{background:#fee2e2;padding:12px;border-radius:10px}.success{background:#dcfce7;padding:12px;border-radius:10px}.top{display:flex;justify-content:space-between;align-items:center;padding:16px 5%;background:#111827;color:#fff}.top nav{display:flex;gap:16px}.top a{color:#fff}.container{max-width:900px;margin:30px auto;padding:0 16px;display:grid;gap:20px}.card{padding:24px}.row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #e5e7eb}.row small{display:block;color:#6b7280;margin-top:5px}@media(max-width:600px){.hero,.auth{margin:0;padding:28px 20px;border-radius:0}.top{align-items:flex-start}.row{align-items:flex-start}.row button{padding:8px 10px}}
/* Admin page layout */
.shell{
  width:100%;
  max-width:680px;
  margin:30px auto;
  padding:0 16px;
}
.shell > .card{
  width:100%;
}
.status{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:24px 0;
}
.status > div{
  padding:16px;
  border:1px solid #e5e7eb;
  border-radius:14px;
  background:#f9fafb;
}
.status span,.status b{display:block}.status span{font-size:.8rem;color:#6b7280}.status b{margin-top:6px;font-size:1.5rem}.hidden{display:none!important}
@media(max-width:700px){
  .shell{margin:16px auto;padding:0 12px}
  .shell > .card{padding:20px 16px}
  .status{grid-template-columns:repeat(2,minmax(0,1fr))}
}
