*{box-sizing:border-box}
body{margin:0;background:#f3f0e9;color:#302d28;font-family:system-ui,-apple-system,"Yu Gothic",Meiryo,sans-serif;line-height:1.65}
a{color:#805047}
.wrap{max-width:1100px;margin:24px auto;padding:22px;background:#fff;border-radius:12px;box-shadow:0 3px 18px #0001}
h1{margin-top:0;font-size:1.7rem}
h2{margin-top:2rem;font-size:1.25rem}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.card{border:1px solid #ddd;border-radius:10px;padding:14px;min-width:0}
.card img{width:100%;aspect-ratio:16/9;object-fit:cover;background:#eee;border-radius:6px}
.preview{max-width:720px;width:100%;height:auto;display:block;margin:14px 0;border:1px solid #ddd;border-radius:6px}
.button,button{display:inline-block;padding:10px 18px;background:#8a4c43;color:#fff;border:0;border-radius:7px;text-decoration:none;cursor:pointer;font:inherit}
button:hover,.button:hover{background:#6f3932}
button.secondary{background:#777;padding:6px 12px;font-size:.9rem}
button.danger{background:#9b3939;padding:5px 10px;font-size:.9rem}
label{display:block;margin:12px 0}
input,select,textarea{display:block;width:100%;max-width:560px;padding:9px;margin-top:5px;border:1px solid #bbb;border-radius:5px;background:#fff;font:inherit}
input[type=checkbox]{display:inline-block;width:auto;margin-right:6px}
label.check{font-size:.9rem}
textarea{min-height:90px}
table{border-collapse:collapse;width:100%;margin:16px 0;min-width:620px}
td,th{padding:9px;border:1px solid #ddd;text-align:left;vertical-align:top}
th{background:#f5f1ec}
.table-scroll{overflow-x:auto}
.error{color:#a00;background:#fff0f0;padding:10px;border-radius:6px}
.notice{color:#385f39;background:#eff8ef;padding:10px;border-radius:6px}
.warning{color:#7a4c00;background:#fff7e5;padding:10px;border-radius:6px}
.small{font-size:.85rem;color:#666}
.inline{display:inline;margin:0}
.inline button{vertical-align:middle}
.gamebar{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin:10px 0 18px}
.gamebar strong{font-size:1.4rem;font-variant-numeric:tabular-nums}
.gamebar .mini{display:block;width:140px;max-width:28vw;height:auto;border:1px solid #ddd;margin-top:4px}
#puzzle-board{overflow:auto;max-width:100%;background:#e8e2d7;padding:10px;border-radius:8px;border:1px solid #d4cbbb}
#puzzle-board canvas{display:block;touch-action:none;max-width:none;cursor:grab}
#puzzle-board canvas:active{cursor:grabbing}
#game-status{font-weight:600;min-height:1.7em}
.download-form{display:inline-block;margin:8px 10px 8px 0}
@media(max-width:640px){.wrap{margin:0;padding:15px;border-radius:0}h1{font-size:1.4rem}.gamebar{gap:14px}}
.admin-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}

.return-home,.return-list{margin-top:28px;padding-top:14px;border-top:1px solid #eee}
.button.secondary{background:#777}
.button.secondary:hover{background:#5f5f5f}
