:root {
	--dark: #374151;
	--darker: #1F2937;
	--darkest: #111827;
	--grey: #6B7280;
	--pink: #EC4899;
	--purple: #8B5CF6;
	--light: #EEE;
}

* {
	margin: 0;
	box-sizing: border-box;
	font-family: "Fira sans", sans-serif;
}

body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	color: #FFF;
	/* background-color: var(--dark); */
    background-color: rgba(0, 0, 0, 0.103);

    background-repeat: no-repeat;
    background-size: cover;
     /* used css variable */
}


header {
	padding: 2rem 1rem;
	max-width: 800px;
	width: 100%;
	margin: 0 auto;
}

header h1{ 
	font-size: 2.5rem;
	font-weight: 300;
	color: var(--grey);
	margin-bottom: 1rem;
}

#new-task-form {
	display: flex;
	gap: 1rem;
}

/* Mobile responsiveness for form */
@media (max-width: 768px) {
	header {
		padding: 1rem 0.5rem;
	}
	
	header h1 {
		font-size: 2rem;
		text-align: center;
	}
	
	#new-task-form {
		flex-direction: column;
		gap: 0.75rem;
	}
}

input, button {
	appearance: none;
	border: none;
	outline: none;
	background: none;
}

#new-task-input {
	flex: 1 1 0%;
	background-color: var(--darker);
	padding: 1rem;
	border-radius: 1rem;
	margin-right: 1rem;
	color: var(--light);
	font-size: 1.25rem;
	min-width: 0; /* Prevents flex overflow */
}

#new-task-input::placeholder {
	color: var(--grey);
}

#new-task-submit {
	color: var(--pink);
	font-size: 1.25rem;
	font-weight: 700;
	background-image: linear-gradient(to right, var(--pink), var(--purple));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	cursor: pointer;
	transition: 0.4s;
	white-space: nowrap; /* Prevents button text wrapping */
}

/* Mobile adjustments for form elements */
@media (max-width: 768px) {
	#new-task-input {
		margin-right: 0;
		font-size: 1rem;
		padding: 0.875rem;
	}
	
	#new-task-submit {
		font-size: 1rem;
		padding: 0.875rem 1rem;
		text-align: center;
	}
}

#new-task-submit:hover {
	opacity: 0.8;
}

#new-task-submit:active {
	opacity: 0.6;
}

main {
	flex: 1 1 0%;
	max-width: 800px;
	width: 100%;
	margin: 0 auto;
	padding: 0 1rem; /* Add horizontal padding */
}

.task-list {
	padding: 1rem;
}

.task-list h2 {
	font-size: 1.5rem;
	font-weight: 300;
	color: var(--grey);
	margin-bottom: 1rem;
}

#tasks .task {
	display: flex;
	justify-content: space-between;
	background-color: var(--darkest);
	padding: 1rem;
	border-radius: 1rem;
	margin-bottom: 1rem;
	align-items: center; /* Better vertical alignment */
}

/* Mobile responsiveness for tasks */
@media (max-width: 768px) {
	main {
		padding: 0 0.5rem;
	}
	
	.task-list {
		padding: 0.5rem;
	}
	
	.task-list h2 {
		font-size: 1.25rem;
		text-align: center;
	}
	
	#tasks .task {
		flex-direction: column;
		align-items: stretch;
		gap: 1rem;
		padding: 0.875rem;
	}
	
	.task .content .task-number {
		font-size: 1.1rem;
		min-width: 25px;
	}
}

