/* ページ毎のCSS */
.chat-container {
	padding: 2rem 1rem;
    overflow-y: scroll;
	margin: 2rem auto;
	background: #ffffff;
	border-radius: 18px;
	overflow: hidden;
}

.chat-header {
    text-align: center;
	padding: 1.5rem;
    background: #d975a9;
    color: #ffffff;
    border-top-left-radius: 18px;
    border-top-right-radius: 18px;
}

.chat-messages {
	min-height: 400px;
	max-height: 70vh;
	overflow-y: auto;
	padding: 1.5rem;
	background: #ffffff;
}

.message {
	display: flex;
	align-items: flex-start;
	max-width: 1000px;
	margin: 0 auto 1rem;
}

.message.bot {justify-content: flex-start;}

.message.user {justify-content: flex-end;}

.message-bubble {
	max-width: 75%;
	padding: 0.75rem 1rem;
	border-radius: 18px;
	font-size: 0.95rem;
	line-height: 1.4;
	word-wrap: break-word;
}

.message.bot .message-bubble {
	background-color: #fdf7e3;
    border: 1px solid #d2ba7f;
    color: #333;
	margin-left: 0.5rem;
}

.message.user .message-bubble {
	background-color: #ffffff;
    border: 1px solid #e0e0e0;
    color: #333;
	margin-right: 0.5rem;
}

.bot-avatar, .user-avatar {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.bot-avatar {background-color: #ae4480;}

.user-avatar {background-color: #4caf50;}

.chat-input {
	padding: 1.5rem 0 3rem;
	background: #ffffff;
	border-bottom-left-radius: 18px;
    border-bottom-right-radius: 18px;
}

.option-btn {
	padding: 1rem 1.5rem;
    background-color: #5ea344;
	border: 2px solid #5ea344;
	color: #ffffff;
    border-radius: 12px;
	cursor: pointer;
	transition: all 0.3s ease;
    text-align: center;
    font-size: 1.2rem;
	letter-spacing: 0.5em;
    line-height: 1.4;
	font-weight: 600;
	min-width: 250px;
	width: 100%;
	max-width: 400px;
}

.option-btn:hover {
	background-color: #b0cf00;
	border: 2px solid #5ea344;
	transform: translateY(-2px);
}

.option-buttons {
	display: flex;
	flex-direction: column;
	gap: 3rem;
	margin-top: 1rem;
	align-items: center;
	max-width: 1000px;
	margin-left: auto;
	margin-right: auto;
	padding: 2rem 1rem;
    background-color: #fefbee;
    border-top: none;
    border-radius: 12px;
	border: 2px solid #d2ba7f;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.typing-indicator {
	display: none;
	padding: 0.5rem 1rem;
	font-style: italic;
	color: #666;
}

.result-card {padding: 0 2rem;}

.result-card h3 {
	color: #ae4480;
	margin-top: 0;
}
.restart-btn_box {
	text-align: center;
	margin: 0 auto;
}

.restart-btn {
	background: #5ea344;
	color: #ffffff;
	border: none;
	padding: 0.8rem 1.5rem;
	border-radius: 25px;
	cursor: pointer;
	font-size: 1rem;
	margin-top: 1rem;
}

.restart-btn:hover {background: #b0cf00;}

.action-buttons {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	align-items: center;
}

.care-plan-btn {
	background: #ae4480;
	color: #ffffff;
	border: none;
	padding: 1rem 2rem;
	border-radius: 0.6rem;
	cursor: pointer;
	transition: all 0.3s;
	font-size: 1.2em;
	font-weight: 600;
	min-width: 250px;
	width: 100%;
	max-width: 600px;
	text-align: center;
	box-shadow: 0 4px 12px rgba(50,50,50,0.5);
}

.care-plan-btn:hover {
	background-color: #d975a9;
	border-radius: 3rem;
}

.application-btn {
	background: #ae4480;
	color: #ffffff;
	border: none;
	padding: 1rem 2rem;
	border-radius: 0.6rem;
	cursor: pointer;
	transition: all 0.3s;
	font-size: 1.2rem;
	font-weight: 600;
	min-width: 250px;
	width: 100%;
	max-width: 600px;
	text-align: center;
	box-shadow: 0 4px 12px rgba(50,50,50,0.5);
}

.application-btn:hover {
	background-color: #d975a9;
	border-radius: 3rem;
}

.hidden {display: none;}

/* レスポンシブデザイン_タブレット用*/
@media (max-width: 1024px) {
.chat-container {
	width: 98%;
	margin: 1rem auto;
}
            
.chat-header {padding: 1.5rem;}
            
.chat-header h2 {font-size: 1.8rem;}
            
.chat-messages {padding: 1.5rem; max-height: 60vh;}
}

/* レスポンシブデザイン_スマホ用*/
@media (max-width: 768px) {
.chat-container {
	width: 100%;
	margin: 0.5rem auto;
	border-radius: 8px;
	max-height: 90vh;
	display: flex;
	flex-direction: column;
}
            
.chat-header {
	padding: 1.5rem 1rem;
	flex-shrink: 0;
}
            
.chat-header h2 {font-size: 1.5rem;}
            
.chat-header p {font-size: 1rem;}
            
.chat-messages {
	padding: 1rem;
	max-height: 40vh;
	min-height: 250px;
	flex: 1;
	overflow-y: auto;
}
            
.chat-input {
	padding: 1rem;
	flex-shrink: 0;
	background: white;
	border-top: 2px solid #f0f0f0;
}
            
.message-bubble {
	max-width: 85%;
	padding: 1rem;
	font-size: 0.95rem;
}
            
.option-buttons {max-width: 100%;　gap: 0.8rem;}
            
.option-btn {
	padding: 1rem 1.5rem;
	font-size: 1rem;
	min-width: auto;
	width: 100%;
	max-width: none;
	white-space: normal;
	word-wrap: break-word;
	line-height: 1.4;
}
            
.care-plan-btn,　.application-btn {
	padding: 1rem 1.5rem;
	font-size: 1rem;
	min-width: auto;
	width: 100%;
	max-width: none;
}
            
.bot-avatar, .user-avatar {
	width: 35px;
	height: 35px;
	font-size: 1rem;
}
            
.result-card {padding: 1rem;　margin: 0.5rem 0;}
            
.action-buttons {gap: 0.8rem;}
}

@media (max-width: 480px) {
.chat-container {
	margin: 0;
	border-radius: 0;
	height: 100vh;
	max-height: 100vh;
}
            
.chat-header {padding: 1rem;}
            
.chat-header h2 {font-size: 1.3rem;}
            
.chat-messages {
	padding: 0.75rem;
	max-height: 35vh;
	min-height: 200px;
}
            
.chat-input {padding: 0.75rem;　border-top: 2px solid #e0e0e0;}
            
.message-bubble {
	max-width: 90%;
	padding: 0.8rem 1rem;
	font-size: 0.9rem;
}
            
.option-buttons {gap: 0.6rem;}
            
.option-btn {
	padding: 1rem 0.8rem;
	font-size: 0.95rem;
	min-width: auto;
	width: 100%;
	max-width: none;
	text-align: center;
	white-space: normal;
	word-wrap: break-word;
	line-height: 1.3;
	box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
            
.care-plan-btn,　.application-btn {
	padding: 1rem 0.8rem;
	font-size: 0.95rem;
	min-width: auto;
	width: 100%;
	max-width: none;
}
            
.restart-btn {
	padding: 0.8rem 1.2rem;
	font-size: 0.9rem;
	margin-top: 8rem;
}
            
.result-card {padding: 0.8rem;　font-size: 0.9rem;}
}