:root{--bg:#f7f7f5;--card:#ffffff;--text:#1f2421;--muted:#6b716d;--line:#e2e4e0;--accent:#2f7d4f;--accent-dark:#256640;--danger:#b4342a}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,sans-serif;line-height:1.7}a{color:var(--accent)}header.site{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--line);background:var(--card)}header.site .brand{font-weight:700;text-decoration:none;color:var(--text);font-size:18px}header.site nav a{margin-left:16px;text-decoration:none;font-size:14px}main.page{max-width:640px;margin:0 auto;padding:32px 20px 64px}h1{font-size:24px;margin:0 0 16px}h2{font-size:18px;margin:32px 0 12px}p.muted,span.muted{color:var(--muted);font-size:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;margin:16px 0}.field{display:block;margin:12px 0}.field span{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}input[type=email],input[type=password],input[type=text]{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:16px;background:#fff}label.check{display:flex;gap:10px;align-items:flex-start;margin:12px 0;font-size:15px}label.check input{margin-top:6px}a.button,button{display:inline-block;padding:10px 18px;border-radius:8px;border:1px solid var(--accent);background:var(--accent);color:#fff;font-size:15px;cursor:pointer;text-decoration:none;text-align:center}a.button:hover,button:hover{background:var(--accent-dark)}a.button.secondary,button.secondary{background:#fff;color:var(--accent)}button.secondary:hover{background:#f0f5f1}button.danger{background:#fff;color:var(--danger);border-color:var(--danger)}button.danger:hover{background:#fbf0ee}a.button.wide,button.wide{width:100%}a.button.disabled,button:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.stack>*+*{margin-top:12px}.error{color:var(--danger);font-size:14px;margin:8px 0}.notice{background:#eef6f0;border:1px solid #cfe5d6;border-radius:8px;padding:12px 14px;font-size:14px}.stat{font-size:32px;font-weight:700}.stat small{font-size:14px;font-weight:400;color:var(--muted);margin-left:6px}table{width:100%;border-collapse:collapse;font-size:14px}td,th{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-weight:500}hr.sep{border:0;border-top:1px solid var(--line);margin:24px 0}