body { font-family: -apple-system, Segoe UI, Roboto, sans-serif; margin: 0; color: #1f2937; background: #fff; }
body.narrow { max-width: 420px; margin: 64px auto; padding: 0 16px; }
header { display: flex; gap: 16px; align-items: baseline; flex-wrap: wrap; padding: 12px 16px; border-bottom: 1px solid #e5e7eb; }
header nav a { margin-right: 12px; }
main { max-width: 1100px; margin: 0 auto; padding: 0 16px 48px; }
h1 { font-size: 1.5rem; }
h2 { font-size: 1.15rem; margin-top: 2rem; }
table { border-collapse: collapse; width: 100%; }
th, td { text-align: left; padding: 6px 8px; border-bottom: 1px solid #e5e7eb; vertical-align: top; }
input[type=text], input[type=email], input[type=number], input[type=password], textarea, select { width: 100%; padding: 8px; box-sizing: border-box; }
label { display: block; margin: 10px 0; }
button { padding: 8px 14px; margin: 4px 4px 4px 0; cursor: pointer; }
.ok { background: #ecfdf5; border: 1px solid #a7f3d0; padding: 8px 12px; }
.err { background: #fef2f2; border: 1px solid #fecaca; padding: 8px 12px; }
.muted { color: #6b7280; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px 24px; }
.photos img { height: 120px; margin: 4px; border: 1px solid #e5e7eb; }
pre { background: #f3f4f6; padding: 12px; white-space: pre-wrap; word-break: break-all; }
.tablewrap { overflow-x: auto; }
