:root{--red:#c8102e;--green:#2e7d32;--ink:#222;--muted:#777;--bg:#fff;--line:#e5e5e5;--warn:#fff4e5}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif;color:var(--ink);background:var(--bg);font-size:17px;line-height:1.6}
.bar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--red);color:#fff}
.bar a{color:#fff;text-decoration:none;font-weight:600}
main{padding:16px;max-width:640px;margin:0 auto}
h1{font-size:1.3rem;margin:.4em 0}
h2{font-size:1.05rem;margin:1.4em 0 .4em}
.who{font-size:1.1rem;margin:0}
.state{font-size:1.4rem;font-weight:700;margin:.3em 0 1em}
.state-working{color:var(--green)}.state-break{color:#b26a00}
.sites{border:0;padding:0;margin:0 0 16px;display:flex;flex-wrap:wrap;gap:8px}
.sites legend{font-size:.9rem;color:var(--muted);margin-bottom:4px}
.site{flex:1 1 40%;border:2px solid var(--line);border-radius:12px;padding:12px;font-size:1.1rem}
.site:has(input:checked){border-color:var(--red);background:#fff5f6}
.site small{color:var(--muted)}
button,.big.link{font:inherit;border:0;border-radius:14px;cursor:pointer}
.big{display:block;width:100%;padding:28px 0;font-size:1.8rem;font-weight:700;background:#444;color:#fff;margin:10px 0;text-align:center;text-decoration:none}
.big.in{background:var(--green)}.big.out{background:var(--red)}
.mid{padding:14px 20px;font-size:1.1rem;background:#eee;margin:6px 6px 6px 0}
.mid.in{background:var(--green);color:#fff}
.small{padding:6px 12px;font-size:.9rem;background:#eee}
button:disabled{opacity:.5}
.msg{padding:12px;border-radius:10px;background:#eef7ee}.msg.error{background:#fdecea}
.muted{color:var(--muted)}.small{font-size:.85rem}
.tag{display:inline-block;padding:0 8px;border-radius:8px;background:#fde2c6;font-size:.85rem}
.alert{background:var(--warn);padding:10px;border-radius:10px}
.list{width:100%;border-collapse:collapse;font-size:.95rem}
.list td,.list th{border-bottom:1px solid var(--line);padding:6px 4px;text-align:left;vertical-align:top}
.list tr.warn,.card.warn{background:var(--warn)}
.card{border:1px solid var(--line);border-radius:12px;padding:12px;margin:12px 0}
.mnav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.mnav a{padding:6px 12px;border-radius:999px;background:#f2f2f2;color:var(--ink);text-decoration:none}
.form .field{margin:10px 0}.form label{display:block;font-weight:600}
.form input,.form select,input[type=text],input[type=password]{font-size:1rem;padding:8px;width:100%;max-width:420px}
.form ul{list-style:none;padding:0}
.inline{display:inline}
.qr{width:240px;height:240px;image-rendering:pixelated}
.biglist li{font-size:1.15rem;margin:8px 0}
.steps li{margin:12px 0}
.ios,.android{display:block;margin-top:4px}
.punches{padding-left:1.2em}
.codes{columns:2;font-size:1.1rem}
