:root { color-scheme: dark; }
* { box-sizing: border-box; }
body { margin: 0; font-family: sans-serif; background: #111; color: #eee; }
.wrap { max-width: 22rem; margin: 18vh auto; padding: 0 1rem; }
header { display: flex; gap: 0.6rem; align-items: center; flex-wrap: wrap; padding: 0.8rem 1rem; background: #1a1a1a; }
h1, h2 { font-weight: 600; }
h2 { padding: 0.8rem 1rem 0.2rem; margin: 0; }
.sub { font-weight: 400; opacity: 0.65; font-size: 0.85rem; }
.empty { padding: 0 1rem; opacity: 0.55; }
input, button { font: inherit; padding: 0.45rem 0.7rem; }
button { background: #ddd; color: #111; border: 0; cursor: pointer; }
button:hover { background: #fff; }
.err { color: #f88; }
.cap-edit { display: flex; align-items: center; gap: 0.35rem; opacity: 0.9; }
.cap-edit input { width: 6.5rem; background: #111; color: #eee; border: 1px solid #333; }
.grid { display: grid; gap: 0.7rem; padding: 0.6rem 1rem 1.2rem; }
.card {
  background: #1c1c1c;
  padding: 0.8rem;
  display: grid;
  grid-template-columns: minmax(12rem, 1fr) auto;
  gap: 0.6rem 0.8rem;
  align-items: start;
}
#door .card { border: 1px solid #3a6; }
.meta { display: grid; gap: 0.35rem; min-width: 0; }
.tag {
  font-family: ui-monospace, Consolas, monospace;
  letter-spacing: 0.06em;
  font-size: 0.95rem;
}
.lab {
  width: 100%;
  max-width: 18rem;
  background: #111;
  color: #eee;
  border: 1px solid #333;
}
.hint { opacity: 0.7; font-size: 0.85rem; }
.acts { display: flex; flex-wrap: wrap; gap: 0.4rem; justify-content: flex-end; }
.row { display: flex; flex-wrap: wrap; gap: 0.4rem; padding: 0.6rem 1rem; }
#cv { width: min(100%, 960px); background: #000; display: block; margin: 0 1rem; }
#gals { display: flex; flex-wrap: wrap; gap: 0.4rem; padding: 1rem; }
#gals img { width: 96px; height: 96px; object-fit: cover; background: #222; }
