* { box-sizing: border-box; }
body { font-family: system-ui, -apple-system, sans-serif; margin: 0; background: #f4f4f2; color: #222; }
.card { max-width: 520px; margin: 2rem auto; background: #fff; border-radius: 12px; padding: 1.5rem; box-shadow: 0 2px 10px rgba(0,0,0,.08); }
.card.narrow { max-width: 360px; }
.wrap { max-width: 960px; margin: 1rem auto; padding: 0 1rem; }
h1 { font-size: 1.4rem; margin: .2rem 0 .8rem; }
h3 { margin: 1.2rem 0 .5rem; }
.muted { color: #777; }
.err { color: #c0392b; font-weight: 600; }
.ok { background: #e7f6ec; border-radius: 10px; padding: .8rem 1rem; font-weight: 600; margin-bottom: .8rem; }
.wait { background: #eef3fb; border-radius: 10px; padding: .8rem 1rem; margin-bottom: .8rem; }
.pick { display: block; padding: .7rem .8rem; border: 1px solid #ddd; border-radius: 10px; margin: .4rem 0; cursor: pointer; background: #fafafa; }
.pick:has(input:checked) { border-color: #2f6fed; background: #eef3ff; }
textarea, input, select, button { font: inherit; width: 100%; padding: .6rem .7rem; margin: .3rem 0; border: 1px solid #ccc; border-radius: 8px; background: #fff; }
button { background: #2f6fed; color: #fff; border: none; font-weight: 600; cursor: pointer; }
button.secondary { background: #777; }
table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 10px; overflow: hidden; }
th, td { text-align: left; padding: .55rem .7rem; border-bottom: 1px solid #eee; vertical-align: top; }
th { background: #f0f0ee; font-size: .85rem; }
tr.over td { background: #fdeeee; }
.tag { background: #eef3ff; color: #2f6fed; border-radius: 6px; padding: 0 .4rem; font-size: .8rem; }
.top { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; margin: .8rem 0; }
.top nav a { margin-right: .2rem; }
.top nav a.on { font-weight: 700; color: #2f6fed; }
.rowform { display: flex; gap: .4rem; flex-wrap: wrap; }
.rowform input, .rowform select { width: auto; flex: 1 1 140px; }
.rowform button { width: auto; flex: 0 0 auto; }
.timeline { list-style: none; padding-left: 0; }
.timeline li { padding: .25rem 0; border-bottom: 1px dashed #eee; }
.thumb { width: 90px; height: 90px; object-fit: cover; border-radius: 8px; margin: .15rem; }
.file input { margin-top: .3rem; }
a { color: #2f6fed; }
.btn { display: inline-block; background: #2f6fed; color: #fff; padding: .6rem 1.1rem; border-radius: 8px; font-weight: 600; text-decoration: none; }
code { background: #f0f0ee; padding: .1rem .35rem; border-radius: 6px; }
