:root { --bg:#f5f6f8; --card:#fff; --text:#1d2330; --muted:#677084; --line:#dde1e8; --accent:#1f5fbf; --ok:#1f7a4d; --err:#b3261e; --warn:#a15c00; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--text); font:15px/1.7 -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Noto Sans JP", "Yu Gothic UI", sans-serif; }
.top { display:flex; flex-wrap:wrap; gap:8px 16px; align-items:center; justify-content:space-between; padding:12px 16px; background:#14213d; }
.top a { color:#fff; text-decoration:none; }
.brand { font-weight:700; letter-spacing:.04em; }
.brand span { font-weight:400; opacity:.8; margin-left:6px; }
.top nav { display:flex; gap:16px; font-size:14px; }
.devbar { background:#fff4d6; color:#6b4a00; padding:6px 16px; font-size:13px; border-bottom:1px solid #f0dc9c; }
main { max-width:760px; margin:24px auto; padding:0 16px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:20px; }
.card.narrow { max-width:460px; margin:0 auto; }
h1 { font-size:20px; margin:0 0 12px; }
label { display:block; margin:12px 0; font-size:14px; color:var(--muted); }
input[type=email], input[type=text], input[type=password], input[type=file], select, textarea { display:block; width:100%; margin-top:4px; padding:9px 10px; border:1px solid var(--line); border-radius:6px; font:inherit; color:var(--text); background:#fff; }
label.check { display:flex; gap:8px; align-items:center; color:var(--text); }
.row { display:grid; grid-template-columns:1fr 1fr; gap:0 12px; }
@media (max-width:600px) { .row { grid-template-columns:1fr; } }
button, .button { display:inline-block; padding:9px 18px; border:0; border-radius:6px; background:var(--accent); color:#fff; font:inherit; cursor:pointer; text-decoration:none; }
button.danger { background:#fff; color:var(--err); border:1px solid var(--err); padding:5px 12px; font-size:13px; }
.muted { color:var(--muted); font-size:13px; }
.ok { color:var(--ok); background:#e8f5ee; padding:8px 12px; border-radius:6px; }
.error { color:var(--err); background:#fdecea; padding:8px 12px; border-radius:6px; }
.warn-text { color:var(--warn); }
.manual dt { font-weight:700; margin-top:8px; }
.manual dd { margin:0; }
code { word-break:break-all; background:#f0f2f6; padding:2px 6px; border-radius:4px; }
.item { border-top:1px solid var(--line); padding:14px 0; }
.item:first-of-type { border-top:0; }
.meta { font-size:13px; color:var(--muted); }
.files { margin:6px 0; padding-left:20px; font-size:13px; }
.tag { display:inline-block; font-size:12px; padding:1px 8px; border-radius:10px; background:#eceff4; color:var(--muted); }
.tag.live { background:#e8f5ee; color:var(--ok); }
.tag.warn { background:#fff1e0; color:var(--warn); }
.downloads { list-style:none; padding:0; }
.downloads li { padding:8px 0; border-top:1px solid var(--line); word-break:break-all; }
.message { background:#f7f8fa; border-radius:6px; padding:10px 12px; margin-bottom:12px; }
form.inline { margin-top:6px; }
.qr-canvas { max-width:100%; width:320px; height:auto; image-rendering:pixelated; border:1px solid var(--line); background:#fff; }
input[type=color] { display:block; width:100%; height:38px; margin-top:4px; padding:2px; border:1px solid var(--line); border-radius:6px; background:#fff; }
button:disabled { opacity:.45; cursor:not-allowed; }
