/* Global Dark Theme for King of the Beach - Optimized for Outdoor/Sunny Conditions */

:root {
	/* Background Colors */
	--bg-primary: #0a0a0a;
	--bg-secondary: #1a1a1a;
	--bg-card: #222222;
	--bg-input: #ffffff;
	--bg-hover: #2a2a2a;
	--bg-nav: #1a1a1a;

	/* Text Colors */
	--text-primary: #ffffff;
	--text-secondary: #e8e8e8;
	--text-muted: #b0b0b0;
	--text-placeholder: #666666;
	--text-input: #000000;

	/* Accent Colors - High Visibility for Sunlight */
	--accent-primary: #ff6b35;
	--accent-primary-hover: #ff8555;
	--accent-success: #00ff41;
	--accent-success-dark: #00cc33;
	--accent-error: #ff3333;
	--accent-error-hover: #ff5555;
	--accent-warning: #ffcc00;
	--accent-info: #00d9ff;

	/* Border Colors - More Prominent for Sunlight */
	--border-default: #808080;
	--border-strong: #a0a0a0;
	--border-focus: #00d9ff;
	--border-success: #00ff41;
	--border-error: #ff3333;
	--border-warning: #ffcc00;
	--border-thickness: 3px;

	/* Status Badge Colors */
	--status-active-bg: #00ff41;
	--status-active-text: #000000;
	--status-draft-bg: #ffcc00;
	--status-draft-text: #000000;
	--status-completed-bg: #00d9ff;
	--status-completed-text: #000000;
	--status-archived-bg: #808080;
	--status-archived-text: #ffffff;

	/* Shadow/Glow Effects */
	--shadow-focus: 0 0 0 4px rgba(0, 217, 255, 0.4);
	--glow-primary: 0 0 20px rgba(255, 107, 53, 0.6);
	--glow-success: 0 0 15px rgba(0, 255, 65, 0.4);

	/* Typography */
	--font-family:
		-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
	--font-size-xs: 0.75rem;
	--font-size-sm: 0.875rem;
	--font-size-base: 1rem;
	--font-size-lg: 1.125rem;
	--font-size-xl: 1.25rem;
	--font-size-2xl: 1.5rem;

	/* Spacing */
	--spacing-xs: 0.25rem;
	--spacing-sm: 0.5rem;
	--spacing-md: 1rem;
	--spacing-lg: 1.5rem;
	--spacing-xl: 2rem;

	/* Border Radius */
	--radius-sm: 4px;
	--radius-md: 8px;
	--radius-lg: 12px;

	/* Transitions */
	--transition-fast: 0.15s ease;
	--transition-base: 0.2s ease;
}

/* Base Styles */
* {
	box-sizing: border-box;
}

html,
body {
	margin: 0;
	padding: 0;
	font-family: var(--font-family);
	font-size: 16px;
	line-height: 1.5;
	background-color: var(--bg-primary);
	color: var(--text-primary);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Typography */
h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 var(--spacing-md) 0;
	font-weight: 700;
	color: var(--text-primary);
	line-height: 1.2;
}

h1 {
	font-size: var(--font-size-2xl);
}
h2 {
	font-size: var(--font-size-xl);
}
h3 {
	font-size: var(--font-size-lg);
}

p {
	margin: 0 0 var(--spacing-md) 0;
	color: var(--text-secondary);
}

a {
	color: var(--accent-info);
	text-decoration: none;
	transition: color var(--transition-fast);
}

a:hover {
	color: var(--text-primary);
	text-decoration: underline;
}

/* Form Elements - Bright White Background for Sunlight Visibility */
input,
textarea,
select {
	font-family: inherit;
	font-size: var(--font-size-base);
	background-color: var(--bg-input);
	color: var(--text-input);
	border: var(--border-thickness) solid var(--border-strong);
	border-radius: var(--radius-sm);
	padding: var(--spacing-sm) var(--spacing-md);
	caret-color: var(--accent-primary);
	font-weight: 500;
	transition:
		border-color var(--transition-fast),
		box-shadow var(--transition-fast),
		transform var(--transition-fast);
}

