* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html, body {
	height: 100%;
	font-family: 'Noto Sans JP', sans-serif;
	background: #F2F4EA;
}

.container {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	min-height: calc(100vh - 40px); /* footer の高さ分を引く */
	padding: 20px;
}

/* お知らせ */
.login-notice {
	border: 2px solid var(--base-color);
	border-radius: 4px;
	background-color: #FFF;
	padding: 10px;
	margin-bottom: 20px;
	font-size: 0.9em;
	color: #333;
	width: 100%;
	max-width: 600px;
}

/* ログインフォーム */
.login-form {
	border: 1px solid #ccc;
	padding: 30px;
	margin-bottom: 40px;
	background-color: white;
	width: 100%;
	max-width: 600px;
	min-height: 400px;
	box-shadow: 0 0 10px rgba(0,0,0,0.1);
	border-radius: 8px;
	position: relative;
	z-index: 1;
}

/* ロゴ画像 */
.logo {
	width: 100%;
	max-width: 500px;
	margin: 0 auto 20px auto;
	display: block;
}
.logo-text {
	font-size: 1.6em;
	text-align: center;
	margin-bottom: 25px;
	color: #000;
}

/* メッセージ */
.message {
	margin: 20px 0;
	padding: 20px;
	border: 1px solid #000;
	border-radius: 8px;
}
.message.message-success {
	border: 1px solid #2ecc71;
	background-color: #e0f5e0;
	color: #145730;
}
.message.message-error {
	border: 1px solid #f58085;
	background-color: #f8d7da;
	color: #58151c;
}

/* 入力欄 */
.input-group {
	margin-bottom: 30px;
	text-align: left;
}
.input-group label {
	display: block;
	margin-bottom: 5px;
	font-weight: bold;
	font-size: 0.95em;
	color: #333;
}
input[type="text"],
input[type="password"] {
	width: 100%;
	padding: 10px;
	border: 1px solid #ccc;
	border-radius: 4px;
}
.radio-group {
	display: flex;
	gap: 20px;
	margin-top: 10px;
}
.radio-group label {
	font-weight: normal;
	font-size: 0.95em;
	color: #333;
}

.error-message {
	color: red;
	font-size: 0.85em;
	margin-top: 5px;
	display: block;
}

/* ログインボタン */
.btn-login-wrapper {
	display: flex;
	justify-content: center;
}
.btn-login-wrapper button {
	min-width: 250px;
}

/* リンク */
.forgot-password {
	font-size: 0.9em;
}
.link-row {
	display: flex;
	justify-content: space-between;
	margin-top: 35px;
	font-size: 0.9em;
}
.link-row a {
	color: #0078d7;
	display: inline; /* blockを解除 */
}
.link-row a:hover {
	text-decoration: underline;
}

footer {
	position: fixed;
	bottom: 0;
	width: 100%;
	height: 40px;
	text-align: center;
	line-height: 40px;
	color: #FFF;
	background-color: #3E3D3E;
	font-size: 0.85em;
	z-index: 1;
}

.corner-image {
	position: fixed;
	bottom: 40px;
	right: 50px;
	/* width: 100px; 必要に応じて */
	height: auto;
	z-index: 0;
	opacity: 0.8;
	pointer-events: none;
}

@media (max-width: 480px) {
	.login-form {
		padding: 20px;
	}

	button {
		font-size: 0.95em;
		padding: 10px;
	}

	.input-group label {
		font-size: 0.9em;
	}

	.error-message {
		font-size: 0.8em;
	}

	.link-row a {
		max-width: 160px;
	}
}
