:root{--bg:#f7f8fa;--surface:#fff;--line:#e3e8f0;--fg:#1b2433;--fg-2:#4d5a6e;--fg-3:#7a879a;--accent:#3b6fe0;--ng:#b42318;--ng-soft:#fde7e5;color-scheme:light}
@media (prefers-color-scheme:dark){:root{--bg:#10151d;--surface:#171e29;--line:#2a3445;--fg:#e7ecf3;--fg-2:#aeb9c9;--fg-3:#7f8b9e;--accent:#6b95f0;--ng:#f2867b;--ng-soft:#3d1c19;color-scheme:dark}}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{background:var(--bg);color:var(--fg);font-family:"Noto Sans JP","Hiragino Sans","Yu Gothic",system-ui,sans-serif;display:grid;place-items:center;min-height:100vh;padding:16px}
.box{width:min(380px,100%);background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px;box-shadow:0 4px 18px rgba(59,111,224,.08)}
.brand{display:flex;gap:10px;align-items:center;margin-bottom:20px}
.mark{width:36px;height:36px;border-radius:9px;background:var(--accent);color:#fff;display:grid;place-items:center;font-family:Inter,sans-serif;font-weight:700}
.brand small{display:block;font-size:11px;color:var(--fg-3)}
.brand b{display:block;font-size:15px}
form{display:grid;gap:12px}
label{display:grid;gap:5px;font-size:12px;font-weight:700;color:var(--fg-2)}
input{font:inherit;font-size:16px;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:9px 11px}
input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button{font:inherit;font-weight:700;font-size:14px;border:0;border-radius:9px;padding:10px;background:var(--accent);color:#fff;cursor:pointer;margin-top:4px}
button:disabled{opacity:.6;cursor:wait}
.msg{margin:0;font-size:12px;color:var(--ng);background:var(--ng-soft);border-radius:8px;padding:8px 10px}
.note{margin:16px 0 0;font-size:11px;color:var(--fg-3);line-height:1.6}