input:focus,
textarea:focus,
select:focus {
	outline: none;
	border-color: var(--border-focus);
	box-shadow: var(--shadow-focus);
	transform: scale(1.02);
}

input::placeholder,
textarea::placeholder {
	color: var(--text-placeholder);
	font-weight: 400;
}

input:disabled,
textarea:disabled,
select:disabled {
	background-color: #e0e0e0;
	color: #808080;
	cursor: not-allowed;
	border-color: var(--border-default);
}

/* Buttons */
button {
	font-family: inherit;
	font-size: var(--font-size-base);
	font-weight: 700;
	cursor: pointer;
	border: var(--border-thickness) solid transparent;
	border-radius: var(--radius-sm);
	padding: var(--spacing-sm) var(--spacing-md);
	transition: all var(--transition-base);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	min-height: 44px;
}

button:disabled {
	cursor: not-allowed;
	opacity: 0.5;
}

/* Utility Classes */
.text-primary {
	color: var(--text-primary);
}
.text-secondary {
	color: var(--text-secondary);
}
.text-muted {
	color: var(--text-muted);
}
.text-success {
	color: var(--accent-success);
}
.text-error {
	color: var(--accent-error);
}
.text-warning {
	color: var(--accent-warning);
}

.bg-primary {
	background-color: var(--bg-primary);
}
.bg-secondary {
	background-color: var(--bg-secondary);
}
.bg-card {
	background-color: var(--bg-card);
}

/* Status Badges */
.badge {
	display: inline-block;
	padding: var(--spacing-xs) var(--spacing-sm);
	border-radius: var(--radius-sm);
	font-size: var(--font-size-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.badge-active {
	background-color: var(--status-active-bg);
	color: var(--status-active-text);
}

.badge-draft {
	background-color: var(--status-draft-bg);
	color: var(--status-draft-text);
}

.badge-completed {
	background-color: var(--status-completed-bg);
	color: var(--status-completed-text);
}

.badge-archived {
	background-color: var(--status-archived-bg);
	color: var(--status-archived-text);
}

/* Error/Success Messages - More Prominent Borders */
.error {
	background-color: rgba(255, 51, 51, 0.15);
	color: var(--accent-error);
	border: var(--border-thickness) solid var(--accent-error);
	border-radius: var(--radius-sm);
	padding: var(--spacing-sm);
	margin-bottom: var(--spacing-md);
	font-weight: 600;
}

.success {
	background-color: rgba(0, 255, 65, 0.15);
	color: var(--accent-success);
	border: var(--border-thickness) solid var(--accent-success);
	border-radius: var(--radius-sm);
	padding: var(--spacing-sm);
	margin-bottom: var(--spacing-md);
	font-weight: 700;
}

/* Cards - Thicker Borders */
.card {
	background-color: var(--bg-card);
	border: var(--border-thickness) solid var(--border-strong);
	border-radius: var(--radius-md);
	padding: var(--spacing-md);
}

/* Mobile Optimization */
@media (max-width: 600px) {
	body {
		font-size: 16px; /* Prevent zoom on iOS */
	}

	input,
	textarea,
	select,
	button {
		font-size: 16px; /* Prevent zoom on iOS */
	}
}

/* High Contrast Focus States */
:focus-visible {
	outline: 4px solid var(--accent-info);
	outline-offset: 3px;
}

/* Scrollbar Styling */
::-webkit-scrollbar {
	width: 10px;
	height: 10px;
}

::-webkit-scrollbar-track {
	background: var(--bg-secondary);
}

::-webkit-scrollbar-thumb {
	background: var(--border-strong);
	border-radius: 5px;
	border: 2px solid var(--bg-secondary);
}

::-webkit-scrollbar-thumb:hover {
	background: var(--text-muted);
}
