* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, sans-serif; background: #f3f3f3; color: #222; }
.login { min-height: 100vh; display: flex; align-items: center; justify-content: center; }
form { width: min(92vw, 320px); background: #fff; padding: 20px; border: 1px solid #ddd; }
input, button { width: 100%; margin: 8px 0 0; padding: 12px; font-size: 16px; }
button { background: #555; color: #fff; border: 0; }
.err { color: #666; font-size: 14px; }
header { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; background: #fff; border-bottom: 1px solid #ddd; }
header form { width: auto; padding: 0; border: 0; background: none; }
header button { width: auto; margin: 0; }
main { padding: 16px; display: grid; gap: 24px; }
h1 { font-size: 18px; font-weight: 600; margin: 0 0 8px; }
.card { background: #fff; border: 1px solid #ddd; padding: 12px; margin: 8px 0; }
.card button { width: auto; display: inline-block; margin-right: 8px; }
.photos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.photos img { width: 100%; height: 160px; object-fit: cover; background: #ddd; }
#viewer[hidden] { display: none; }
@media (min-width: 720px) { main { grid-template-columns: 1fr 1fr; } #viewer { grid-column: 1 / -1; } }
