:root{
  --bg:#f5f6fa; --card:#ffffff; --text:#1a2233; --sub:#6b7280;
  --accent:#2563eb; --accent2:#1d4ed8; --border:#e5e9f0;
}
*{box-sizing:border-box;}
body{margin:0; font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; background:var(--bg); color:var(--text);}
.wrap{max-width:880px; margin:0 auto; padding:24px 16px;}
.wrap.narrow{max-width:420px; padding-top:60px;}
h1{font-size:20px; margin:0 0 4px;}
h2{font-size:16px; margin:0 0 12px;}
.sub{color:var(--sub); font-size:13px; margin-bottom:20px;}
.card{background:var(--card); border:1px solid var(--border); border-radius:14px; padding:20px; margin-bottom:16px;}
label{display:block; font-size:12px; color:var(--sub); margin-bottom:4px; margin-top:12px;}
input,select,textarea{width:100%; padding:9px 10px; border:1px solid var(--border); border-radius:8px; font-size:14px; font-family:inherit;}
button{cursor:pointer; font-family:inherit; font-size:14px;}
.btn{background:var(--accent); color:#fff; border:none; border-radius:8px; padding:10px 16px; font-weight:bold; margin-top:16px; width:100%;}
.btn:hover{background:var(--accent2);}
.btn-sub{background:#fff; color:var(--accent); border:1px solid var(--accent); border-radius:8px; padding:6px 12px; font-size:13px;}
.btn-danger{background:#fff; color:#dc2626; border:1px solid #fecaca; border-radius:6px; padding:4px 10px; font-size:12px;}
.link{color:var(--accent); cursor:pointer; text-decoration:underline; font-size:13px;}
.err{color:#dc2626; font-size:13px; background:#fef2f2; border:1px solid #fecaca; border-radius:8px; padding:10px 12px; margin-top:12px; display:none; white-space:pre-wrap;}
.row{display:flex; justify-content:space-between; align-items:center; gap:8px; padding:10px 0; border-bottom:1px solid var(--border);}
.row:last-child{border-bottom:none;}
.badge{display:inline-block; background:#eff6ff; color:var(--accent); border-radius:6px; padding:2px 8px; font-size:11px; font-weight:bold; margin-left:6px;}
.badge.staff{background:#f1f5f9; color:var(--sub);}
.topbar{display:flex; justify-content:space-between; align-items:center; margin-bottom:20px;}
.topbar .u{font-size:13px; color:var(--sub);}
.empty{color:var(--sub); font-size:13px; padding:20px 0; text-align:center;}
