/* Buttons */
.btn {
	border-radius: var(--border-radius);
	border-width: 1px;
	transition: background-color .2s, border-color .2s, color .2s, box-shadow .2s, transform .12s;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .06);
}

.btn:hover {
	/* Subtle visual affordance without layout shift */
	box-shadow: 0 6px 16px rgba(0, 0, 0, .12);
	filter: brightness(1.03);
}

.btn:active {
	/* Pressed state without moving layout */
	transform: scale(0.98);
	box-shadow: 0 2px 8px rgba(0, 0, 0, .08);
}

.btn-primary {
	background-color: var(--accent-primary);
	border-color: var(--accent-primary);
	color: #fff;
	background-image: linear-gradient(180deg, rgba(255, 255, 255, .06), rgba(0, 0, 0, .06));
}

.btn-primary:hover {
	background-color: #2b75ff;
	border-color: #2b75ff;
}

.btn-secondary {
	background-color: var(--accent-secondary);
	border-color: var(--accent-secondary);
	color: #fff;
	background-image: linear-gradient(180deg, rgba(255, 255, 255, .06), rgba(0, 0, 0, .06));
}

.btn-secondary:hover {
	background-color: #545b62;
	border-color: #545b62;
}

.btn-light {
	background-color: var(--bg-tertiary);
	color: var(--text-primary);
	border: 1px solid var(--border-color);
}

.btn-light:hover {
	background-color: var(--hover-bg);
	border-color: var(--accent-primary);
}

.btn-outline-primary {
	color: var(--accent-primary);
	border-color: rgba(var(--accent-primary-rgb), .45);
	background: transparent;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
	color: #fff;
	background: linear-gradient(135deg, rgba(var(--accent-primary-rgb), .95), rgba(var(--accent-primary-bright-rgb), .9));
	border-color: rgba(var(--accent-primary-rgb), .7);
	box-shadow: 0 8px 20px rgba(var(--accent-primary-rgb), .35);
}

.btn-outline-secondary {
	color: var(--text-primary);
	border-color: var(--border-color);
	background: transparent;
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus {
	background-color: var(--bg-tertiary);
	border-color: var(--accent-primary);
}

/* Increase icon legibility inside small outline buttons */
.btn-outline-secondary i {
	color: var(--text-secondary);
	transition: color .2s;
}

.btn-outline-secondary:hover i,
.btn-outline-secondary:focus i {
	color: var(--text-primary);
}

[data-theme="dark"] .btn-outline-secondary i,
body.dark-mode .btn-outline-secondary i {
	color: rgba(255, 255, 255, .75);
}

[data-theme="dark"] .btn-outline-secondary:hover i,
body.dark-mode .btn-outline-secondary:hover i {
	color: #fff;
}

/* Optional slight inner glow on focus for accessibility */
.btn-outline-secondary:focus-visible {
	box-shadow: 0 0 0 2px rgba(var(--accent-primary-brighter-rgb), .4);
}

.btn-danger {
	box-shadow: 0 2px 8px rgba(239, 68, 68, .25);
}

.btn-danger:hover {
	box-shadow: 0 6px 16px rgba(239, 68, 68, .35);
}

.btn-group .btn {
	border-radius: 8px;
}

.btn-group .btn+.btn {
	margin-left: 6px;
}

.btn-glassy {
	background: linear-gradient(135deg, rgba(var(--accent-primary-rgb), .95), rgba(var(--accent-primary-bright-rgb), .9));
	border: 1px solid rgba(var(--accent-primary-rgb), .6);
	box-shadow: 0 8px 22px rgba(var(--accent-primary-rgb), .35);
	color: #fff !important;
}

.btn-glassy:hover {
	filter: brightness(1.06);
	box-shadow: 0 12px 26px rgba(var(--accent-primary-rgb), .45);
}

[data-theme="dark"] .btn-glassy,
body.dark-mode .btn-glassy {
	background: linear-gradient(135deg, rgba(var(--accent-primary-brighter-rgb), .9), rgba(var(--accent-primary-bright-rgb), .85));
	border-color: rgba(var(--accent-primary-brighter-rgb), .55);
	box-shadow: 0 8px 22px rgba(var(--accent-primary-brighter-rgb), .28);
	color: #0b1220 !important;
}

.btn-glassy:focus-visible {
	outline: 2px solid rgba(var(--accent-primary-brighter-rgb), .6);
	outline-offset: 2px;
}

.btn-glassy:disabled,
.btn-glassy.disabled {
	filter: grayscale(12%) opacity(.9);
	box-shadow: 0 4px 12px rgba(0, 0, 0, .12);
}

/* Reusable small circular icon button */
.btn-icon {
	width: 36px;
	height: 36px;
	padding: 6px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* Dropdown toggle without caret */
.dropdown-toggle-no-caret::after { display: none !important; }