:root{--bg: #0f0f1a;--bg-card: #1a1a2e;--bg-input: #16213e;--primary: #e94560;--primary-hover: #ff6b81;--text: #eaeaea;--text-muted: #888;--border: #2a2a4a;--accent: #533483;--success: #00d2d3;--radius: 12px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Noto Sans JP,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-hover)}.container{max-width:640px;margin:0 auto;padding:16px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:12px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;border:none;border-radius:var(--radius);background:var(--primary);color:#fff;font-size:16px;font-weight:700;cursor:pointer;transition:background .2s;width:100%;font-family:inherit}.btn:hover:not(:disabled){background:var(--primary-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-outline{background:transparent;border:2px solid var(--primary);color:var(--primary)}.btn-outline:hover:not(:disabled){background:var(--primary);color:#fff}.input{width:100%;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-input);color:var(--text);font-size:16px;font-family:inherit;outline:none;transition:border-color .2s}.input:focus{border-color:var(--primary)}.input::placeholder{color:var(--text-muted)}.label{display:block;font-size:14px;color:var(--text-muted);margin-bottom:6px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.text-sm{font-size:14px}.header{text-align:center;padding:24px 0 16px}.header h1{font-size:28px;background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header p{color:var(--text-muted);font-size:14px;margin-top:4px}.footer{text-align:center;padding:32px 0 16px;font-size:13px;color:var(--text-muted)}.footer a{color:var(--text-muted);transition:color .2s}.footer a:hover{color:var(--primary)}.footer-divider{margin:0 8px;color:var(--border)}@media(max-width:480px){.container{padding:12px}.header h1{font-size:24px}}
