:root { font-family: system-ui, Arial; }
body { margin:0; background:#f7f7f7; color:#111; }
.wrap { max-width: 1000px; margin: 0 auto; padding: 16px; }
.topbar { background:#fff; border-bottom:1px solid #e5e5e5; position:sticky; top:0; }
.topbar .wrap { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.brand a { font-weight:700; text-decoration:none; color:#111; }
nav a { margin-left:10px; text-decoration:none; color:#333; }
nav .danger { color:#b00020; }
.pill { background:#eee; padding:6px 10px; border-radius:999px; font-size:12px; margin-left:10px; }
.card { background:#fff; border:1px solid #e5e5e5; border-radius:14px; padding:16px; box-shadow: 0 1px 8px rgba(0,0,0,.04); }
.grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap:14px; }
.thumb img { width:100%; height:220px; object-fit:cover; border-radius:12px; background:#ddd; }
.btn { display:inline-block; border:1px solid #ddd; background:#fff; padding:10px 12px; border-radius:10px; text-decoration:none; color:#111; }
.btn.primary { background:#111; color:#fff; border-color:#111; }
.btn.danger { background:#b00020; color:#fff; border-color:#b00020; }
.row { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.table { width:100%; border-collapse:collapse; }
.table th,.table td { padding:10px; border-bottom:1px solid #eee; text-align:left; }
input, textarea, select { width:100%; padding:10px; border-radius:10px; border:1px solid #ddd; }
label { display:block; margin:10px 0 6px; font-weight:600; }
h1,h2 { margin: 6px 0 14px; }
.notice { padding:10px 12px; border-radius:12px; background:#e8f5e9; border:1px solid #c8e6c9; }
.error { padding:10px 12px; border-radius:12px; background:#ffebee; border:1px solid #ffcdd2; }

.slideshow {
  height: calc(100vh - 70px);
  display:flex;
  align-items:center;
  justify-content:center;
}
.slide {
  width: min(900px, 96vw);
  background:#000;
  border-radius:18px;
  overflow:hidden;
  position:relative;
  box-shadow: 0 18px 60px rgba(0,0,0,.35);
}
.slide img { width:100%; height: min(72vh, 700px); object-fit:cover; display:block; }
.caption {
  position:absolute; left:0; right:0; bottom:0;
  padding:16px;
  background: linear-gradient(to top, rgba(0,0,0,.75), rgba(0,0,0,0));
  color:#fff;
}
.caption h2 { margin:0 0 6px; font-size:24px; }
.caption p { margin:0; opacity:.9; }
.controls { margin-top:12px; display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
small.muted { color:#666; }