.task .content {
	flex: 1 1 0%;
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.task .content .task-number {
	color: var(--pink);
	font-weight: 700;
	font-size: 1.25rem;
	min-width: 30px;
	text-align: right;
	flex-shrink: 0;
}

.task .content .text {
	color: var(--light);
	font-size: 1.125rem;
	width: 100%;
	display: block;
	transition: 0.4s;
	flex: 1;
}

.task .content .text:not(:read-only) {        
	color: var(--pink);
}

.task .actions {
	display: flex;
	margin: 0 -0.5rem;
	flex-wrap: wrap; /* Allow buttons to wrap on very small screens */
	gap: 0.5rem;
}

.task .actions button {
	cursor: pointer;
	margin: 0;
	font-size: 1.125rem;
	font-weight: 700;
	text-transform: uppercase;
	transition: 0.4s;
	padding: 0.5rem 0.75rem;
	border-radius: 0.5rem;
	min-width: 60px; /* Ensure buttons have minimum width */
}

.task .actions button:hover {
	opacity: 0.8;
}

.task .actions button:active {
	opacity: 0.6;
}

.task .actions .edit {
	background-image: linear-gradient(to right, var(--pink), var(--purple));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.task .actions .delete {
	color: crimson;
}

.task .actions .complete {
	color: #10B981;
}

/* Mobile adjustments for task actions */
@media (max-width: 768px) {
	.task .actions {
		justify-content: center;
		margin: 0;
	}
	
	.task .actions button {
		font-size: 0.9rem;
		padding: 0.5rem;
		flex: 1;
		max-width: 80px;
	}
}

/* Voice controls styling */
.voice-controls {
	margin-top: 1rem;
	text-align: center;
	padding: 0 1rem;
}

#voice-btn {
	background: linear-gradient(to right, var(--pink), var(--purple));
	color: white;
	padding: 0.75rem 1.5rem;
	border-radius: 1rem;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	transition: 0.3s;
	margin-bottom: 0.5rem;
	border: none;
	min-width: 140px;
}

#voice-btn:hover {
	opacity: 0.8;
	transform: translateY(-1px);
}

#voice-btn:active {
	opacity: 0.6;
	transform: translateY(0);
}

#voice-status {
	color: var(--grey);
	font-size: 0.9rem;
	font-style: italic;
	min-height: 1.5rem;
	line-height: 1.4;
	max-width: 100%;
	word-wrap: break-word;
}

/* Mobile adjustments for voice controls */
@media (max-width: 768px) {
	.voice-controls {
		padding: 0 0.5rem;
	}
	
	#voice-btn {
		font-size: 0.9rem;
		padding: 0.65rem 1.25rem;
		width: 100%;
		max-width: 200px;
	}
	
	#voice-status {
		font-size: 0.8rem;
		padding: 0 0.5rem;
	}
}

/* Completed task styling */
.task.completed {
	opacity: 0.7;
}

.task.completed .content .text {
	text-decoration: line-through;
	color: var(--grey);
}

.task.completed .content .task-number {
	color: var(--grey);
	opacity: 0.8;
}

/* Additional responsive improvements */
@media (max-width: 480px) {
	/* Extra small screens (phones) */
	body {
		font-size: 14px;
	}
	
	header h1 {
		font-size: 1.75rem;
	}
	
	#new-task-input {
		font-size: 0.9rem;
		padding: 0.75rem;
	}
	
	#new-task-submit {
		font-size: 0.9rem;
		padding: 0.75rem;
	}
	
	.task .content .text {
		font-size: 1rem;
	}
	
	.task .content .task-number {
		font-size: 1rem;
		min-width: 20px;
	}
	
	.task .actions button {
		font-size: 0.8rem;
		padding: 0.4rem;
		min-width: 50px;
	}
	
	#voice-btn {
		font-size: 0.85rem;
		padding: 0.6rem 1rem;
	}
	
	#voice-status {
		font-size: 0.75rem;
	}
}

/* Landscape orientation adjustments */
@media (max-width: 768px) and (orientation: landscape) {
	header {
		padding: 1rem 0.5rem;
	}
	
	header h1 {
		font-size: 1.5rem;
		margin-bottom: 0.5rem;
	}
	
	.voice-controls {
		margin-top: 0.5rem;
	}
}

/* High DPI screens */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
	.task .actions button {
		border: 1px solid rgba(255, 255, 255, 0.1);
	}
}
